Number.MAX_SAFE_INTEGER 在 32 位计算机中的值为 (2^53 - 1) [重复]
Posted
技术标签:
【中文标题】Number.MAX_SAFE_INTEGER 在 32 位计算机中的值为 (2^53 - 1) [重复]【英文标题】:Is Number.MAX_SAFE_INTEGER has value of (2^53 - 1) in 32-bit computer [duplicate] 【发布时间】:2021-10-28 15:46:55 【问题描述】:MDN Web Docs 是指Number.MAX_SAFE_INTEGER
常量代表 javascript 中的最大安全整数,其值为 2^53 - 1
。
我的问题:Number.MAX_SAFE_INTEGER
在32 位 计算机中也有(2^53 - 1)
的值吗?
如果是,它具有相同的值,JavaScript 如何将这个数字 (2^53 - 1)
存储在 32 位中?!
【问题讨论】:
是的。多字节,多指令 根据语言规范,数字是 64 位双精度浮点值。在 32 位 CPU 上符合标准的 JavaScript 实现必须以某种方式处理这个问题。如何?这取决于实施者。 另外,你为什么在乎?您是否遇到了一些具体问题? 计算机支持双精度浮点已有几十年了,早在 64 位处理器出现之前。它们只是将它们存储在两个 32 位字中。 这会帮助你superuser.com/questions/698312/… 【参考方案1】:是的。所有 JavaScript Number
s 都使用 IEEE 754 binary64(A.K.A. 双精度浮点)表示。 这种格式占用 64 位空间,但大多数现代 32 位处理器本身就支持它,即使不支持,也可以在软件中实现浮点运算。
32位处理器中的“32位”指的是word大小。
【讨论】:
以上是关于Number.MAX_SAFE_INTEGER 在 32 位计算机中的值为 (2^53 - 1) [重复]的主要内容,如果未能解决你的问题,请参考以下文章