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