浮點數加法減法的舍入原則——計算機組成原理


舍入處理

原因

在對階或向右規格化中,被右移的尾數部分的低位會被丟掉,從而造成一定的誤差。故要進行舍入處理,減少這種誤差。

具體兩種方法

  1. “0舍1入法”:右移時被丟掉的最高位是0則直接舍去(包括0之后的);如果是1則舍去並在最低有效位上加1;
    2.“恆置1”法:只要數位被丟掉,一律在最低有效位上加1.

IEEE754標准中的4種方法

  1. 就近舍入:即十進制下的“四舍五入”,例如有效數字超出規定數位的多余數字是1001,它大於超出規定最低位的一半(即0.5),故最低位進1。如果多余數字是0111,它小於最低位的一半,則舍掉多余數字(截斷尾數、截尾)即可。對於多余數字是1000、正好是最低位一半的特殊情況,最低位為0則舍掉多余位,最低位為1則進位1、使得最低位仍為0(偶數)。

注意這里說明的數位都是指二進制數。

舉例:要求保留小數點后3位。

對於1.0011001,舍入處理后為1.010(去掉多余的4位,加0.001)
對於1.0010111,舍入處理后為1.001(去掉多余的4位)
對於1.0011000,舍入處理后為1.010(去掉多余的4位,加0.001,使得最低位為0)

對於1.1001001,舍入處理后為1.101(去掉多余的4位,加0.001)
對於1.1000111,舍入處理后為1.100(去掉多余的4位)
對於1.1001000,舍入處理后為1.100(去掉多余的4位,不加,因為最低位已經為0)

對於1.01011,舍入處理后為1.011(去掉多余的2位,加0.001)
對於1.01001,舍入處理后為1.010(去掉多余的2位)
對於1.01010,舍入處理后為1.010(去掉多余的2位,不加)

對於1.01111,舍入處理后為1.100(去掉多余的2位,加0.001)
對於1.01101,舍入處理后為1.011(去掉多余的2位)
對於1.01110,舍入處理后為1.100(去掉多余的2位,加0.001)

2.朝0舍入:即朝數軸零點方向舍入,即直接截尾。
3.朝正無窮舍入:對正數而言,只要多余位不全為0則向最低有效位進1;負數則直接截尾。
4.朝負無窮舍入:對負數而言,向最低有效位進1;正數若多余位不全部為0則簡單截尾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM