[英]IEEE 754 and machine numbers
我一直在尝试将机器编号(例如单位舍入(u)和epsilon(e))与IEEE 754标准结合使用。 我的教科书指出了一些对我来说真的没有意义的事情。
根据我的教科书,单位四舍五入是:
我一直在尝试为具有两个关系的这些结果得出公式:
这些组合的结果将得出: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.