[英]Number of bits in Javascript numbers
我只使用整数使用 Javascript(主要是添加数字并移动它们)。 我想知道在不丢失任何位的情况下它们能有多大。
例如, X
可以有多大,这样1 << X
将代表2^X
?
JavaScript 中的所有数字实际上都是符合 IEEE-754 的浮点双精度数。 它们有一个 53 位尾数,这意味着任何大小约为 9 万亿或更小的整数值——更具体地说,9,007,199,254,740,991——都将被准确表示。
注意:在 2018 年,主要浏览器和 NodeJS 也在使用新的 Javascript 的原始类型BigInt ,解决整数值大小的问题。
所有答案都部分错误 - 也许是由于新的 ES6/ES7 规范 - ,请阅读原因:
首先,在 JavaScript 中,数字的表示是2^53 - 1这对于@Luke 答案是正确的,我们可以通过运行Number.MAX_SAFE_INTEGER
来证明这将显示一个大数字,然后我们执行log2
来确认位数相同:
Number.MAX_SAFE_INTEGER
// 9007199254740991
Math.log2(9007199254740991)
// 53
但是, 按位运算是在 32 位(4 个字节)上计算的,这意味着如果您超过 32 位移位,您将开始丢失位。
欢迎使用 JavaScript!
JavaScript 中的所有数字都是 64 位(双精度)浮点数。
这是对格式的描述以及可以和不能用它表示的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.