数据结构和算法 - 使用二进制位表示整数
本文介绍了数据结构和算法 - 使用二进制位表示整数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我希望有这么一个函数,接受一个整型参数i。这个函数能多次对一个整型数组进行这样的操作,以数组的起始地址开始的第i个二进制位置为1。例如,
fn(3),fn(5)的结果是,00101000
解决方案
1、你需要确定二进制的位数,比如10位。
var binLength = 10; //二进制长度为10
var binVal = 0x0; //初始值为 000000000
var binOffset = 0x200; //1在第一位,对应二进制:1000000000
2、使用位操作>>就可以了。
var fn = function(offset){
var tmp;
if( offset > 1){
tmp = binOffset >> (offset - 1);
}else{
tmp = binOffset;
}
var bin = (binVal = binVal | tmp).toString(2);
while( bin.length < binLength ){
bin = '0' + bin;
}
return bin;
}
3、测试:
fn(2); //输出:0100000000
fn(8); //输出:0100000100
这篇关于数据结构和算法 - 使用二进制位表示整数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文