为什么指数 IEEE754(单)限制在 2^{-126}<= e <=2^{127} 之间?
Why does the exponent IEEE754 (single) limit between 2^{-126}<= e <=2^{127}?
我指的是这个问题,但我对答案不满意:IEEE-754 32 Bit (single precision) exponent -126 instead of -127
答案是否暗示实际上指数可以是 but because of the representation in denormalized form the smallest possitive number is equal to 。
这是否意味着最小的可表示正数是:
or
最后两个选项是哪个?
非常感谢您。
再次感谢大家,大家解释的很好!
这很简单:为非正规化选择了 -126,因此最小的正规化和最大的非正规化之间没有阶梯。
最低正常值是
1.0000...bin × 2-126
下面一个"ULP"是
0.1111...bin × 2-126
如果是2-127,这两个值之间会有几个"ULP"(甚至很多"ULP")的步长。
在 IEEE-754 基本 32 位二进制浮点数中,每个有限值都具有以下形式:
± x.xxxxxxxxxxxxxxxxxxxxxxx • 2e
其中x.xxxxxxxxxxxxxxxxxxxxxxx是一个二进制数,−126≤e≤+127.
对于正规数,第一个x为1,e可以是−126≤e≤+127中的任意值。由于第一个 x 始终为 1,因此未明确存储它——浮点格式包含一位用于符号,23 位用于其他 x,8 位用于指数。指数存储为 e+127 的二进制。因此,对于从 −126 到 +127 的 e,存储的值为 1 到 254。剩下 0 和 255。
指数字段中的 0 是次正规数的代码。对于次正规数,指数 e 与最低正规指数 −126 相同,但第一个 x 为 0。因此次正规值的形式为:
± 0.xxxxxxxxxxxxxxxxxxxxxxx • 2−126
因此可以表示的最小正值是:
+ 0.00000000000000000000001 • 2−126
也就是2−149.
(指数字段中的255用于表示无穷大和NaN。)
Why does the exponent IEEE754 (single) limit between 2^{-126}<= e <=2^{127}?
Reworded:
Why does the exponent IEEE754 (single) limit between -126 <= exponent <= 127?
binary32 有一个 8 位 偏置指数 字段允许 256 个值。可以选择 wider/smaller 指数字段,但此处为 8。 2 个值,0 和 255,具有特殊含义,剩下 254。
在 1970 年代,得出的结论是对称分布这些 偏置指数 值 +/- 大约为零,通过使用 127 偏移量导致 254 个值 -126 到 +127。
正常 值的形式为:符号 * (1.xxx... 总共 23 x's...xxx) * 2 指数 - offset 提供 24 位二进制精度。
出于各种数值计算原因(经过多次辩论),得出的结论是 |values|小于最小的正常正数 1.0 * 21 - 127 应该会逐渐失去精度。这些是 次正常 或 denormal 数字。它们使用 偏置指数 0 和 与最小的 正常 [=35] 相同的合成指数 -126 进行编码=] 数.
v--------------------------------------- Implied valued
| v--------------------------v---------- Significant explicitly encoded
| | | v---- Biased exponent
| | | | v-v Implied offset
2^-126 = 1.000 0000 0000 0000 0000 0000 * 2^1-127 // smallest normal
0.111 1111 1111 1111 1111 1111 * 2^0-126 // largest sub-normal
2^-127 = 0.100 0000 0000 0000 0000 0000 * 2^0-126
2^-128 = 0.010 0000 0000 0000 0000 0000 * 2^0-126
2^-129 = 0.001 0000 0000 0000 0000 0000 * 2^0-126
...
2^-149 = 0.000 0000 0000 0000 0000 0001 * 2^0-126 // smallest sub-normal
0.0f = 0.000 0000 0000 0000 0000 0000 * 2^0-126 // zero
所以低至 2-127 的值具有 24 位精度,低至 2-149 的值具有不断降低的精度。
我指的是这个问题,但我对答案不满意:IEEE-754 32 Bit (single precision) exponent -126 instead of -127
答案是否暗示实际上指数可以是
这是否意味着最小的可表示正数是:
最后两个选项是哪个?
非常感谢您。
再次感谢大家,大家解释的很好!
这很简单:为非正规化选择了 -126,因此最小的正规化和最大的非正规化之间没有阶梯。
最低正常值是
1.0000...bin × 2-126
下面一个"ULP"是
0.1111...bin × 2-126
如果是2-127,这两个值之间会有几个"ULP"(甚至很多"ULP")的步长。
在 IEEE-754 基本 32 位二进制浮点数中,每个有限值都具有以下形式:
± x.xxxxxxxxxxxxxxxxxxxxxxx • 2e
其中x.xxxxxxxxxxxxxxxxxxxxxxx是一个二进制数,−126≤e≤+127.
对于正规数,第一个x为1,e可以是−126≤e≤+127中的任意值。由于第一个 x 始终为 1,因此未明确存储它——浮点格式包含一位用于符号,23 位用于其他 x,8 位用于指数。指数存储为 e+127 的二进制。因此,对于从 −126 到 +127 的 e,存储的值为 1 到 254。剩下 0 和 255。
指数字段中的 0 是次正规数的代码。对于次正规数,指数 e 与最低正规指数 −126 相同,但第一个 x 为 0。因此次正规值的形式为:
± 0.xxxxxxxxxxxxxxxxxxxxxxx • 2−126
因此可以表示的最小正值是:
+ 0.00000000000000000000001 • 2−126
也就是2−149.
(指数字段中的255用于表示无穷大和NaN。)
Why does the exponent IEEE754 (single) limit between 2^{-126}<= e <=2^{127}?
Reworded:
Why does the exponent IEEE754 (single) limit between -126 <= exponent <= 127?
binary32 有一个 8 位 偏置指数 字段允许 256 个值。可以选择 wider/smaller 指数字段,但此处为 8。 2 个值,0 和 255,具有特殊含义,剩下 254。
在 1970 年代,得出的结论是对称分布这些 偏置指数 值 +/- 大约为零,通过使用 127 偏移量导致 254 个值 -126 到 +127。
正常 值的形式为:符号 * (1.xxx... 总共 23 x's...xxx) * 2 指数 - offset 提供 24 位二进制精度。
出于各种数值计算原因(经过多次辩论),得出的结论是 |values|小于最小的正常正数 1.0 * 21 - 127 应该会逐渐失去精度。这些是 次正常 或 denormal 数字。它们使用 偏置指数 0 和 与最小的 正常 [=35] 相同的合成指数 -126 进行编码=] 数.
v--------------------------------------- Implied valued
| v--------------------------v---------- Significant explicitly encoded
| | | v---- Biased exponent
| | | | v-v Implied offset
2^-126 = 1.000 0000 0000 0000 0000 0000 * 2^1-127 // smallest normal
0.111 1111 1111 1111 1111 1111 * 2^0-126 // largest sub-normal
2^-127 = 0.100 0000 0000 0000 0000 0000 * 2^0-126
2^-128 = 0.010 0000 0000 0000 0000 0000 * 2^0-126
2^-129 = 0.001 0000 0000 0000 0000 0000 * 2^0-126
...
2^-149 = 0.000 0000 0000 0000 0000 0001 * 2^0-126 // smallest sub-normal
0.0f = 0.000 0000 0000 0000 0000 0000 * 2^0-126 // zero
所以低至 2-127 的值具有 24 位精度,低至 2-149 的值具有不断降低的精度。