組成第五講--浮點運算_第1頁
組成第五講--浮點運算_第2頁
組成第五講--浮點運算_第3頁
組成第五講--浮點運算_第4頁
組成第五講--浮點運算_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計算機組成原理3.5 浮點數德浮點數德 運算方法運算方法 3.5.1 浮點加法、減法運算浮點加法、減法運算設有兩個浮點數設有兩個浮點數和和,它們分別為它們分別為2EM2EM其中其中E和和E分別為數分別為數和和的階碼的階碼,M和和M為數為數和和的尾數。的尾數。兩浮點數進行加法和減法的運算規(guī)則是兩浮點數進行加法和減法的運算規(guī)則是 ( (M M2 2E EE E M M)2)2E E,E E 0,表示表示EE;若;若EE。 當當EE 時時,要通過尾數的移動以改變要通過尾數的移動以改變E或或E,使之相等。原則上使之相等。原則上,既既可以通過可以通過M移位以改變移位以改變E來達到來達到EE,也可以通過也

2、可以通過M移位以改變移位以改變E來實現來實現EE。但是。但是,由于浮點表示的數多是規(guī)格化的由于浮點表示的數多是規(guī)格化的,尾數左移會引起尾數左移會引起最高有效位的丟失最高有效位的丟失,造成很大誤差。尾數右移雖引起最低有效位的丟失造成很大誤差。尾數右移雖引起最低有效位的丟失,但造但造成誤差較小。成誤差較小。計算機組成原理 因此因此,對階操作規(guī)定使尾數右移對階操作規(guī)定使尾數右移,尾數右移后階碼作相應增加尾數右移后階碼作相應增加,其數值保持不變。其數值保持不變。顯然顯然,一個增加后的階碼與另一個階碼相等一個增加后的階碼與另一個階碼相等,增加的階碼的一定是小階。因此在對階增加的階碼的一定是小階。因此在對

3、階時時,總是使總是使小階向大階看齊小階向大階看齊,即小階的尾數向右移位即小階的尾數向右移位(相當于小數點左移)每右移一位相當于小數點左移)每右移一位,其階碼加其階碼加1,直到兩數的階碼相等為止直到兩數的階碼相等為止,右移的位數等于階差右移的位數等于階差E。(3) 尾數求和運算尾數求和運算 對階結束后對階結束后,即可進行尾數的求和運算。不論加法運算還是減法運算即可進行尾數的求和運算。不論加法運算還是減法運算,都按加法進都按加法進行操作行操作,其方法與定點加減法運算完全一樣。其方法與定點加減法運算完全一樣。計算機組成原理(4) 結果規(guī)格化結果規(guī)格化 在浮點加減運算時在浮點加減運算時,尾數求和的結果

4、也可以得到尾數求和的結果也可以得到01.或或10.,即兩符號位即兩符號位不等不等,這在定點加減法運算中稱為溢出這在定點加減法運算中稱為溢出,是不允許的。但在浮點運算中是不允許的。但在浮點運算中,它表明尾數它表明尾數求和結果的絕對值大于求和結果的絕對值大于1,向左破壞了規(guī)格化。此時將運算結果右移以實現規(guī)格化表向左破壞了規(guī)格化。此時將運算結果右移以實現規(guī)格化表示示,稱為稱為向右規(guī)格化向右規(guī)格化。規(guī)則是:尾數右移。規(guī)則是:尾數右移1位位,階碼加階碼加1。當尾數不是。當尾數不是1.M時需向左規(guī)時需向左規(guī)格化。格化。計算機組成原理(5) 舍入處理舍入處理 在對階或向右規(guī)格化時在對階或向右規(guī)格化時,尾數要

5、向右移位尾數要向右移位,這樣這樣,被右移的尾數的低位部分被右移的尾數的低位部分會被丟掉會被丟掉,從而造成一定誤差從而造成一定誤差,因此要進行因此要進行舍入處理舍入處理。簡單的舍入方法有兩種:。簡單的舍入方法有兩種:一種是一種是0舍舍1入入法法,即如果右移時被丟掉數位的最高位為即如果右移時被丟掉數位的最高位為0則舍去則舍去,為為1則將尾數則將尾數的末位加的末位加1。另一種是。另一種是恒置一恒置一法法,即只要數位被移掉即只要數位被移掉,就在尾數的末尾恒置就在尾數的末尾恒置1。計算機組成原理在在IEEE754標準中標準中,舍入處理提供了四種可選方法:舍入處理提供了四種可選方法:就近舍入就近舍入 其實

6、質就是通常所說的其實質就是通常所說的四舍五入四舍五入。例如。例如,尾數超出規(guī)定的尾數超出規(guī)定的23位的多位的多余位數字是余位數字是10010,多余位的值超過規(guī)定的最低有效位值的一半多余位的值超過規(guī)定的最低有效位值的一半,故最低有效位應故最低有效位應增增1。若多余的。若多余的5位是位是01111,則簡單的截尾即可。對多余的則簡單的截尾即可。對多余的5位位10000這種特殊情況:這種特殊情況:若最低有效位現為若最低有效位現為0,則截尾;若最低有效位現為則截尾;若最低有效位現為1,則向上進一位使其變?yōu)閯t向上進一位使其變?yōu)?0。計算機組成原理朝朝0舍入舍入 即朝數軸原點方向舍入即朝數軸原點方向舍入,就

7、是簡單的截尾。無論尾數是正數還是負數就是簡單的截尾。無論尾數是正數還是負數,截尾截尾都使取值的絕對值比原值的絕對值小。這種方法容易導致誤差積累。都使取值的絕對值比原值的絕對值小。這種方法容易導致誤差積累。朝朝舍入舍入 對正數來說對正數來說,只要多余位不全為只要多余位不全為0則向最低有效位進則向最低有效位進1;對負數來說則是對負數來說則是簡單的截尾。簡單的截尾。朝朝舍入舍入 處理方法正好與處理方法正好與 朝朝舍入情況相反。對正數來說舍入情況相反。對正數來說,只要多余位不全只要多余位不全為為0則簡單截尾則簡單截尾;對負數來說對負數來說,向最低有效位進向最低有效位進1。 計算機組成原理(6) 浮點數

8、的溢出浮點數的溢出下圖表示了浮點機器數在數軸上的分布情況。下圖表示了浮點機器數在數軸上的分布情況。當機器浮點數值大于最大正數當機器浮點數值大于最大正數A值,或小于最小負數值,或小于最小負數B值時,稱為值時,稱為上溢,上溢,這兩種這兩種情況意味著階碼運算值超出了它所表示的范圍,機器必須做中斷處理。情況意味著階碼運算值超出了它所表示的范圍,機器必須做中斷處理。當機器浮點數值小于最小正數當機器浮點數值小于最小正數a值,或大于最大負數值,或大于最大負數b值時,稱為值時,稱為下溢下溢。下溢不。下溢不是一個嚴重問題,通??醋鳛闄C器零。是一個嚴重問題,通常看作為機器零。計算機組成原理 浮點數的溢出是以其階碼

9、溢出表現出來的。在加浮點數的溢出是以其階碼溢出表現出來的。在加減運算過程中要檢查是否產生了溢出:減運算過程中要檢查是否產生了溢出:若階碼正常若階碼正常,加加(減減)運算正常結束;若階碼溢出運算正常結束;若階碼溢出,則要進行相應處理。另外對尾數的溢出也則要進行相應處理。另外對尾數的溢出也需要處理。需要處理。 階碼上溢階碼上溢 超過了階碼可能表示的最大值的正指數值超過了階碼可能表示的最大值的正指數值,一般將其認為是一般將其認為是和和。 階碼下溢階碼下溢 超過了階碼可能表示的最小值的負指數值超過了階碼可能表示的最小值的負指數值,一般將其認為是一般將其認為是0。 尾數上溢尾數上溢 兩個同符號尾數相加產

10、生了最高位向上的進位兩個同符號尾數相加產生了最高位向上的進位,將尾數右移將尾數右移,階碼增階碼增1來重新對齊。來重新對齊。 尾數下溢尾數下溢 在將尾數右移時在將尾數右移時,尾數的最低有效位從尾數域右端流出尾數的最低有效位從尾數域右端流出,要進行舍入處理。要進行舍入處理。計算機組成原理例例25 設20100.11011011,2100(0.10101100),求。解解: 為了便于直觀理解為了便于直觀理解,假設兩數均以補碼表示假設兩數均以補碼表示,階碼采用雙符號位階碼采用雙符號位,尾數采用尾數采用單符號位單符號位,則它們的則它們的浮點表示分別為浮點表示分別為浮浮00 010,0.11011011浮

11、浮00 100,1.01010100 求階差并對階EEEE補E補00 01011 10011 110即E為2,的階碼小,應使M右移兩位,E加2, 浮00 100,0.00110110(11)其中(11)表示M右移2位后移出的最低兩位數。計算機組成原理規(guī)格化處理規(guī)格化處理 尾數運算結果的符號位與最高數值位同值尾數運算結果的符號位與最高數值位同值,應執(zhí)行左規(guī)處理應執(zhí)行左規(guī)處理,結果為結果為1.00010101(10),階碼為階碼為 00 011。舍入處理舍入處理采用采用0舍舍1入法處理入法處理,則有則有判溢出判溢出 階碼符號位為階碼符號位為00,不溢出不溢出,故得最終結果為故得最終結果為2011

12、(0.11101010) 尾數求和尾數求和計算機組成原理3.5.2 浮點乘法、除法運算浮點乘法、除法運算 1.浮點乘法、除法運算規(guī)則浮點乘法、除法運算規(guī)則 設有兩個浮點數設有兩個浮點數和和:2EM2EM浮點乘法運算的規(guī)則是浮點乘法運算的規(guī)則是 2(EE)(M M) 即乘積的尾數是相乘兩數的尾數之積即乘積的尾數是相乘兩數的尾數之積,乘積的階碼是相乘兩數的階碼之和。當然乘積的階碼是相乘兩數的階碼之和。當然,這這里也有規(guī)格化與舍入等步驟。里也有規(guī)格化與舍入等步驟。計算機組成原理浮點除法運算的規(guī)則是浮點除法運算的規(guī)則是 2(EE)(M M) 商的尾數是相除兩數的尾數之商商的尾數是相除兩數的尾數之商,商

13、的階碼是相除兩數的階碼之差。也有規(guī)格化商的階碼是相除兩數的階碼之差。也有規(guī)格化和舍入等步驟。和舍入等步驟。2.浮點乘、除法運算步驟浮點乘、除法運算步驟浮點數的乘除運算大體分為四步:浮點數的乘除運算大體分為四步:第一步第一步,0 操作數檢查;第二步操作數檢查;第二步,階碼加階碼加/減操作;第三步減操作;第三步,尾數乘尾數乘/除操作;第除操作;第四步四步,結果規(guī)格化及舍入處理。結果規(guī)格化及舍入處理。計算機組成原理(1) 浮點數的階碼運算浮點數的階碼運算對階碼的運算有對階碼的運算有1、1、兩階碼求和、兩階碼求差四種、兩階碼求和、兩階碼求差四種,運算時還必須檢查結果是運算時還必須檢查結果是否溢出。在計

14、算機中否溢出。在計算機中,階碼通常用補碼或移碼形式表示。補碼運算規(guī)則和判定溢出的方法階碼通常用補碼或移碼形式表示。補碼運算規(guī)則和判定溢出的方法,前面已經講過。這里只對移碼的運算規(guī)則和判定溢出的方法進行講解。前面已經講過。這里只對移碼的運算規(guī)則和判定溢出的方法進行講解。移碼的定義為移碼的定義為移移2n2n2n按此定義按此定義,則有則有移移移移2n2n 2n(2n() 2n移移計算機組成原理 即直接用移碼實現求階碼之和時即直接用移碼實現求階碼之和時,結果的最高位多加了個結果的最高位多加了個1,要得到正確的移碼形式要得到正確的移碼形式結果結果,必須對結果的符號再執(zhí)行一次求反。必須對結果的符號再執(zhí)行一

15、次求反。當混合使用移碼和補碼時當混合使用移碼和補碼時,考慮到移碼和補碼的關系:對同一個數值考慮到移碼和補碼的關系:對同一個數值,其數值位完其數值位完全相同全相同,而符號位正好完全相反。而而符號位正好完全相反。而補補的定義為的定義為 補補2n1則求階碼和用如下方式完成:則求階碼和用如下方式完成:移移補補2n2n1 2n1(2n()即即 移移移移補補(mod 2n1)計算機組成原理同理同理 移移移移補補 上二式表明執(zhí)行階碼加減時上二式表明執(zhí)行階碼加減時, ,對加數或減數對加數或減數 來說來說, ,應送移碼符號位正常值的反應送移碼符號位正常值的反碼。碼。如果階碼運算的結果溢出如果階碼運算的結果溢出,

16、 ,上述條件則不成立。此時上述條件則不成立。此時, ,使用雙符號位的階碼加法使用雙符號位的階碼加法器器, ,并規(guī)定移碼的第二個符號位并規(guī)定移碼的第二個符號位, ,即最高符號位恒用即最高符號位恒用 0 0 參加加減運算參加加減運算, ,則溢出條件是則溢出條件是結果的最高符號位為結果的最高符號位為1 1。此時。此時, ,當低位符號位為當低位符號位為 0 0時時, ,表明結果上溢表明結果上溢, ,為為1 1時時, ,表明結果表明結果下溢。當最高符號位為下溢。當最高符號位為0 0時時, ,表明沒有溢出;低位符號位為表明沒有溢出;低位符號位為 1,1,表明結果為正;為表明結果為正;為 0 0 時時, ,表明結果為負。表明結果為負。計算機組成原理例例26 011,110,求求移移 和和 移移,并判斷是否溢出。并判斷是否溢出。解解:移移01 011, 補補00 110, 補補11 010移移移移補補10 001, 結果上溢。結果上溢。移移移移補補00 101, 結果正確結果正確,為為3。計算機組成原理(2) 尾數處理尾數處理浮點加減法對結果的規(guī)格化及舍入處理也適用于浮點乘除法。浮點加減法對結果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論