我试图理解浮点数算术在使用二进制系统时如何在计算机科学中发挥作用。我遇到了What Every Computer Scientist Should Know About Floating-Point Arithmetic的摘录,它将规范化数字定义为唯一的浮点数,其中前导有效数字为非零。它继续说......
当β = 2,p = 3,e min = -1,e max = 2,有16个归一化浮点数,如图D-1所示。
β是 base , p 是精度, e min 是最小指数, e max 是最大指数。
我试图理解他是如何得出16个标准化浮点数的结论是将有效数量的有效数字β^ p 和可能的指数数量相乘 e max - e min + 1 。我的结果是 32个可能的标准化浮点值。我不确定如何获得 16标准化浮点值的正确结果,如上文所述。我假设排除了负浮点值,但是我没有在计算中包含它们。
这个问题更倾向于数学公式。但它有助于我更好地理解浮点运算在计算机科学中的作用。
我想知道如何获得16个标准化浮点数的正确结果以及原因。
答案 0 :(得分:2)
由于第一位始终为1,尾数为3位,因此只有两位变化,产生4个不同的尾数值。结合了16个16个不同的指数值。虽然我没看过这篇论文。
答案 1 :(得分:1)
我试图理解他是如何得出16个归一化浮点数的结论是将有效数量β^ p和可能的指数数量乘以e max - e min + 1
这是正确的,除了可能的有效数的数量不是β p 二进制的隐式前导1.在这些条件下,可能的有效数的数量是β p-1 < / sup>,编码为p-1位。
换句话说,当编码保留时,例如52位用于编码53个二进制数字的精度时,已经利用了可能有效数的缺失值。