gpt4 book ai didi

javascript - 在 Javascript 位掩码标志值中可以安全使用的最大整数是多少?

转载 作者:行者123 更新时间:2023-12-03 09:55:48 24 4
gpt4 key购买 nike

这主要只是一个健全性检查。

Mozilla says那个

The operands of all bitwise operators are converted to signed 32-bit integers in two's complement format.

还有那个

The numbers -2147483648 and 2147483647 are the minimum and the maximum integers representable through a 32bit signed number.

由于 2147483647 是 0x7FFFFFFF,所以我相信 0x40000000(也就是说,不是 0x80000000)是我可以安全地用作 JavaScript 标志值的最大数字。但我想确保我没有错过任何东西或者没有其他问题。预先感谢您!

最佳答案

取值范围是一个完整的32位值,即。 0 到 0xffffffff(或 232-1)。签不签就看情况了。如果最初对其进行签名,则将产生 -1:

document.write(0xffffffff>>0);

但是您也可以使用无符号值,这意味着范围是 [0, 4294967295]:

document.write(0xffffffff>>>0);

数字 0x40000000 只能给你范围的一半(在负数范围内,在正数范围内为 0x40000000-1 或 0x3fffffff),所以这不是 32 的安全数字-位有符号范围。

有符号数的安全范围为 [0x80000000, 0x7fffffff],因此常见的安全边际掩码将为 0x7fffffff,但是,您需要保留符号位:

number = number < 0 ? number & 0xffffffff : 0x7fffffff;

对于未签名的情况,您的掩码将始终为 0xffffffff。

关于javascript - 在 Javascript 位掩码标志值中可以安全使用的最大整数是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30744721/

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