【发布时间】:2016-01-06 14:22:23
【问题描述】:
这是对前段时间已经回答的问题的更多澄清:biggest integer that can be stored in a double
最佳答案提到“最大的整数,它和所有较小的整数可以存储在 IEEE 64 位双精度数中而不会丢失精度。IEEE 64 位双精度数有 52 位尾数,所以我认为它是 2^ 53:
因为:
253 + 1 无法存储,因为开头的 1 和结尾的 1 之间的零太多。
可以存储任何小于 253 的值,其中 52 位显式存储在尾数中,然后有效的指数为您提供另一个。
253 显然可以存储,因为它是 2 的小幂。
有人可以澄清第一点吗?他这是什么意思?他是否在谈论例如,如果它是一个 4 位数字 1000 + 0001,您不能将其存储为 4 位吗? 253 只是第一位 1 其余的 0 对吗?为什么你不能在不损失精度的情况下加 1?
另外,“最大整数,使得它和所有较小的整数都可以存储在 IEEE 中”。是否有一些一般规则,如果我想找到最大的 n 位整数,以便它和所有较小的整数可以存储在 IEEE 中,我可以简单地说它是 2n 吗?例如,如果我要找到最大的 4 位整数,这样它和它下面的所有整数都可以表示,它会是 2^4?
【问题讨论】:
标签: binary floating-point double precision ieee-754