美文网首页
No41.浮点数近似规则

No41.浮点数近似规则

作者: 赫尔特 | 来源:发表于2019-12-19 19:48 被阅读0次

\color{purple}{1.名词}
\color{blue}{2.Truncation Methods(舍弃的方法)}

名词

保留位(Guard bit)、近似位(Round bit)和粘滞位(Sticky bit)。
保留位:近似后的最低位
近似位:保留位的后一位
粘滞位:近似位后的所有位进行或运算后视作一位
truncation:截断,舍去,因为浮点数的位数是固定的,计算中多出来的位数需要利用一些规则进行舍去(比如四舍五入)

Truncation Methods(舍弃的方法)

  • Chopping
  • Von Neumann Rounding
  • Rounding

chopping方法:直接把把保留位(有的书上叫LSB)后面的位全部丢掉,比如:
01001001\color{green}11001 --->01001001\color{green}1
这个方法保留位处的误差从0到接近1,误差不平衡,不可取。(平衡的误差应该是从-1到1或者从0.5到0.5且分布概率一样)

Von Neumann Rounding方法:如果保留位后面的位全部是0,那就把它后面的位全部丢掉,保留位不变,否则的话,保留位置为1(不管它之前是否为1)
这个方法的误差在保留位处从接近-1到接近1,误差是平衡的,但是误差的绝对值有些小高。

Rounding方法(\color{red}{这个是主角,主角当然最后登场}
分三种情况:

  • 1.近似位(名词里面有介绍,有的书上叫MSB)是0,保留位保留,保留位后面的全部都丢了,这是肯定的,近似位不是1都没有达到四舍五入的"五"。

  • 2.近似位为1,如果近似位后面任意一位还有1(粘滞位),那么没商量,保留位直接加1,因为这比四舍五入的“五”要大了

  • 3.近似位为1,但是近似位后面的全部都是0,到了抉择的时候了:

    (1)如果保留位是0,就把保留位后面的全丢了
    (2)如果保留位是1,那就给保留位加1,让它进位后变成0
    总之就是在四舍五入刚好等于“五”时,把保留位变成偶数(即0)

举个栗子:


1

相关文章

  • No41.浮点数近似规则

    名词 保留位(Guard bit)、近似位(Round bit)和粘滞位(Sticky bit)。保留位:近似后的...

  • 浮点数的比较&初识String

    小心使用浮点数进行比较 浮点数没有绝对的相等,只有近似的相等。Java中只有整数才有绝对的相等。 例如: 结果:t...

  • 浮点数如何比较是否相等

    由于浮点数伴随着无法精确表示而进行近似或舍入,处理器是32位还是64位都会导致浮点数值不一样,所以浮点数不能够使用...

  • 《CSAPP》读书笔记 -- 第2章:浮点数原理(小专题)

    浮点数的作用:区别于整形数,用来表示小数。可以用来表示很大的数,或者非常接近0的小数,或者近似的做实数计算,浮点数...

  • Python 中关于 round 函数的小坑

    round函数很简单,对浮点数进行近似取值,保留几位小数。比如: >>> round(10.0/3, 2)3.33...

  • Python 中的round()函数

    round函数() 描述: 对浮点数进行近似取值,保留几位小数 语法: 第一个参数是一个浮点数;第二个参数是保留的...

  • Python入门第二课

    Python中整数和浮点数 Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全...

  • 数据类型-数字 Number-数字

    整数和浮点数 规则在JavaScript语言的底层,根本没有整数,所有数字都是小数(64位浮点数)JavaScri...

  • 字符串面试题总结

    规则判断 判断字符串是否符合整数规则 判断字符串是否符合浮点数规则 判断字符串是否符合回文字符串规则 数字运算in...

  • 浮点数的表示

    由于机器字长有限,定点数不能表示很大或者很小的实数,直接导致产生了实数近似值的表示方法——浮点数。 value =...

网友评论

      本文标题:No41.浮点数近似规则

      本文链接:https://www.haomeiwen.com/subject/cqsvnctx.html