javascript - JavaScript 中的位移

标签 javascript bit-shift

我有一个非常大的数字: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/

相关文章:

javascript - 如何制定坐标输入格式?

javascript - typescript :向时间戳添加额外的一小时

javascript - 禁止在动画期间与网站互动

javascript - Document.getElementById() 返回名称等于指定 id 的元素

javascript - 从 javascript 表下载存储在 firebase 数据库中的文件

c - 遍历char数组,打印每个char的位(以C表示)

将 int 转换为 uint8_t 数组十六进制值

java - 在java中按负数移位

Javascript 位移位-数字换行?

assembly - SHL和SAL在80x86中的区别