gpt4 book ai didi

javascript - 两个 int 值之间按位或运算后的负值

转载 作者:行者123 更新时间:2023-11-28 16:55:46 25 4
gpt4 key购买 nike

我正在尝试在两个数字之间执行按位或运算:650510336 和 2147483648 (650510336 | 2147483648)

结果,我得到负值:-1496973312,而不是 2797993984

我以为我的代码有问题,但如果您将此命令发送到浏览器中的控制台,您可以轻松重现它。

console.log(650510336 | 2147483648)

为什么不输出 2797993984?

最佳答案

JavaScript 中的所有按位运算符在用于数字时,都会将其操作数视为/产生 32 位有符号 整数的结果……除了 >>> 运算符。

由于您想要无符号数学,请使用其他无操作逻辑右移将有符号结果重新解释为无符号:

console.log((650510336 | 2147483648) >>> 0)

关于javascript - 两个 int 值之间按位或运算后的负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59255596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com