【问题标题】:Maximum and minimum exponents in double-precision floating-point format双精度浮点格式的最大和最小指数
【发布时间】:2013-03-04 20:17:12
【问题描述】:

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

【问题讨论】:

    标签: floating-point numbers precision exponent numeric-limits


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 那么指数1024 是为±∞ 和NaN 保留的,而指数-1023 是为±0 和次正规数保留的吗?如果是这样,那么指数-1023 是否定义为0
    • 顺便说一下,您指的部分是§3.4(在IEEE官方文档中)。
    • 那么你有没有最小的指数宽度?指数为 0 位有意义吗? 1位? 2 位?
    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多