一般来讲,右移一位的位运算,相当于除2,例如100>>2===25,
但是对于较大的数右移位运算,完全不正确
var id = 386547056836608
console.log(id>>8);
结果768
正确的结果1509949440768
测试右移8,16,24,32位右移,结果都不同,这个是js本身的位数限制,还是其它的问题?
一般来讲,右移一位的位运算,相当于除2,例如100>>2===25,
但是对于较大的数右移位运算,完全不正确
var id = 386547056836608
console.log(id>>8);
结果768
正确的结果1509949440768
测试右移8,16,24,32位右移,结果都不同,这个是js本身的位数限制,还是其它的问题?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
JS 在进行位运算前使用进行
toInt32
或是toUint32
进行类型转换,也就是说所有的为操作都是只取对应的 32 bits 来进行的。http://www.ecma-international...