我有一个非常大的数字:5799218898。并且想将其右移到 13 位。
所以,windows-calculator 或 python 给了我:
5799218898 >> 13 | 100010100100001110011111100001 >> 13 70791 | 10001010010000111
正如预期的那样。
但是 JavaScript:
5799218898 >> 13 | 100010100100001110011111100001 >> 13 183624 | 101100110101001000
我认为这是因为 javascript 中的内部整数表示,但找不到任何相关信息。
最佳答案
在 ECMAScript (Javascript) 中,按位运算始终为 32 位。因此 5799218898 被切分成 32 位,变成 1504251602。这个整数 >> 13 给出 183624。
在 Python 中,它们是任意长度的整数。所以没有问题。
(Windows计算器中的数字是64位的,足以容纳5799218898。)
(正确答案应该是707912。)
关于javascript - JavaScript 中的位移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2373791/