两个不同浮点表示之间的关系

问题描述 投票:0回答:1

为了简单起见,我将使用并请求使用8位浮点数。另外,请忽略符号位。

在我们的数值方法课程中,我们正在理论课程中学习一种浮点表示形式,而在实验室课程中正在学习另一种类型的浮点表示形式。我们两个都有不同的老师,他们不会在后续课程中讨论的主题上进行协作。

在理论课上,我们被告知浮动代表这样:

enter image description here

其中d_1总是1。未告知其他条件/约束。我们称之为A

在实验课上,我们学习了IEEE-754格式:

enter image description here

其中e仅在为000时才为1,如果为111并且尾数为0000,则为无穷大;如果为111并且尾数为XXXX,则不是数字。我们称之为B

这是我所了解的,当涉及到找到最小非零数字时。

在A中,e变为e_min-3,即0-3。意思是,总数为0.1 * 2 ^ -3,即2 ^ -4。

但是在B中,最小的非零法线是1 * 2 ^(1-3),即2 ^ -2;并且最小的非零非正规数为0.0001 * 2 ^(1-3),即2 ^ -4 * 2 ^ -2,即2 ^ -6。

即使它们都被认为是正确的表示形式,它们也不匹配。我可以找到的所有其他来源都只能遵循IEEE-754格式,或者只是声明可以通过简单地更改小数点和指数的位置来表示常规数字。但是没有人告诉我它们之间的关系,例如从21:50开始的这个人here

我要去哪里错了?如何获得相同的值?它们有什么关系?

floating-point precision ieee-754
1个回答
0
投票

我同意他们不匹配。

“”是大多数二进制浮点数在IEEE-754出现之前的工作方式。

[很多边缘情况没有得到很好的处理。因此,在80年代初期出现了754(“ B”)。

  • 以前,“规范化”是可选的。那是d1不一定是1。“ A”有点奇怪,因为我认为操作后没有任何硬件强制规范化。 (那时规范化是一项昂贵的操作。)
  • 非正规数字和“逐渐下溢”。这给理解和硬件实现增加了很多复杂性,但是数学家喜欢它。这些数字在“ A”中不允许。
  • 为“ e”选择一个值,以便几乎所有的逆(1 / x)都不会上溢/下溢。
  • (“ B”的前导1实际上是一个“自由”位,因为它实际上不在表示中,因此比所有前任所拥有的精度更高,而没有损失指数范围)。 (注意:这只能用于base-2,而不能用于base-16(IBM-360)base-10等。)目前尚不清楚“ A”是否隐藏d1。
  • 无穷大和NaN偷走了最大偏置指数值(轻微损失)。也许只有CDC在此之前有这样的概念。

最小数字:

A:0.100 ... 00,其中A的最小指数B:0.000 ... 01,其中B的最小指数

几乎每个商业浮点实现都遵循IEEE-754;是古代历史的“ A”。

© www.soinside.com 2019 - 2024. All rights reserved.