计算机如何根据IEEE 754浮点表示存储0.000000f?

时间:2020-09-25 08:17:35

标签: floating-point precision cpu-architecture ieee-754

我们知道我们可以在IEEE 754浮点表示中表示任何浮点数,但是在所有浮点数中我们得到的像1.(有些尾数)* 2 ^(有些指数),其中1总是固定为第一个位置,因此我们在将任何IEEE 754浮点数转换回十进制数时都假定它为零,但是在0.000000f的情况下我们将假设什么,因为在这种情况下我们无法以1.(一些尾数)* 2 ^表示该数字(有些指数),因为它的尾数开头永远不能为1,而0除外。

3 个答案:

答案 0 :(得分:3)

计算机如何根据IEEE 754浮点表示形式存储0.000000f?

float小于最小的正常非零FLT_MIN0 00000001 00000000000000000000000)时,它以0的编码偏置指数(s 00000000 xxxxxxxxxxxxxxxxxxxxxxx)存储。隐含位不再是1,而是0,有效偏置指数是1。

xxxxxxxxxxxxxxxxxxxxxxx全为零时,该值为+ 0.0f或-0.0f。


一个float,其编码偏差指数为0,xxxxxxxxxxxxxxxxxxxxxxx不为零,它是次常态

FLT_TRUE_MIN0 00000000 00000000000000000000001,这是最小的非零正值。

答案 1 :(得分:2)

全0的模式保留给0:

              3  2          1         0
              1 09876543 21098765432109876543210
              S ---E8--- ----------F23----------
      Binary: 0 00000000 00000000000000000000000
         Hex: 0000 0000
   Precision: SP
        Sign: Positive
    Exponent: -127 (Stored: 0, Bias: 127)
   Hex-float: 0x0p+0
       Value: +0.0

请注意,IEEE表示中有两个0:+0和-0;可以区分。模式0x80000000用于后者:

              3  2          1         0
              1 09876543 21098765432109876543210
              S ---E8--- ----------F23----------
      Binary: 1 00000000 00000000000000000000000
         Hex: 8000 0000
   Precision: SP
        Sign: Negative
    Exponent: -127 (Stored: 0, Bias: 127)
   Hex-float: -0x0p+0
       Value: -0.0

答案 2 :(得分:2)

正如Alias回答的那样,“将所有设置为零的指数和有效位”定义为零。也可以将零视为denormal number的特例。当所有指数位都设置为零(最小的可能指数)时,尾数不假定前导1,因此如果有效位数也为零,则结果值(解释为非正规数)为零。