第11講 浮點運算方法和浮點運算器_第1頁
第11講 浮點運算方法和浮點運算器_第2頁
第11講 浮點運算方法和浮點運算器_第3頁
第11講 浮點運算方法和浮點運算器_第4頁
第11講 浮點運算方法和浮點運算器_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、浮點運算方法和浮點運算器,2.6 浮點運算方法和浮點運算器,2.6 浮點運算方法和浮點運算器,2.6.1 浮點加法、減法運算 2.6.2 浮點乘法、除法運算 2.6.3 浮點運算流水線 2.6.4 浮點運算器實例,2.6.1 浮點加法、減法運算,1、浮點加減運算 設(shè)有兩個浮點數(shù)和,它們分別為 2EM 2EM 其中E和E分別為數(shù)和的階碼,M和M為數(shù)和的尾數(shù)。兩浮點數(shù)進行加法和減法的運算規(guī)則是:(下頁例子理解) 2EM 2EM (M 2EEM)2E, 設(shè)EE,2.6.1 浮點加法、減法運算,以十進制舉例: 1.2*105 + 4.7*103=? 可寫為:1.2*105 + 0.047*105 =1

2、.247*105 或者寫為120*103 + 4.7*103 =124.7*103,2.6.1 浮點加法、減法運算,2、浮點運算步驟如下: 1). 0 操作數(shù)的檢查,看有無簡化操作的可能; 2). 比較階碼大小并完成對階 (小階向大階對齊); Eg. 1.11011210 1.1101127,為什么不是大階向小階對齊?,2.6.1 浮點加法、減法運算,Eg. 1.11011210 1.1101127 浮點格式中,尾數(shù)的小數(shù)點位置是默認(rèn)的 如果向小階對齊,尾數(shù)就要左移,易導(dǎo)致高位數(shù)據(jù)丟失。 如果向大階對齊,尾數(shù)就要右移,丟失的是低位數(shù)據(jù),2.6.1 浮點加法、減法運算,3). 尾數(shù)進行加或減運算

3、; 方法與定點加減法運算方法相同 4). 結(jié)果規(guī)格化 定點運算溢出,在浮點運算中要通過改變階碼實現(xiàn)規(guī)格化。,2.6.1 浮點加法、減法運算,(1)在浮點加減運算時,尾數(shù)求和的結(jié)果也可以得到01.或10.,即兩符號位不等,此時將運算結(jié)果右移以實現(xiàn)規(guī)格化表示,稱為向右規(guī)格化。 規(guī)則:尾數(shù)右移1位,階碼加1 (2)結(jié)果是00.0.01.或11.1.10.時,則向左規(guī)格化 規(guī)則:尾數(shù)左移1位,階碼減1,直到規(guī)格化,.,2.6.1 浮點加法、減法運算,結(jié)果規(guī)格化舉例 00.11011 * 23 +00.01110 * 23 =01.01001 * 23 (溢出,但可被處理) =00.101001 * 2

4、4 浮點區(qū)別于定點: 可以通過增減階碼實現(xiàn)尾數(shù)的移動。,2.6.1 浮點加法、減法運算,5). 舍入處理 就近舍入 朝0舍入 朝舍入 朝- 舍入,2.6.1 浮點加法、減法運算,就近舍入: 類似于四舍五入, 比1000大進位,比1000小舍去 對于1000的情況: 有效位末尾是1:進1 有效位末尾是0:舍棄 eg,保留有效位到0.001 0.10111 -0.00101 0.11110 -0.01010,2.6.1 浮點加法、減法運算,朝0舍入:即簡單的截尾 保留有效位到0.001: 0.10111 -0.00101 0.11110 -0.01010,教材勘誤: P53: 5)舍入處理 朝0舍

5、入 朝+舍入 朝-舍入,2.6.1 浮點加法、減法運算,朝舍入: 正數(shù):多余位不全為”0”,進1; 負(fù)數(shù):截尾 eg.保留有效位到0.001 0.10111 -0.00101 0.11110 -0.01010,2.6.1 浮點加法、減法運算,朝- 舍入: 負(fù)數(shù):多余位不全為”0”,進1; 正數(shù):截尾 eg.保留有效位到0.001 0.10111 -0.00101 0.11110 -0.01010,2.6.1 浮點加法、減法運算,例題: 設(shè) 111.01100000, 211.01101001, 311.01101000, 411.01111000, 求執(zhí)行只保留小數(shù)點后4位有效數(shù)字的就近舍入操

6、作值。如果朝0舍入呢?,2.6.1 浮點加法、減法運算,6). 溢出處理 表現(xiàn)為階碼溢出。 階碼上溢,即最大的正值無法表示,一般將其認(rèn)為是和。 階碼下溢,即最小的負(fù)值無法表示,則認(rèn)為數(shù)值為0 (小于- ),2.6.1 浮點加法、減法運算,尾數(shù)上溢,兩個同符號位的數(shù)相加。處理方法是尾數(shù)右移,階碼 加1。 尾數(shù)下溢。只在尾數(shù)右移時發(fā)生,最低位從最右端流出。進行要進行舍入處理。,2020/8/17,20,2.6.1 浮點加法、減法運算,IEEE754標(biāo)準(zhǔn)下浮點加減法處理流程,報告下溢或當(dāng)0處理,產(chǎn)生舍入,即 表示尾數(shù)下溢,浮點數(shù)表示范圍如下圖所示(未規(guī)格化) 最大值:(1-2-6) 215 (eg.

7、尾數(shù)7位,階碼5位) 最小值: -(1-2-6) 215 最小正值: 2-6 2-15 最大負(fù)值: -2-6 2-15,2.6.1 浮點加法、減法運算,教材例29 設(shè)x = 10ExMx = 1020.3 ,y = 10EyMy = 1030.2 , 求 x+y=? x-y=?解:Ex=2, Ey=3, ExEy, 對階時小階向大階看齊。x+y = (Mx10Ex-Ey + My)10Ey= (0.3102-3 + 0.2)103= 0.23 103 = 230 x-y = (Mx10Ex-Ey - My)10Ey= (0.3102-3 - 0.2)103= -0.17 103 = -170,

8、2.6.1 浮點加法、減法運算,例題 設(shè)真值x220.1101101, y=-240.1010110 計算機中均以規(guī)格化浮點形式表示,尾數(shù)、階碼均為原碼形式,尾數(shù)含符號位8位,階碼含符號位4位,如下圖規(guī)格,求x+y。 數(shù)符 尾數(shù) 階符 階碼,1,1,3,7,解答過程:x220.1101101, y=-240.1010110 1、x在計算機中表示為 0.110110120010即,01101101 0010 y在計算機中表示為 1.101011020100即,11010110 0100 做0操作數(shù)檢查(非0),2、對階:階碼對齊后才能加減。規(guī)則是階碼小的向階碼大的數(shù)對齊; 階差=Ex-Ey=00

9、10- 0100 用補碼實現(xiàn): 0010 +1100 =1110,即-2, 符號位為1表示負(fù)數(shù),-2表示階碼移動2位 因此Ex加2 ,Mx右移兩位, Ex=0100 , Mx=0.0011011(01),3、尾數(shù)相加 y在計算機中表示為 1.101011020100 即,11010110 0100 兩個尾數(shù)相加(先轉(zhuǎn)成補碼形式): 00.0011011(01) (Ex補碼) + 11.0101010 (Ey補碼) = 11.1000101(01) 補碼格式 = 1.0111010(11 ) 原碼形式,1.0111010(11 ) 原碼形式 4、結(jié)果規(guī)格化 尾數(shù)1. 1110101(1 ) 階碼

10、0011 5、舍入處理 1. 1110110 階碼0011 真值:-0.111011020011,2.6.1 浮點加法、減法運算,例題:有真值 x=0.1101*201 y=-0.1010*211 尾數(shù)和階碼都采用補碼表示,都采用雙符號位表示法。 求x+y?,2.6.1 浮點加法、減法運算,x浮=0001,00.1101 階碼在前尾數(shù)在后 y浮=0011,11.0110 階差=11110 即為-2,Mx應(yīng)當(dāng)右移2位, x浮=0011,00.0011(01) 尾數(shù)和為11.1001(01)其原碼1.0110(11) 左規(guī)1.1101(1),階碼變?yōu)?010 舍入1.1110,補碼11.0010

11、x+y浮=0010,11.0010所以,x+y=-0.1110*22,2.6.1 浮點加法、減法運算,教材勘誤: P55 第3步,規(guī)格化: x+y=.行,其中的右括號去掉。,2.6.2 浮點乘法和除法運算,設(shè)有兩個浮點數(shù)和:2EM2EM 2(EE)(MM) 2(EE)(MM),2.6.2 浮點乘法和除法運算,乘除運算分為六步 0操作數(shù)檢查 階碼加減操作 尾數(shù)乘除操作 結(jié)果規(guī)格化 舍入處理 確定積的符號,2.6.2 浮點乘法和除法運算,運算核心: 階碼運算過程 注意溢出檢測 尾數(shù)處理 規(guī)格化處理,2.6.2 浮點乘法和除法運算,階碼運算: 加1、減1、求和、求差 補碼采用雙符號位,為了對溢出進行

12、判斷 00 為正 11 為負(fù) 01 上溢 10 下溢 011,110,求補 和 補,并判斷是否溢出。 補00011, 補00110, 補11010 補補補01001, 結(jié)果上溢。 補補補11101, 結(jié)果正確。,2.6.2 浮點乘法和除法運算,尾數(shù)處理方法 截斷 舍入 尾數(shù)用原碼表示時 只要尾數(shù)最低為1或者移出位中有1數(shù)值位,使最低位置1 0舍1入 尾數(shù)用補碼表示時(p57例30) 丟失的位全為0,不必舍入。 丟失的最高位為0,以后各位不全為0時;或者最高為1,以后各位全為0時,不必舍入。 丟失的最高位為1,以后各位不全為0時,則在尾數(shù)的最低位入1的修正操作。,2.6.2 浮點乘法和除法運算,

13、例 設(shè)有浮點數(shù)250.0110011,23(0.1110010),階碼用4位補碼表示,尾數(shù)(含符號位)用8位原碼表示,求浮。 要求用原碼完成尾數(shù)乘法運算,運算結(jié)果尾數(shù)保留高8位(含符號位),并用尾數(shù)低位字長的值處理舍入操作。,解:階碼采用雙符號位,尾數(shù)原碼采用單符號位,則有Mx原=0.0110011 , My原=1.1110010Ex補=11011 , Ey補=00011x浮=11011,0.0110011 y浮=00011,1.1110010(1) 求階碼和:Ex補+Ey補=11011+00011=11110 (補碼形式-2)(2) 尾數(shù)乘法運算可采用原碼陣列乘法器實現(xiàn),即有Mx原My原 = 0.0110011原1.1110010原= 1.0101101 0110110原,(3) 規(guī)格化處理:乘積不是規(guī)格化的數(shù),需要左規(guī)。尾數(shù)左移1位變?yōu)?.1011010,1101100 , 階碼變?yōu)?1101 (-3)。(4) 舍入處理:尾數(shù)為負(fù)數(shù),取高位字長,按舍入規(guī)則舍去低位字長,故尾數(shù)為1.1011011 。最終相乘結(jié)果為 xy浮=11101,1.1011011其真值為 xy=2-3(-0.1011011),例31 設(shè)基數(shù)R=10, x=10ExMx=1020.4 ,y=10EyMy=1030.2 , 用浮點法求xy=? xy=?解:Ex=2, E

溫馨提示

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

評論

0/150

提交評論