勵志

勵志人生知識庫

浮點數怎麼算

浮點數的計算主要涉及浮點數的加減運算,這種運算通常伴隨着因爲無法精確表示而進行的近似或舍入。在IEEE754標準下,浮點數的加減運算分爲5個步驟:對階、尾數相加、尾數規格化、尾數舍入處理、溢出判斷處理。

對階:所謂對階,就是讓兩個操作數階數相同,以便進行加減。實現的方式是對較小數的尾數進行右移操作。對階的原則是向高階看齊。計算公式爲:當結果大於0說明被加數(被減數)階數高,則對加數(減數)進行移位對階。小於0則反之改變被加數(被減數)。

尾數加減:將兩個操作數的尾數相加減。值得注意的是:在IEEE754標準中,對於規格化數來說在小數點前有一位隱藏位1,在加減過程中需要把它還原到尾數中。尾數加減的實質是原碼的加減。

尾數規格化: 加減完成的尾數形式未必滿足IEEE754對於尾數的要求,即保留23位,小數點在第一個1之後。需要對尾數進行左規和右規。左規:將尾數向左移,用於清除第一個1前面出現的0。左規伴隨着階碼減少,在左規過程中要檢測階碼是否發生下溢,即階碼達到最小值(0000 0000)。右規:將尾數向右移,用於兩數相加後出現向高位進位的情況。因爲兩數相加最多進一位,所以右規最多一位。右規伴隨着階碼的增加,在右規過程中要檢測階碼是否發生上溢,即階碼達到最大值(1111 1111)。

尾數舍入處理:在IEEE754中保留了保護位,舍入位,粘位三位作爲附加位。同時對於IEEE754來說最後附加位的舍入,有如下規則。

溢出判斷處理:在浮點數中是以階碼的溢出與否來作爲評判標準的。

以上步驟完成後,就可以得到浮點數的加減運算結果。