我正在使用此代码来尝试找出一个数字中有多少位。下面的十六进制数字已打开所有位。
for (var i = 0x1FFFFFFFFFFFFF, m = 0; i & 1; ++m, i >>>= 1);
出于某种原因,打印m
给出了 32,但在 SO 帖子中,我阅读了以下内容:
JavaScript 中的所有数字实际上都是符合 IEEE-754 的浮点双精度数。它们有一个 53 位尾数,这意味着任何大小约为 9 万亿或更小的整数值都将被准确表示。
除非我错误地实现了这一点,否则我不明白为什么m
在应该有 53 位的情况下打印会给出 32。有人可以解释一下吗?