浮點操作的方法
浮點數的加減運算一般由以下五個步驟完成:對階、尾數運算、規格化、舍入處理、溢出判斷
一、對階
所謂對階是指將兩個進行運算的浮點數的階碼對齊的操作。對階的目的是為使兩個浮點數的尾數能夠進行加減運算。因為,當進行M x·2Ex與M y·2Ey加減運算時,只有使兩浮點數的指數值部分相同,才能將相同的指數值作為公因數提出來,然後進行尾數的加減運算。對階的具體方法是:首先求出兩浮點數階碼的差,即⊿E=E x-E y,將小階碼加上⊿E,使之與大階碼相等,同時將小階碼對應的浮點數的尾數右移相應位數,以保證該浮點數的值不變。幾點注意:
(1)對階的原則是小階對大階,之所以這樣做是因為若大階對小階,則尾數的數值部分的高位需移出,而小階對大階移出的是尾數的數值部分的低位,這樣損失的精度更小。
(2)若⊿E=0,説明兩浮點數的階碼已經相同,無需再做對階操作了。
(3)採用補碼錶示的尾數右移時,符號位保持不變。
(4)由於尾數右移時是將最低位移出,會損失一定的精度,為減少誤差,可先保留若干移出的位,供以後舍入處理用。
二、尾數運算
尾數運算就是進行完成對階後的尾數相加減。這裏採用的就是我們前面講過的純小數的定點數加減運算。
三、結果規格化
在機器中,為保證浮點數表示的唯一性,浮點數在機器中都是以規格化形式存儲的。對於IEEE754標準的浮點數來説,就是尾數必須是1.M的形式。由於在進行上述兩個定點小數的尾數相加減運算後,尾數有可能是非規格化形式,為此必須進行規格化操作。
規格化操作包括左規和右規兩種情況。
左規操作:將尾數左移,同時階碼減值,直至尾數成為1.M的形式。例如,浮點數0.0011·25是非規格化的形式,需進行左規操作,將其尾數左移3位,同時階碼減3,就變成1.1100·22規格化形式了。
右規操作:將尾數右移1位,同時階碼增1,便成為規格化的形式了。要注意的是,右規操作只需將尾數右移一位即可,這種情況出現在尾數的最高位(小數點前一位)運算時出現了進位,使尾數成為或的形式。例如,10.0011·25右規一位後便成為1.00011·26的規格化形式了。
四、 舍入處理
浮點運算在對階或右規時,尾數需要右移,被右移出去的位會被丟掉,從而造成運算結果精度的損失。為了減少這種精度損失,可以將一定位數的移出位先保留起來,稱為保護位,在規格化後用於舍入處理。
IEEE754標準列出了四種可選的舍入處理方法:
(1)就近舍入(round to nearest)這是標準列出的默認舍入方式,其含義相當於我們日常所説的“四捨五入”。例如,對於32位單精度浮點數來説,若超出可保存的23位的多餘位大於等於100…01,則多餘位的值超過了最低可表示位值的一半,這種情況下,舍入的方法是在尾數的最低有效位上加1若多餘位小於等於011…11,則直接捨去若多餘位為100…00,此時再判斷尾數的最低有效位的值,若為0則直接捨去,若為1則再加1。
(2)朝+∞舍入(round toward +∞)對正數來説,只要多餘位不為全0,則向尾數最低有效位進1對負數來説,則是簡單地捨去。
(3)朝-∞舍入(round toward -∞)與朝+∞舍入方法正好相反,對正數來説,只是簡單地捨去對負數來説,只要多餘位不為全0,則向尾數最低有效位進1。
(4)朝0舍入(round toward 0)
即簡單地截斷捨去,而不管多餘位是什麼值。這種方法實現簡單,但容易形成累積誤差,且舍入處理後的值總是向下偏差。
五、 溢出判斷
與定點數運算不同的是,浮點數的溢出是以其運算結果的階碼的值是否產生溢出來判斷的。若階碼的值超過了階碼所能表示的最大正數,則為上溢,進一步,若此時浮點數為正數,則為正上溢,記為+∞,若浮點數為負數,則為負上溢,記為-∞若階碼的值超過了階碼所能表示的最小負數,則為下溢,進一步,若此時浮點數為正數,則為正下溢,若浮點數為負數,則為負下溢。正下溢和負下溢都作為0處理。
要注意的是,浮點數的表示範圍和補碼錶示的定點數的表示範圍是有所不同的,定點數的表示範圍是連續的,而浮點數的表示範圍可能是不連續的。
-
鐵桿三國張遼于禁優先升哪個
鐵桿三國優先升張遼,張遼是五星武將,攻擊高,爆發力強,戰力強悍,比于禁好用。于禁,字文則,泰山鉅平人,三國時期魏國武將,與張遼、徐晃、樂進、張郃等合稱為“五子良將”。早年攻呂布,破袁術,御張繡,拒袁紹、徵劉備等,戰功赫赫。...
-
你像誰怎麼幽默回答
你可以回答他:我像你呀,你看我們兩個都是兩條眉毛,兩個眼睛,一個鼻子,一個嘴巴,兩個耳朵,兩條胳膊,兩隻手,兩條腿,兩個腳。而且我們都是黃皮膚,我們都是黑頭髮,而且我們還都是黑眼珠,你看我們兩個長的多像呀,難道我們就是失散多年的姐妹嗎...
-
Cade是什麼意思
Cade常見英文名音譯是卡德,凱德。Cade意思是温柔,他就是這樣,常見於男生英文名。來源於宿務語、威爾士語,Cade是個冷門的名字,這個英文名字表示實際、務實、謹慎。,Cade音標為[keɪd],英文名整體來説“Cade”長度為4,精練、響亮大氣,給男性起名是指很心地善良,負責任、以...
-
sa開關是什麼
代表轉換開關。SA在電氣符號中代表轉換開關。轉換開關又稱組合開關。轉換開關是一種切換多回路的低壓開關。軸上迭焊多個動觸頭,軸轉動時動觸頭依次與靜觸頭接通或分斷,切換電路。把電路從一組連接改換到另一組連接的電器。有分立式和集成式兩種。...