首页 文章

IEEE 754和机器号

提问于
浏览
0

我一直试图将机器数量包括在单位舍入(u)和epsilon(e)以及IEEE 754标准中 . 我的教科书陈述了一些对我来说没有意义的事情 .

根据我的教科书单位结束是:

单精度

  • (尾数为23位):u = 6e-8

  • 表示双精度(尾数为52位):u = 2e-16

我一直试图用两种关系推导出这些结果的公式:

  • 我的教科书说明:"In binary arithmetic with rounding we usually have e = 2*u"

  • e = 2 ^ -n,n是尾数位的数量

然后,这些组合结果将给出:u = 2 ^ - (n 1),同样n是尾数位的量 . 检查此formule与给定的u结果对于不同的精度:

单个:u = 2 ^ - (23 1)= 5.96e-8,此结果检出 . 对于double:u = 2 ^ - (52 1)= 1.11e-16,此结果不会检出 .

有人可以帮助我为单位舍入找到一个正确的形式,还是指出我一直犯的错误?所有帮助表示赞赏 .

1 回答

  • 1

    这似乎是教科书中的错误 .

    IEEE-754基本32位和64位二进制浮点格式的有效位分别为24和53位 . 有时会说有效位数是23位和52位,但这是一个错误 . 这些是用于编码有效数字的主要字段的大小,但是完整的24位有效数字在主有效数字段中用23位编码,在指数字段中用1位编码 . 类似地,完整的53位有效数字在主有效位字段中用52位编码,在指数字段中用1位编码 . (完整有效数的前导位来自指数字段:如果指数字段为零,则前导有效位为0.如果指数字段既不为零也不为全1,则前导有效位为1.如果指数字段是全部,浮点对象是一个特殊值,无论是无穷大还是NaN . )

    当24位有效位数的前导位表示值1时,最低有效位表示值2-23 . 那就是所谓的epsilon . 当实数被舍入到最接近的可表示浮点值时,最大误差是最低有效位的值的一半 . (因为,如果它超过两个数字之间的距离的一半,我们会选择另一个方向的数字,因为它更接近 . )

    对于53位有效数字,最低有效位表示相对于前导位的值2-52,并且当舍入到最接近时的最大误差是该值的一半 . 因此,对于前导位1,最大舍入误差应为2-53,即大约1.11•10-16 . 如果你的书说它是2-16,那就错了 .

    脚注

    1“重要”是首选术语 . “尾数”是对数的小数部分的旧术语 . 重要性是线性的 . Mantissas是对数的 .

相关问题