的Javascript
1<<31
-2147483648
1<<32
1
的Python
1<<31
2147483648
1<<32
4294967296
这与max int有关吗? 但是4294967296并不比js中的max int更大。
答案 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 。