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

Floating point 计算机如何根据IEEE 754浮点表示法存储0.000000f?,floating-point,precision,cpu-architecture,ieee-754,Floating Point,Precision,Cpu Architecture,Ieee 754,正如我们所知,在IEEE754浮点表示法中,我们可以表示任何浮点数。但是,在所有浮点数中,我们得到类似于1的值(一些尾数)*2^(一些指数)其中1始终固定在第一个位置,因此我们在将任何IEEE 754浮点数转换回十进制数时假设它。但是,如果是0.000000f,我们将假设什么,因为在这种情况下,我们不能表示1中的数字。(一些尾数)*2^(一些指数)因为尾数的开头不能有1,除了0。所有0的模式都保留给0: 3 2 1 0

正如我们所知,在IEEE754浮点表示法中,我们可以表示任何浮点数。但是,在所有浮点数中,我们得到类似于1的值(一些尾数)*2^(一些指数)其中1始终固定在第一个位置,因此我们在将任何IEEE 754浮点数转换回十进制数时假设它。但是,如果是0.000000f,我们将假设什么,因为在这种情况下,我们不能表示1中的数字。(一些尾数)*2^(一些指数)因为尾数的开头不能有1,除了0。

所有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;这是可以区分的。模式0x8000000用于后者:

              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
正如Alias所回答的,“所有指数和有效位都设置为零”被定义为零。也可以将零视为一种特殊情况。当所有指数位都设置为零(可能的最小指数)时,尾数不设前导1,因此如果有效位也为零,则结果值(解释为非规范数)为零

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

当一个
浮点数
小于最小的正常非零
浮点数
0 0000000 1000000000000000000000
)时,它以编码的偏置指数0(
s 00000000 xxxxxxxxxxxxxxxxxxxx
)存储。隐含位不再是1,而是0,有效偏置指数为1

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


编码偏差指数为0且
xxxxxxxxxxxxxxxxxxxxxxxx
非零的
float
为次正态


FLT\u TRUE\u MIN
0 0000000000000000000000000000 1
,最小的正非零值。

非常好,写得很好,也很详细。请注意,偏置指数=0表示尾数的前导
0
位;正如Sneftel和chux指出的,
+-0.0
是次正规(又称非正规)数的特例。不是它自己的一个单独的特例+-Inf和+-NaN的方式是0和非零尾数意味着与全1指数不同的东西。