在“数值方法”课程中,我们在理论课程中学习一种浮点表示形式,在实验室课程中学习另一种类型的浮点表示形式。我们两个都有不同的老师,他们不会就连续课程中讨论的主题进行合作。
在理论课上,我们被告知浮点数是这样表示的:
其中 d_1 总是 。1.没有告知其他条件/约束。我们称之为 A 。
在实验课中,我们学习了IEEE-754格式:
其中 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。
我要去哪里错了?如何获得相同的值?它们有什么关系?
答案 0 :(得分:0)
我同意它们不匹配。
“ A”是大多数二进制浮点数在IEEE-754出现之前的工作方式。
很多边缘情况没有很好地处理。因此,在80年代初期出现了754(“ B”)。
最小的数字:
A:0.100 ... 00,具有A的最小指数
B:0.000 ... 01,具有B的最小指数
几乎每个商业浮点实现都遵循IEEE-754;是古代历史的“ A”。