【问题标题】:IEEE-754 floating point number rounding mechanismIEEE-754 浮点数舍入机制
【发布时间】:2017-03-06 09:34:15
【问题描述】:

这是关于 IEEE-754 浮点数表示中的舍入和保护数字的问题。根据标准,保留两个额外的数字用于计算。假设点后两位数可用并且

   2.3400
+  0.0256
  --------
   2.3656

现在,guard 是 5,round 是 6,因为 56>50,所以它被四舍五入到 100,因此,结果是 2.37

但是,如果您不假设保护位和四舍五入数字,而仅假设附加数字在 5 和 9 之间,那么您将再次将其四舍五入为 10,结果为 2.37

所以,我的问题是,在哪种情况下,传统的舍入机制(0 到 4 舍入为 0,5 到 9 舍入为 10)会失败,而保护和舍入数字会有所帮助?

【问题讨论】:

  • 看来你的意思是指 IEEE 754,虽然你的问题的标题是关于 IEEE 745 和身体 IEEE 75。据我记得,IEEE 754 没有说任何关于圆形和保护位,因为它描述了兼容系统上的结果应该是什么,而不是如何达到这些结果。你问题的第一句话也是关于位的,你的例子是十进制的。
  • 您打算问的问题(模“以 10 为底的示例”混淆)可能是 pages.cs.wisc.edu/~david/courses/cs552/S12/handouts/… 回答的问题
  • 我编辑了这篇文章。该示例来自 Patterson 的书(计算机体系结构:HW/SSW 接口)。

标签: floating-point ieee-754


【解决方案1】:

问题在于 2.3650 的 IEEE 舍入规则结果是 2.36,而不是 2.37。如果确切答案恰好在两个可表示数字之间的一半,则将其四舍五入为偶数。在二进制中,最低有效位为 0。

如果确切的答案比 2.365 稍大一点,则四舍五入为 2.37。

圆形位区分这些情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2012-01-20
    • 2012-01-06
    • 2014-10-18
    • 1970-01-01
    • 2014-12-10
    相关资源
    最近更新 更多