4

根据IEEE Std 754-2008标准,binary64 双精度浮点格式的指数字段宽度为 11 位,通过 1023 的指数偏差进行补偿。标准还规定最大指数为 1023,并且最小值为 -1022。为什么最大指数不是:

2^10 + 2^9 + 2^8 + 2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 - 1023 = 1024

并且最小指数不是:

0 - 1023 = -1023
4

1 回答 1

9

指数位有两个保留值,一个用于编码0和次正规数,一个用于编码∞和 NaN。因此,正态指数的范围比您预期的要小两个。请参阅 IEEE-754 标准的第 3.4 节(w是指数中的位数 -11在 的情况下binary64):

编码的偏置指数 E 的范围应包括:

― 1 到 2 w – 2(含)之间的每个整数,用于编码正常数字

― 保留值 0 用于编码 ±0 和次正规数

― 保留值 2 w – 1 用于编码 ±∞ 和 NaN。

于 2013-03-15T23:57:06.190 回答