1<<< 32比较javascript和python

时间:2017-07-11 03:05:10

标签: javascript python

的Javascript

1<<31
-2147483648
1<<32
1

的Python

1<<31
2147483648
1<<32
4294967296

这与max int有关吗? 但是4294967296并不比js中的max int更大。

1 个答案:

答案 0 :(得分:1)

JavaScript中的整数实际上是IEEE 754 64位浮点数。但Python中的整数可能是一个简单的整数或bignum。

JavaScript中的所有位操作都是在32位有符号/无符号整数上定义的。执行这些操作时,首先将两个操作数转换为32位整数,结果始终为32位整数。

如果你想要多个2 32 的数字,你应该1 * 2 ** 32(或ES5中的1 * Math.pow(2, 32))而不是这个。

Python内置了bignum支持,支持所有位操作,例如左移。因此,您可以使用任何(合理的)位移动一个数字,它可能大于2 32