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

4
根据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

而最小的指数不是:

0 - 1023 = -1023
1个回答

9
指数的比特位有两个预留值,一个是为了编码0和次正规数,另一个是为了编码 ∞ 和 NaN。因此,正常指数的范围比您预期的要小两个。详见IEEE-754标准的§3.4(w 是指数中的比特数,binary64 的情况下为11):

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

― 1到2w – 2之间的每个整数(含边界)以编码正常数

― 预留值 0 以编码±0和次正规数

― 预留值 2w – 1 以编码±∞和NaN。


那么,指数1024是为±∞和NaN保留的吗?而指数-1023是为±0和次标准数保留的吗?如果是这样,那么指数-1023是否定义为0 - lodhb
1
顺便说一下,您所提到的章节是官方IEEE文档中的§3.4节。 - lodhb
那么,您可能会有最小的指数宽度吗?拥有0位指数或1位指数或2位指数是否有意义? - Veridian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接