最大浮点数表示在IEEE 754中

时间:2012-04-19 17:26:17

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

我想知道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]在框架中可以表示和更大?

有人知道为什么吗?

谢谢。

2 个答案:

答案 0 :(得分:7)

指数11111111 b 保留给无穷大和NaN,因此无法表示您的号码。

可以用单精度表示的最大值,大约3.4028235×10 38 ,实际上是1.11111111111111111111111 b ×2 11111110 b -127

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

答案 1 :(得分:0)

是螳螂的“ m ”和“ e ”的指数,答案是:

enter image description here

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

  • 16位,您有1个符号,6个指数和11个螳螂。代表的最大数字是4,293,918,720。
  • 32位,您的符号为1,指数为8,螳螂为23。所代表的最大数量是3.402823466E38
  • 64位,您用1表示符号,用11表示指数,用52表示螳螂。代表的最大数字是2 ^ 1024-2 ^ 971