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