【问题标题】:max float represented in IEEE 754IEEE 754 中表示的最大浮点数
【发布时间】:2012-04-19 17:26:17
【问题描述】:

我想知道 IEEE 754 中表示的最大浮点数是否为:

(1.11111111111111111111111)_b*2^[(11111111)_b-127]

这里_b 表示二进制表示。但是该值是3.403201383*10^38,它不同于3.402823669*10^38,后者是(1.0)_b*2^[(11111111)_b-127],由例如c++<limits> 给出。不是吗 (1.11111111111111111111111)_b*2^[(11111111)_b-127] 在框架中可表示且更大?

有人知道为什么吗?

谢谢。

【问题讨论】:

    标签: floating-point computer-science ieee-754


    【解决方案1】:

    指数 11111111b 是为无穷大和 NaN 保留的,因此无法表示您的数字。

    单精度可以表示的最大值,大约3.4028235×1038,实际上是1.11111111111111111111111b×211111110b子>-127.

    另见http://en.wikipedia.org/wiki/Single-precision_floating-point_format

    【讨论】:

      【解决方案2】:

      作为“m”尾数和“e”指数,答案是:

      在您的情况下,如果 IEEE 754 上的位数是:

      • 16 位 符号为 1,指数为 6,尾数为 11。代表的最大数字是 4,293,918,720。
      • 32 位 符号为 1,指数为 8,尾数为 23。表示的最大数字是 3.402823466E38
      • 64 位 符号为 1,指数为 11,尾数为 52。表示的最大数是 2^1024 - 2^971

      【讨论】:

        猜你喜欢
        • 2012-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-18
        • 2016-02-09
        • 2020-11-19
        • 2017-04-08
        • 2016-11-06
        相关资源
        最近更新 更多