繁体   English   中英

IEEE 754和机器编号

[英]IEEE 754 and machine numbers

我一直在尝试将机器编号(例如单位舍入(u)和epsilon(e))与IEEE 754标准结合使用。 我的教科书指出了一些对我来说真的没有意义的事情。

根据我的教科书,单位四舍五入是:

  • 对于单精度(尾数为23位):u = 6e-8
  • 对于双精度(尾数为52位):u = 2e-16

我一直在尝试为具有两个关系的这些结果得出公式:

  • 我的教科书指出:“在四舍五入的二进制算术中,我们通常有e = 2 * u”
    • e = 2 ^ -n,n是尾数位的数量

这些组合的结果将得出:u = 2 ^-(n + 1),同样,n是尾数位的数量。 使用u的给定结果检查此公式的不同精度:

对于单身:u = 2 ^-(23 + 1)= 5.96e-8,此结果将检出。 对于double:u = 2 ^-(52 + 1)= 1.11e-16,此结果未检出。

有人可以帮助我为单位舍入得出正确的公式,还是向我指出我一直在犯的一些错误? 感谢所有帮助。

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

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

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

对于53位有效数字,最低有效位表示相对于前导位的值2 -52 ,而四舍五入到最接近值时的最大误差是该值的一半。 因此,对于前导位1,最大舍入误差应为2 -53 ,约为1.11•10 -16 如果您的书说是2 -16 ,那是不正确的。

脚注

1 “有效”是首选术语。 “ Mantissa”是对数的分数部分的旧术语。 有效位数是线性的。 尾数是对数的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM