为了账号安全,请及时绑定邮箱和手机立即绑定

JS &(按位与) 问题求解

JS &(按位与) 问题求解

HUH函数 2019-01-29 19:19:55
直接上代码吧,上述代码得到的 ss 是下述代码,得到的 ss 是空,求大神解释PS:为什么这里得到的是负值?崩~~
查看完整描述

1 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

你需要了解js位运算符的计算方法。

按位与先将两个数字转换为32位的二进制形式,然后上下对齐,按照1+1=1,1+0=0,0+0=0的逻辑计算。

比如:


var iResult = 25 & 3;

alert(iResult);    //输出 "1"

原因是:


 25 = 0000 0000 0000 0000 0000 0000 0001 1001

  3 = 0000 0000 0000 0000 0000 0000 0000 0011

---------------------------------------------

AND = 0000 0000 0000 0000 0000 0000 0000 0001

所以同理,63215 的二进制形式是0000 0000 0000 0000 1111 0110 1110 1111


num每次循环时,二进制形式分别是1,10,100,1000等等(前边的0没有补齐),可以看出,当i=2是,num为100,与63215计算的二进制结果还是100;当i=5时,num为10000,与63215计算的二进制结果是0,这就是为什么数组中没有5的原因,9和12也是类似。

第二个例子,2147483648的二进制形式是1000 0000 0000 0000 0000 0000 0000 0000,剩下的自己算吧。


查看完整回答
反对 回复 2019-01-30
  • 1 回答
  • 0 关注
  • 468 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信