rounding - IEEE 754舍入为正无穷大

标签 rounding ieee-754 infinity

我很难理解IEEE 754舍入约定:

  • 四舍五入为正无穷大
  • 四舍五入为负无穷大
  • 无偏到最接近的偶数

  • 如果我在二进制点的右边有一个由9位组成的二进制数,并且我需要使用最右边的3位来确定舍入该怎么办?

    这是家庭作业,所以这就是为什么我对这个问题含糊不清……我需要有关该概念的帮助。

    谢谢!

    最佳答案

    向正无穷大舍入意味着舍入的结果永远不会小于自变量。
    向负无穷大舍入意味着舍入的结果永远不会大于参数。
    四舍五入到最接近,联系成偶数意味着四舍五入的结果有时更大,有时小于(有时等于)自变量。

    +0.100101110值四舍五入到二进制点后的六个位置将导致

    +0.100110   // for round towards positive infinity
    +0.100101   // for round towards negative infinity
    +0.100110   // for round to nearest, ties to even
    

    值被分割
    +0.100101    110
    

    放入要保留的位,这些位确定舍入结果。

    由于该值为正,并且确定位不全为0,因此向正无穷大舍入意味着将保留部分增加1 ULP。

    由于该值是正数,因此向负无穷大舍入会简单地丢弃最后一位。

    由于第一个截止位是1并且并非所有其他位都是0,因此+0.100110的值比+0.100101更接近原始值,因此结果是+0.100110

    对于最近/偶数情况更有启发性的是我们实际上有平局的一个或两个示例,例如将+0.1001舍入到二进制点后的三位:
    +0.100 1   // halfway between +0.100 and +0.101
    

    在这里,规则说要选择两个最接近的值(即+0.100)的最后一位0(最后一位偶数)的那个,并且此值四舍五入为负无穷大。但是舍入+0.1011将舍入为正无穷大,因为这一次,两个最接近的值中的较大者的最后一位为0。

    关于rounding - IEEE 754舍入为正无穷大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10788486/

    相关文章:

    Scala 有无限但没有无穷小。为什么?

    javascript - 你能将一个变量除/乘另一个数字四舍五入到最接近的百分之几吗?

    floating-point - $在控制台中显示 float

    python - 浮点运算错误

    binary - 我的 IEEE 754 浮点表示有什么问题?

    MySql IEEE 浮点 NaN、PositiveInfinity、NegativeInfinity

    f# - F-Sharp (F#) 无类型无穷大

    floating-point - IEEE 754 浮点舍入模式硬件/软件

    c# - 如何将值 C# 舍入到最接近的整数?

    iphone - iOS——实现复数