浮点数由3个部分组成:一个符号,一个分数和一个指数。这些都是整数,将它们组合起来得到一个实数:(-1)符号 ×(分数×2 -23)×2 指数
Wikipedia文章使用带小数点的二进制数作为分数,但是我发现将其视为整数乘以固定常数会更清楚。数学上是一样的。
小数为23位,但是还有一个额外的隐藏位使其变为24位值。可以用24位表示的最大整数是16777215,它具有刚刚超过7个十进制数字。这定义了格式的精度。
指数是一种神奇的魔术,它将数字的范围扩展到超出精度范围的范围。有8位保存指数,但是其中一些值很特殊。值255保留用于无限性和非数字(NAN)表示形式,它们不是实数,也不遵循上面给出的公式。值0代表非正常范围,之所以称为非正常范围,是因为该分数的隐藏位是0而不是1-未标准化。在这种情况下,指数始终为-126。请注意,非正规数的精度会随着分数变小而降低,因为它的位数更少。对于所有其他位模式1-254,小数的隐藏位为1,指数为bits-127。您可以在Wikipedia部分上查看详细信息指数编码。
最小的正态数为(-1)0 ×(1×2 -23)×2 -126或1.4e-45。
最小的正归一化数是(-1)0 ×(0x800000×2 -23)×2 ( 1-127 )或1.175494e-38。
fue*_*tes -2
必须区分内部表示和格式。
在内部表示中,浮点数通常从左到右打包为符号位、指数字段和尾数或尾数。该表示是为您提到的范围定义的(数学极限)
该格式定义了“外部”表示形式,并受到可用空间的限制,从而受到数据类型精度的限制,例如大约 7 位浮点数(技术限制)。