双精度浮点格式的最大和最小指数

lod*_*dhb 4 floating-point binary numbers exponent floating-point-precision

根据IEEE Std 754-2008标准,二进制64双精度浮点格式的指数字段宽度为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
Run Code Online (Sandbox Code Playgroud)

并且最小指数不是:

0 - 1023 = -1023
Run Code Online (Sandbox Code Playgroud)

谢谢!

Man*_*rse 8

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

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

- 1到2 w - 2 之间的每个整数,用于编码正常数字

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

- 保留值2 w - 1编码±∞和NaNs.