在JS中说,位运算符仅针对32位数字定义,安全范围为Math.pow(-2,31)
,最高为Math.pow(2,31)-1
。
可以使用| 0
所以我在Chrome的控制台中进行了测试:
Math.pow(2,30) | 0
1073741824
Math.pow(2,31)
2147483648
Math.pow(2,31) | 0
-2147483648
Math.pow(2,32) | 0
0
为什么按位数为正数或0为负数?
答案 0 :(得分:0)
在按位操作中,javascript以32位整数运行。最大值为int x = 2147483647;
x++;
,因此当您超过该数字时,更改为负值。如果你在java中做这样的事情:
-2147483648
结果是Math.pow(2,31) | 0
,这在javascript中是相同的。执行{{1}}时,超出整数最大值。