實數(shù)(浮點數(shù))的表示
實數(shù)也稱為浮點數(shù),因為它的小數(shù)點位置不固定。實數(shù)是既有整數(shù)又有小數(shù)的數(shù),整數(shù)和純小數(shù)可以看做是實數(shù)的特例。任意一個實數(shù)在計算機內(nèi)部都可以用“指數(shù)”(整數(shù))和“尾數(shù)”(純小數(shù))來表示,這種用指數(shù)和尾數(shù)來表示實數(shù)的方法稱為“浮點表示法”。所以,在計算機中實數(shù)也稱為浮點數(shù),而整數(shù)則稱為定點數(shù)。
以流行的Pentium系列微處理器中的浮點數(shù)為例,它表示為如下形式。
可以看出,pentium系列微處理器中的浮點數(shù)具有如下性質(zhì)。
、 最高位是符號位,它表示該浮點數(shù)(實數(shù))的正負。
② 規(guī)格化浮點數(shù)的尾數(shù)的最高位(第1位)總是1,它不必在尾數(shù)表示出來。
、 浮點數(shù)的0有兩種,+0和-0。+0表示成全0,即0 00000000 000000000000000000000000,-0表示成1 00000000 00000000000000000000000。
、 浮點數(shù)的表示范圍雖然很大,但運算中還是可能出現(xiàn)超出它允許范圍的一些結(jié)果,這種情況稱為“向上溢出”。
、 浮點數(shù)能表示絕對值很小的數(shù),當運算中出現(xiàn)絕對值更小的數(shù)時,這種情況稱為“向下溢出”,這時,處理器只能用0來表示。
實數(shù)的運算
浮點數(shù)的加、減運算要比定點數(shù)(整數(shù))復(fù)雜得多。下面只作簡要介紹。
① 檢測A和B中有無0,若A=0,則C=B,若B=0,則C=A。運算結(jié)束。
、 計算兩數(shù)階碼之差,即d=Ea-Eb,若d>0,則將尾數(shù)Bs向右移d位,若d<0,則將尾數(shù)As向右移-d位,若d=0,則As和Bs均不移位。這個過程稱為對階。
、 將對階過后的兩個尾數(shù)相加或相減。
、 把結(jié)果進行規(guī)格化。對于Pentium處理器來說,若結(jié)果尾數(shù)絕對值小于1,則尾數(shù)不斷左移且階碼不斷減1,直至尾數(shù)絕對值大于或等于1;若結(jié)果尾數(shù)絕對值大于或等于2,則尾數(shù)右移1位階碼加1。
注意,兩浮點數(shù)相加或相減時,在結(jié)果規(guī)格化的過程中,可能會發(fā)生上溢或下溢。浮點數(shù)的乘除法比加減法稍簡單一些,其公式為:
乘積=(As×Bs)×2Ea+Eb
商=(As/Bs) ×2Ea-Eb
處理過程如下。
① 檢測A和B中有無0,若As=0,則乘積(商)=0,運算結(jié)束;若Bs=0,做乘法運算時乘積=0,做除法運算時商為∞,運算結(jié)束。
、 計算兩數(shù)階碼的和(或差)
、 兩尾數(shù)相乘或相除。
、 把結(jié)果進行規(guī)格化,即:若結(jié)果尾數(shù)絕對值小于1,則尾數(shù)不斷左移且階碼不斷減1,若結(jié)果尾數(shù)絕對值大于或等于2,則尾數(shù)右移且階碼加1。
注意,兩浮點數(shù)相乘或相除時,在階碼相加 (減)的過程中,或者在結(jié)果規(guī)格化的過程中,可能會發(fā)生上溢或下溢。浮點數(shù)運算過程中,為了保證浮點數(shù)運算的精度,當尾數(shù)右移時,對移出的位還需進行舍入處理。
相關(guān)推薦:
2015年計算機等級三級《數(shù)據(jù)庫技術(shù)》題庫匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |