按位移位精度

时间:2016-10-17 19:28:22

标签: javascript bitwise-operators

我试图将Python库移植到Javascript,但偶然发现了两者之间的数字差异。

使用Python,1057618395136>> 16 == 16137976 使用Javascript,1057618395136>> 16 == 16120

我读过Javascript中的整数精度是53位,Math.pow(2,53)== 9007199254740991),这仍然是我尝试做的bifshift操作的范围..我缺少什么?< / p>

1 个答案:

答案 0 :(得分:4)

JavaScript按位运算符将浮点值截断为32位整数。因此,虽然64位浮点值确实可以容纳53位整数,但是你不能利用移位运算符的所有53位。

要在JavaScript中向右移16位,可以除以65536。