Floating point IEEE 754 32位base-2浮点系统中可以编码多少个不同的值?

Floating point IEEE 754 32位base-2浮点系统中可以编码多少个不同的值?,floating-point,Floating Point,声明“IEEE 754 32位base-2浮点变量的最大值为(2− 2^−23) × 2^127 ≈ 3.4028235×10^38” 在这个数字中,你是+∞, −∞ 包括南吗 “2英寸”是什么− 2^−23)” 为什么是2^127中的127 在这个数字中,你是+∞, −∞ 包括南吗 不,它们是特殊的“数字” “2英寸”是什么− 2^−23)” 最大尾数是1.11111…111,这个值等于2− 2^−23如果将其添加到ULP(2^-23),则获得2.0 为什么是2^127中的127 这是基于单精

声明“IEEE 754 32位base-2浮点变量的最大值为(2− 2^−23) × 2^127 ≈ 3.4028235×10^38”

  • 在这个数字中,你是+∞, −∞ 包括南吗
  • “2英寸”是什么− 2^−23)”
  • 为什么是2^127中的127
  • 在这个数字中,你是+∞, −∞ 包括南吗

    不,它们是特殊的“数字”

    “2英寸”是什么− 2^−23)”

    最大尾数是1.11111…111,这个值等于2− 2^−23如果将其添加到ULP(2^-23),则获得2.0

    为什么是2^127中的127

    这是基于单精度浮点的编码方式。有8位对指数进行编码,实际指数代码是通过将127与数字的指数相加得到的。最大指数代码为254(因为255用于NAN),数字的最大指数为254-127=127


    在所有IEEE 754代码中,如果指数是在k位上编码的,则最大指数是2^(2^(k-1)-1)

    这里有两个问题。请注意,“可以编码多少不同的值”与最小值和最大值之间存在差异

    值的数量很容易计算。在32位中,可以有2^32或4294967296个值


    “但是”,我听到你说,“10^38比2^32大!”。是的,这是因为浮点编码实际上无法对其范围内的所有整数进行编码

    然后您会看到有2个32位的可能组合。所有这些都可能表示一个浮点数。然而,从这些组合中,有一些具有特殊意义。这些是指数由
    11111111
    给出的组合。这些组合中的任何一个表示
    NaN
    Inf
    。总共有2 32个− 8=2 24这样的组合。此外,由于符号位,数字0表示为
    -0
    +0
    。简言之,二进制32浮点数的总量由下式给出:

    232 − 224 − 1 = 4 278 190 079 232− 224− 1 = 4 278 190 079

    拍摄的图像可能有用吗?但听起来好像你把两个不同的东西混为一谈:(1)不同的可表示值(特定类型)的数量,这就是你的标题所指的,(2)最大可表示有限值,这就是你的问题主体所指的。你问的是哪一个?可能重复:我不理解这个答案的“2^(32-24)=2^26”位:2^(32-24)不等于2^26。有2^24位模式表示无穷大或NaN(或者进一步细分,有2个无穷大、2^23-2个信号NaN位模式和2^23个安静NaN位模式)。@MarkDickinson Yep。。。那是大脑疲劳的一刻;-)。我现在已经更新了答案。