根据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
谢谢!
答案 0 :(得分:8)
指数的位有两个保留值,一个用于编码0
和次正规数,一个用于编码∞和NaN。因此,正常指数的范围比您预期的要小两倍。参见IEEE-754标准的§3.4(w
是指数中的位数 - 11
的{{1}}}:
编码的偏差指数E的范围应包括:
- 1到2之间的每个整数 w - 2,包括在内,以编码正常数字
- 保留值0以编码±0和次正规数
- 保留值2 w - 1编码±∞和NaNs。