非0正實數 0 0 f≠0 2 -126 (0.f) 0 0 f≠0 2 -1022
(0.f)
非規格化的非0負實數 1 0 f≠0 -2 -126 (0.f) 1 0 f≠0 -2 -1022
(1.f)
2.實數(浮點數)的四則運算
浮點數的加、減運算要比定點數(整數)復雜得多。下面只做簡要介紹。
設浮點數 A=As ×2Ea ,B=Bs ×2Eb 則
和數 C=(As ×2Ea-Eb+Bs )×2Eb ,差 D=(As ×2Ea -Eb -Bs )×2Eb(若Ea ≤Eb )
或者:
和數 C=(As ×Bs ×2Eb -Eb )×2Ea ,差 D=(As -Bs ×2Eb -Ea )×2Ea (若Ea >Eb )一般說來,浮點數的加、減運算有如下幾個步驟:
(1)檢測A和B中有無0,若A=0,則C=B,若B=0,則C=A。運算結束。
(2)計算兩數階碼之差,即d=Ea -Eb ,若d>0,則將尾數Bs 向右移d位,若d<0,則將尾數A s 向右移-d位,若d=0,則As 和Bs 均不移位。這個過程叫做“對階”。
(3)兩尾數相加或相減。
(4)把結果進行規格化。對于Pentium微處理器來說,若結果尾數絕對值小于1,則尾數不斷左移且階碼不斷減1,直至尾數絕對值大于或等于1;若結果尾數絕對值大于或等于2,則尾數右移1位且階碼加1。
注意:兩浮點數加/減時,在結果規格化的過程中,可能會發生“上溢”或“下溢”。浮點數的乘/除法比加/減法稍簡單一些,其公式為:
乘積=(As ×Bs )×2Ea +Eb 商=(As /Bs )×2Ea +Eb 處理過程如下:
(1)檢測A和B中有無0,若AS =0,則乘積(商)=0,運算結束;若BS =0,乘法時乘積=0,除法時商為∞,運算結束
(2)計算兩數階碼之和(或差)。(3)兩尾數相乘或相除。
(4)把結果進行規格化。即,若結果尾數絕對值小于1,則尾數不斷左移且階碼不斷減1;若結果尾數絕對值大于或等于2,則尾數右移且階碼加1。
注意:兩浮點數乘/除時,在階碼相加(減)的過程中,或者在結果規格化的過程中,可能會發生“上溢”或“下溢”。
浮點數運算過程中,為了保證浮點數運算的精度,當尾數右移時,對移出的位還需進行“舍入”處理。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |