JS移位操作把十进制转换为二进制与字符串

首先需要了解原码、反码、补码&位移;具体可以查看:位移&二进制转换&原码&反码&补码
截取文章中的几句话:

  1. 原码是被人脑直接识别并用于计算表示方式。
  2. 机器使用的是补码。

所以实际上,在机器中【-5】的表示是【11111111111111111111111111111011】(因为int数是4字节、32位)

但是我们在JS中

用传统的方法就是,【-5】先变成正的,然后填满32位,再取反,再加1.

比较麻烦,可以用位移实现操作,代码如下:

function to2String(n){
    let output=[], temp;
    for(let i=0;i<32;i++){
        temp=n&(1<<31-i);
        temp=temp>>>31-i;
        output.push((temp==0)?'0':'1');
    }
    return output.join('');
}

还有二进制转十六进制的位移操作,具体请看:使用移位操作把十进制转换为二进制与十六进制字符串输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值