由於浮點數尾數的小數點均固定在第一位數值前,可以預見浮點數的運算實質上是定點數運算。但是由於階碼的不同,尾數對應小數點位置實際是不同的,需要通過轉化使小數點對齊後,才能直接進行加減運算。
浮點數加減運算大致可以分為如下幾步:
對階:使兩小數點位置對齊
尾數運算:尾數進行加減運算
規格化:為增加有效數字尾數,提高運算精度,必須對其進行尾數規格化
捨入:規格化過程可能丟失有效位,需要考慮類似十進位制中四捨五入的問題
溢位判斷:判斷結果是否溢位,保證結果準確無誤
對階目的是對齊兩數的小數點,為此需求出階差,再按小階向大階看齊原則,對小階數尾數右移,每移1位對應階碼+1,直至兩數階碼相等。
下述樣例補碼表示的前兩位表示正負性,00為正,11為負。
將對階後的兩個尾數按照定點數運算規則進行加減
將尾數運算後結果進行規格化,轉化為規格化形式。規格化形式如下:
不符合規格化形式尾數,需進行左規或者右規
左規:尾數左移,階碼相應減少對應左移位數
右規:尾數右移,階碼相應增加對應右移位數
注:右規過程,可能出現形式01.xx…x或10.xx…x,此時表示尾數運算結果絕對值大於1,雖然定點數運算中不允許,但浮點數運算中不算溢位,直接右規即可。
需注意特殊情況:
在對階和右規過程,尾數可能丟失有效位,引起誤差影響精度,為此可用捨入法提高尾數精度。常用捨入法有:0舍1入法,恆置1法
例題
浮點數溢位一般指需要表示的數超出表示範圍,一般尾數發生的下溢按照歸0處理即可,不算真正的溢位,溢位指上溢。換句話說,尾數的溢位不算是溢位,頂多是丟失精度,階碼的溢位才是真正的溢位,採用階碼溢位判斷即可,本質為定點數溢位判斷。
資料的表示與運算 浮點數
計算機中,數字分為定點數和浮點數。相對於浮點數,定點數比較好理解,原碼補碼反碼移碼。而浮點數十分繁雜。關於浮點數的繁雜,我覺得最好的解釋就是,william m.kahan 因其在浮點數運算標準的制定上的突出貢獻而獲得圖靈獎。kahan 也是浮點數 ieee754 標準的主要設計師。初識浮點數 假如...
浮點數表示
之前的一些工作當中碰到了很多有關浮點數的問題,比如浮點數的表達範圍 表達精度 浮點數的儲存方式 浮點數的強制型別轉換等等,因此感覺有必要系統了解一下有關浮點數的問題。浮點數是一種公式化的表達方式,用來近似表示實數,並且可以在表達範圍和表示精度之間進行權衡 因此被稱為浮點數 浮點數通常被表示為 n m...
2 3 浮點數的表示與運算
返回目錄 計算機組成原理筆記目錄 2019 王道考研 2.3 浮點數的表示與運算 本節主要內容 1.基本格式 2.規格化 3.表示範圍 4.ieee754標準 5.浮點數的加減運算 6.浮點數的強制型別轉換 1.基本格式 2.規格化 規定尾數的最高數字必須是乙個有效值 1.左規 當浮點數運算的結果為...