【问题标题】:Difference between FPU rounding and tie breakingFPU 舍入和平局之间的区别
【发布时间】:2014-07-18 12:35:04
【问题描述】:

rounding to integertie-breaking modes 之间的区别是什么(如果有),在wikipedia article 中进行了描述?在IEEE-754-2008 standard 中,并没有这样的区别(虽然我只是简单地扫描了一下)。 x86 FPU control word 也没有这种区别。

那么,是否有可能有一个架构以不同的方式舍入整数而不是打破平局?现在有没有这样的架构?

【问题讨论】:

    标签: floating-point rounding fpu


    【解决方案1】:

    四舍五入为整数。有几种方法可以做到这一点;文章列出了其中五个。如果您选择四舍五入,则会出现平局 (0.5),您必须使用打破平局规则来处理这些平局。也有几种方法可以做到这一点,本文列出了其中的一些。

    【讨论】:

    • 好的,但是这些与 IEEE 的浮点实现有什么关系呢?这些是单独实施的,还是 FPU 总是使用相同的策略来进行舍入和平局?
    • x87 具有向上舍入、向下舍入、截断和舍入到最近的中断关系使用舍入到偶数。
    • 并且从零开始(至少 2008 版本是这样)。
    • 这实际上回答了这个问题,虽然我不得不读了五遍然后睡着了,才能开始理解。
    • AFAIK 舍入模式不仅适用于整数舍入,还适用于浮点运算后必须进行的舍入,以将中间结果的多余位舍入到允许的精度对于给定的类型。
    【解决方案2】:

    经过一番思考,我明白了。 打破平局规则将适用如果选择最近舍入。然后,他们帮助决定如果结果以 0.5 结尾时该怎么做(甚至可能是浮点结果,其中 .5 部分就在最不重要的小数点之后)。

    因此,如果模式是向 ±∞(无穷大)或向零舍入之一,则永远不会发生平局。

    只有当模式最接近时,才会有额外的平局算法选择,维基百科文章列出了这些算法。 IEEE 标准允许四舍五入到最近、最近的偶数或交替从零开始。

    我会把这个问答留给那些觉得它有用的人。

    【讨论】:

      猜你喜欢
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 2012-07-21
      • 2017-07-18
      • 2012-10-06
      相关资源
      最近更新 更多