数据结构和算法 - 使用二进制位表示整数

查看:121
本文介绍了数据结构和算法 - 使用二进制位表示整数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我希望有这么一个函数,接受一个整型参数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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆