浮點數(shù)表示及運算_第1頁
浮點數(shù)表示及運算_第2頁
浮點數(shù)表示及運算_第3頁
浮點數(shù)表示及運算_第4頁
浮點數(shù)表示及運算_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機組成原理計算機組成原理12022年4月8日浮點數(shù)表示及運算浮點數(shù)表示及運算計算機組成原理計算機組成原理2一、浮點數(shù)的表示一、浮點數(shù)的表示N=Rem = 2EM = 2e (m)M1M2Mn尾數(shù)值 階值階符尾符91028 = 0.9 10-2721033 = 0.2 1034 任意一個十進制數(shù)任意一個十進制數(shù) 可以寫成可以寫成=10E (十進制表示)計算機中一個任意進制數(shù)計算機中一個任意進制數(shù) 可以寫成可以寫成 m m :尾數(shù)尾數(shù),是一個純小數(shù)。,是一個純小數(shù)。 e e :浮點的:浮點的指數(shù)指數(shù), , 是一個整數(shù)。是一個整數(shù)。 R R :基數(shù)基數(shù),對于二進計數(shù)值的機器是一個常數(shù),一般規(guī)定,

2、對于二進計數(shù)值的機器是一個常數(shù),一般規(guī)定 為為2 2,8 8或或16 16 計算機組成原理計算機組成原理3浮點數(shù)的表示范圍浮點數(shù)的表示范圍負上溢-+負數(shù)正數(shù)0正上溢負下溢正下溢nN=2EMn|N| 產(chǎn)生正上溢或者負上溢產(chǎn)生正上溢或者負上溢n|N|0 產(chǎn)生正下溢或者負下溢產(chǎn)生正下溢或者負下溢尾數(shù)尾數(shù):用:用定點小數(shù)定點小數(shù)表示,給出有效數(shù)字的位數(shù),決定了浮點數(shù)的表示,給出有效數(shù)字的位數(shù),決定了浮點數(shù)的表示精度表示精度階碼階碼:用:用定點整數(shù)定點整數(shù)形式表示,指明小數(shù)點在數(shù)據(jù)中的位置,決定了浮點數(shù)形式表示,指明小數(shù)點在數(shù)據(jù)中的位置,決定了浮點數(shù)的的表示范圍表示范圍。一個機器浮點數(shù)由一個機器浮點數(shù)由

3、階碼階碼和和尾數(shù)尾數(shù)及其及其符號符號位組成:位組成:最最大大正正數(shù)數(shù)最最小小正正數(shù)數(shù)最最小小負負數(shù)數(shù)最最大大負負數(shù)數(shù)計算機組成原理計算機組成原理4n8位定點小數(shù)可表示的范圍n0.0000001 - 0.1111111 n 1/128 - 127/128n設階碼2位,尾數(shù)4位n可表示2-11*0.0001 - 211*0.1111n 0.0000001 - 111.1n設階碼3位,尾數(shù)3位n可表示2-111*0.001 - 2111*0.111n 0.0000000001 - 1110000n機器字長一定時,階碼越長,表示范圍越大,精度越低n浮點數(shù)表示范圍比定點數(shù)大,精度高計算機組成原理計算機組

4、成原理5一個浮點數(shù)有不同的表示:一個浮點數(shù)有不同的表示: 0.50.5; 0.050.05 10101 1 ; 0.005 0.005 10102 2 ; 50 50 1010-2-2為提高數(shù)據(jù)的表示精度,需做規(guī)格化處理。為提高數(shù)據(jù)的表示精度,需做規(guī)格化處理。 浮點數(shù)是數(shù)學中實數(shù)的子集合,由一個純小數(shù)乘上一個指數(shù)浮點數(shù)是數(shù)學中實數(shù)的子集合,由一個純小數(shù)乘上一個指數(shù)值來組成。值來組成。二、浮點數(shù)二、浮點數(shù)規(guī)格化規(guī)格化 把不滿足這一表示要求的尾數(shù),變成滿足這一要求的尾數(shù)把不滿足這一表示要求的尾數(shù),變成滿足這一要求的尾數(shù)的操作過程,叫作浮點數(shù)的的操作過程,叫作浮點數(shù)的規(guī)格化處理規(guī)格化處理,通過,通過

5、尾數(shù)移位和修改尾數(shù)移位和修改階碼實現(xiàn)階碼實現(xiàn)。 在計算機內(nèi),其純小數(shù)部分被稱為浮點數(shù)的尾數(shù),對非在計算機內(nèi),其純小數(shù)部分被稱為浮點數(shù)的尾數(shù),對非 0 0 值的浮點數(shù),要求尾數(shù)的絕對值值的浮點數(shù),要求尾數(shù)的絕對值必須必須 = 1/2= 1/2,即尾數(shù)域的最高,即尾數(shù)域的最高有效位應為有效位應為1,1,稱滿足這種表示要求的浮點數(shù)為稱滿足這種表示要求的浮點數(shù)為規(guī)格化表示規(guī)格化表示: 0.10001010100.1000101010計算機組成原理計算機組成原理6規(guī)格化目的:為了提高數(shù)據(jù)的表示精度為了數(shù)據(jù)表示的唯一性尾數(shù)為R進制的規(guī)格化: 絕對值大于或等于1/R二進制原碼的規(guī)格化數(shù)的表現(xiàn)形式: 正數(shù)正數(shù)

6、 0.1xxxxxx負數(shù)負數(shù) 1.0 xxxxxx正數(shù)正數(shù) 0.1xxxxxx負數(shù)負數(shù) 1.1xxxxxx 補碼補碼尾數(shù)的規(guī)格化的尾數(shù)的規(guī)格化的表現(xiàn)形式表現(xiàn)形式:尾數(shù)的最高位與符號位相反。:尾數(shù)的最高位與符號位相反。計算機組成原理計算機組成原理7解解:12310=11110112= 0.1111011000227 7移=10000+00111 = 10111 0.1111011000補=0.1111011000 123浮= 1011 1 0 0 11 1101 1000 = BBD8H例例:對數(shù)據(jù)對數(shù)據(jù)1231231010作規(guī)格化浮點數(shù)的編碼,假定作規(guī)格化浮點數(shù)的編碼,假定1 1位符號位,基位

7、符號位,基數(shù)為數(shù)為2 2,階碼,階碼5 5位,采用移碼,尾數(shù)位,采用移碼,尾數(shù)1010位,采用補碼。位,采用補碼。計算機組成原理計算機組成原理8S尾數(shù)符號,0正1負;M尾數(shù), 純小數(shù)表示, 小數(shù)點放在尾數(shù)域的最前面。采用原碼表示。 E階碼,采用“移碼”表示(移碼可表示階符); 階符采用隱含方式,即采用移碼方法來表示正負指數(shù)。 S E M31 30 23 22 032位位 S E M63 62 52 51 064位位 為便于軟件移植,使用 IEEE(電氣和電子工程師協(xié)會)標準IEEE754 標準:尾數(shù)用原碼;階碼用“移碼”;基為2。 三三 、浮點數(shù)的標準格式、浮點數(shù)的標準格式IEEE754計算機

8、組成原理計算機組成原理9 規(guī)格化浮點數(shù)的真值規(guī)格化浮點數(shù)的真值 x = (-1-1)s (1.) 2127 e = 127一個規(guī)格化的一個規(guī)格化的32位浮點數(shù)位浮點數(shù)的真值為:的真值為: S E M31 30 23 22 03232位浮點數(shù)格式:位浮點數(shù)格式: x = ( 1)s(1.)21023一個規(guī)格化的一個規(guī)格化的64位浮點數(shù)位浮點數(shù)的真值為:的真值為: 這里這里e是真值是真值,是是機器數(shù)機器數(shù)1.隱藏位技術(shù)隱藏位技術(shù)2.階碼用階碼用“移碼移碼”偏移值偏移值127而不是而不是128Emin=1, Emax=254/2046原碼非0值浮點數(shù)的尾數(shù)數(shù)值最高位必定為 1,則在保存浮點數(shù)到內(nèi)存前

9、,通過尾數(shù)左移, 強行把該位去掉, 用同樣多的位數(shù)能多存一位二進制數(shù),有利于提高數(shù)據(jù)表示精度,稱這種處理方案使用了隱藏位技術(shù)。 當然,在取回這樣的浮點數(shù)到運算器執(zhí)行運算時,必須先恢復該隱藏位。計算機組成原理計算機組成原理10例:例:若浮點數(shù) x 的二進制存儲格式為(41360000)16,求其32位浮點數(shù)的十進制值。解解: 0100,0001,0011,0110,0000,0000,0000,0000 數(shù)符:0 階碼:1000,0010 尾數(shù):011,0110,0000,0000,0000,0000 指數(shù)e階碼1271000001001111111 00000011=(3)10 包括隱藏位1的

10、尾數(shù): 1.M1.011 0110 0000 0000 0000 00001.011011于是有于是有 x(1)s1.M2e (1.011011)231011.011(11.375)10計算機組成原理計算機組成原理11例例: 將十進制數(shù)20.59375轉(zhuǎn)換成32位浮點數(shù)的二進制格式來存儲。解解:首先分別將整數(shù)和分數(shù)部分轉(zhuǎn)換成二進制數(shù): 20.5937510100.10011然后移動小數(shù)點,使其在第1,2位之間 10100.100111.01001001124 e4于是得到: e = 127 S0,E4127131=1000,0011,M010010011最后得到32位浮點數(shù)的二進制存儲格式為

11、0100 0001 1010 0100 1100 0000 0000 0000 (41A4C000)16 計算機組成原理計算機組成原理12解解:-0.75 = -3/4 = -0.11-0.75 = -3/4 = -0.112 2 = -1.1= -1.12 2-1-1 =(-1) =(-1)1 1(1 + 0.1000 0000 0000 0000 0000 000)(1 + 0.1000 0000 0000 0000 0000 000)2 2-1-1 =(-1) =(-1)1 1(1 + (1 + 0.1000 0000 0000 0000 0000 0000.1000 0000 0000

12、 0000 0000 000) )2 2126-127126-127 s s= =1 1,E=126E=12610 10 = 01111110= 011111102 2,F(xiàn)=F=1000 0001000 000。1 1 011,1111,0 011,1111,0 100,0000,0000,0000,0000,0000100,0000,0000,0000,0000,0000 B F 4 0 0 0 0 0 HB F 4 0 0 0 0 0 H例例:將十進制數(shù):將十進制數(shù)-0.75-0.75表示成單精度的表示成單精度的IEEE 754IEEE 754標準代碼。標準代碼。計算機組成原理計算機組成原

13、理13單精度浮點數(shù)編碼格式單精度浮點數(shù)編碼格式+0/-0000/1(-1)S (0.f) 2(-126)f (非零)00/1(-1)S (1.f) 2(e-127)f12540/1- 02551+02550sNaN Signaling NaN非零0 xxxx2550/1NaN Not a Number非零1xxxx2550/1表示尾數(shù)階碼符號位計算機組成原理計算機組成原理14Emax=2046,f=1.1111,1.111122046-1023 =21023(2-2-52) Emin=1, M=0, 1.021-1023 =2-1022 Emax=254, f=1.1111, 1.111122

14、54-127 = 2127(2-2-23) Emin=1, M=0, 1.021-127 = 2-126 最大值最小值格式 可表示正數(shù)范圍可表示正數(shù)范圍 可表示負數(shù)范圍可表示負數(shù)范圍 負上溢出負上溢出 負下溢出負下溢出 正下溢出正下溢出 正上溢出正上溢出 零零 0 0.5 2-128 -0.5 2-128 (1-2-23) 2127 -(1-2-23) 2127 數(shù)軸數(shù)軸 計算機組成原理計算機組成原理15設有兩個浮點數(shù)設有兩個浮點數(shù)和和, 它們分別為它們分別為: 浮點加減法運算浮點加減法運算 其中其中 Ex 和和 Ey 分別為數(shù)和的階碼,分別為數(shù)和的階碼, Mx 和和 My為數(shù)和的尾數(shù)。為數(shù)和

15、的尾數(shù)。 兩浮點數(shù)進行加法和減法的運算規(guī)則是兩浮點數(shù)進行加法和減法的運算規(guī)則是: (Mx2ExEyMy)2Ey Ex 0, ExEy 若E 0, ExEy通過尾數(shù)的移動來改變Ex或Ey,使其相等。 對階原則 階碼小的數(shù)向階碼大的數(shù)對齊; 對階過程小階的尾數(shù)右移,每右移一位,其階碼加1(右規(guī))。(2) 對階對階(1) 0 操作數(shù)檢查操作數(shù)檢查 210*(0.11000)+28*(0.00110)大階對小階大階對小階 210*(0.11000)-28*(11.000) 11.000+0.00110 ? 小階對大階小階對大階 28*(0.00110)-210*(0.00001) 0.00001+0.

16、11000=0.11001計算機組成原理計算機組成原理18例例: x=2010.1101, y=211(-0.1010), 求x+y=?解解:為便于直觀了解,兩數(shù)均以補碼表示,階碼、尾數(shù)均采用 雙符號位。 x補=00 01, 00.1101 y補=00 11, 11.0110 E補= Ex補Ey補= 00 01+11 01 = 11 10 E = -2, 表示Ex比Ey小2, 因此將x的尾數(shù)右移兩位. 右移一位, 得 x補=00 10, 00.0110 再右移一位, 得 x補=00 11, 00.0011 至此, E=0, 對階完畢.計算機組成原理計算機組成原理19 尾數(shù)求和方法與定點加減法運

17、算完全一樣。 對階完畢可得: x補=00 11, 00.0011 y補=00 11, 11.0110 對尾數(shù)求和: 00.0011 + 11.0110 11.1001 即得: x+y補=00 11, 11.1001(3) 尾數(shù)求和運算尾數(shù)求和運算計算機組成原理計算機組成原理20(4) 結(jié)果規(guī)格化結(jié)果規(guī)格化 求和之后得到的數(shù)可能不是規(guī)格化了的數(shù), 為了增加有效數(shù)字的位數(shù), 提高運算精度,必須將求和的結(jié)果規(guī)格化。 規(guī)格化的定義: ( (二進制二進制) )121 S對正數(shù): S=00.1對負數(shù): S=11.0采用雙符號位的補碼:采用原碼: 正數(shù): S=0.1 負數(shù): S=1.1 計算機組成原理計算機

18、組成原理21規(guī)格化規(guī)則規(guī)格化規(guī)則n運算結(jié)果產(chǎn)生溢出時,必須進行運算結(jié)果產(chǎn)生溢出時,必須進行右歸右歸n如變形補碼結(jié)果出現(xiàn)如變形補碼結(jié)果出現(xiàn) 10.XX 或者或者 01.XXXn如運算結(jié)果出現(xiàn)如運算結(jié)果出現(xiàn) 0.0XXX或或 1.1XX 必須必須左歸左歸n左歸時最低數(shù)據(jù)有效位補左歸時最低數(shù)據(jù)有效位補0n右歸時連同符號位進位位一起右移右歸時連同符號位進位位一起右移n左歸時,階碼作減法左歸時,階碼作減法,右歸時,階碼作加法右歸時,階碼作加法n00.0XXXX - 00.1XXX0 左規(guī)n11.1XXXX - 11.0XXX0 左規(guī)n01.XXXXX - 00.1XXXX 右規(guī)n10.XXXXX - 1

19、1.0XXXX 右規(guī) 規(guī)格化方法規(guī)格化方法計算機組成原理計算機組成原理22例例:兩浮點數(shù) x=0.1101 210 , y=(0.1011) 201, 求x+y。解解: x補=00 10,00.1101 y補=00 01,00.1011 對階: E補= Ex補Ey補=00 10+ 11 11= 00 01 y向x對齊,將y的尾數(shù)右移一位,階碼加1。 y補=00 10,00.0101 x+y補=00 10,01.0010 右歸:運算結(jié)果兩符號位不同,其絕對值大于1,右歸。 x+y補= 00 11,00.1001求和: 00.1101 + 00.0101 01.0010計算機組成原理計算機組成原理

20、23 在對階或向右規(guī)格化時, 尾數(shù)要向右移位, 這樣, 被右移的尾數(shù)的低位部分會被丟掉, 從而造成一定誤差,因此要進行舍入處理。 簡單的舍入方法有兩種: “0舍1入”法 即如果右移時被丟掉數(shù)位的最高位為0則舍去,反之則將尾數(shù)的末位加“1”。 “恒置1”法 即只要數(shù)位被移掉,就在尾數(shù)的末位恒置“1”。從概率上來說,丟掉的0和1各為1/2。(5) 舍入處理舍入處理計算機組成原理計算機組成原理24在IEEE754標準中,舍入處理提供了四種可選方法:就近舍入就近舍入 其實質(zhì)就是通常所說的四舍五入。例如,尾數(shù)超出規(guī)定的23位的多余位數(shù)字是10010,多余位的值超過規(guī)定的最低有效位值的一半,故最低有效位應

21、增1。若多余的5位是01111,則簡單的截尾即可。對多余的5位10000這種特殊情況:若最低有效位現(xiàn)為0,則截尾;若最低有效位現(xiàn)為1,則向上進一位使其變?yōu)?0。朝朝0舍入舍入 即朝數(shù)軸原點方向舍入,就是簡單的截尾。無論尾數(shù)是正數(shù)還是負數(shù),截尾都使取值的絕對值比原值的絕對值小。這種方法容易導致誤差積累。朝朝舍入舍入 對正數(shù)來說,只要多余位不全為0則向最低有效位進1;對負數(shù)來說則是簡單的截尾。朝朝舍入舍入 處理方法正好與 朝舍入情況相反。對正數(shù)來說,只要多余位不全為0則簡單截尾;對負數(shù)來說,向最低有效位進1。 計算機組成原理計算機組成原理25(6)溢出處理 與定點加減法一樣,浮點加減運算最后一步也

22、需判溢出。在浮點規(guī)格化中已指出,當尾數(shù)之和(差)出現(xiàn)01或10時,并不表示溢出,只有將此數(shù)右規(guī)后,再根據(jù)階碼來判斷浮點運算結(jié)果是否溢出。 若機器數(shù)為補碼,尾數(shù)為規(guī)格化形式,并假設階符取2位,階碼取7位、數(shù)符取2位,尾數(shù)取n位,則它們能表示的補碼在數(shù)軸上的表示范圍如圖所示。正負計算機組成原理計算機組成原理26 圖中A,B,a,b分別對應最小負數(shù)、最大正數(shù)、最大負數(shù)和最小正數(shù)。它們所對應的真值分別是: A最小負數(shù) 2+127 (-1) B最大正數(shù) 2+127 (1-2-n) a最大負數(shù) 2-128 (-2-1-2-n) b最小正數(shù) 2-128 2-1正正負負最小負數(shù)最大正數(shù)最大負數(shù)最小正數(shù)計算機組

23、成原理計算機組成原理27 圖中a,b之間的陰影部分陰影部分,對應階碼小于128的情況,叫做浮點數(shù)的下溢。下溢時浮點數(shù)值趨于零,故機器不做溢出處理,僅把它作為機器零。 圖中的A、B兩側(cè)陰影部分,對應階碼大于127的情況,叫做浮點數(shù)的上溢。此刻,浮點數(shù)真正溢出,機器需停止運算,作溢出中斷處理。一般說浮點溢出,均是指上溢。一般說浮點溢出,均是指上溢。 可見,浮點機的溢出與否可由階碼的符號決定: 階碼j補=01, 為上溢,機器停止運算,做中斷處理; 階碼j補=10, 為下溢,按機器零處理。正正負負計算機組成原理計算機組成原理28例例:若某次加法操作的結(jié)果為 X+Y補=11.010, 00.000011

24、0111則應對其進行向左規(guī)格化操作: 尾數(shù)為: 00.1101110000 , 階碼減4: 11.010+ 11.100 -4補 10.110 例例:若某次加法操作的結(jié)果為 X+Y補=00.111, 10.1011100111則應對其進行向右規(guī)格化操作: 尾數(shù)為: 11.0101110011 , 階碼加1: 01.000 階碼超出了它所能表示的最大正數(shù)(+7),表明本次浮點運算產(chǎn)生了溢出。 階碼超出了它所能表示的最小負數(shù)(-8),表明本次浮點運算產(chǎn)生了溢出。計算機組成原理計算機組成原理29例例: :兩浮點數(shù)兩浮點數(shù)x x = 2 = 21011010.11010.110110111011,y

25、y = 2 = 2111111(-0.1010(-0.101011001100) )。假設尾數(shù)在計算機中以補碼表示,。假設尾數(shù)在計算機中以補碼表示,可存儲可存儲1010位尾數(shù),位尾數(shù),2 2位符號位,階碼以補碼表示,雙符號位位符號位,階碼以補碼表示,雙符號位, ,求求x x+ +y y。解:將解:將x,yx,y轉(zhuǎn)換成浮點數(shù)據(jù)格式轉(zhuǎn)換成浮點數(shù)據(jù)格式 x浮 = 00 101, 00.11011011 Y浮 = 00 111, 11.01010011+1 00 111, 11.01010100步驟步驟1 1:對階:對階,階差為Ex-Ey=Ex補+-Ey補 -Ey補=11000111001 Ex-Ey

26、001011100111110 (000011)000102 0 Ex-Ey0 ExEy 小階對大階, X階碼加2 X尾數(shù)右移2位計算機組成原理計算機組成原理30解:將x,y轉(zhuǎn)換成浮點數(shù)據(jù)格式 x浮 = 00 101, 00.11011011 Y浮 = 00 111, 11.01010011+1 00 111, 11.01010100步驟步驟1 1:對階:對階,階差為Ex-Ey=Ex補+-Ey補 Ex-Ey2 0 Ex-Ey0 ExEy 小階對大階, X階碼加2 X尾數(shù)右移2位 x浮 = 00 111, 00.00110110(11)步驟步驟2 2:尾數(shù)求和:尾數(shù)求和 X+Y浮 = 00 11

27、1, 00.00110110(11 ) + 00 111, 11.01010100 = 00 111, 11.10001010(11)計算機組成原理計算機組成原理31步驟步驟2 2:尾數(shù)求和:尾數(shù)求和 X+Y浮 = 00 111, 00.00110110(11) + 00 111, 11.01010100 = 00 111, 11.10001010(11)步驟步驟3 3:計算結(jié)果規(guī)格化:計算結(jié)果規(guī)格化 X+Y浮 為非規(guī)格化數(shù),左歸一位, 階碼減一, 00110, 11.00010101(1)步驟步驟4 4:舍入處理:舍入處理 X+Y浮 = 00 110, 11.00010110 (0舍1如法)

28、 X+Y浮 = 00 110, 11.00010101 (截去法) 步驟步驟5 5:溢出判斷:溢出判斷 無溢出 X+Y浮 = 2110 x (-00.11101011)計算機組成原理計算機組成原理32計算機組成原理計算機組成原理33例例 設設=2010 0.11011011, =2100 (- -0.10101100), 求求+。解:解: 階碼采用雙符號位階碼采用雙符號位, 尾數(shù)采用單符號位尾數(shù)采用單符號位, 則它們的浮點表則它們的浮點表示分別為示分別為 x浮浮= 00 010, 0.11011011 y浮浮= 00 100, 1.01010100(1) 求階差并對階求階差并對階E = Ex-

29、 - Ey= Ex補補+ - -Ey補補= 00 010 + 11 100 = 11 110 x浮浮00 100, 0.00110110(11)其中其中(11)表示表示M右移右移2位后移出的最低兩位數(shù)。位后移出的最低兩位數(shù)。即即E為為- -2, x的階碼小的階碼小, 應使應使 Mx右移兩位右移兩位, Ex加加2,計算機組成原理計算機組成原理34(2)(2)尾數(shù)求和尾數(shù)求和(4) (4) 舍入處理舍入處理采用采用0舍舍1入法處理入法處理, 則有則有: 1.00010101 1.00010101+ 1 + 1 1.00010110 1.00010110 0.00110110( 0.00110110

30、(1111) ) + 1.01010100 + 1.01010100 1.10001010( 1.10001010(1111) )(3) (3) 規(guī)格化處理規(guī)格化處理 尾數(shù)運算結(jié)果的符號位與最高數(shù)值位為同值,應執(zhí)行左規(guī)處理,尾數(shù)運算結(jié)果的符號位與最高數(shù)值位為同值,應執(zhí)行左規(guī)處理,結(jié)果為結(jié)果為1.00010101(10)1.00010101(10), 階碼為階碼為00 01100 011。(5) (5) 判斷溢出判斷溢出 階碼符號位為階碼符號位為0000,不溢出,故得最終結(jié)果為,不溢出,故得最終結(jié)果為 x + y = 2011 (-0.11101010)計算機組成原理計算機組成原理35 例:兩浮

31、點數(shù)兩浮點數(shù)x = 2010.1101,y = 211(-0.1010)。假設尾數(shù)在計。假設尾數(shù)在計算機中以補碼表示,可存儲算機中以補碼表示,可存儲4位尾數(shù),位尾數(shù),2位保護位位保護位,階碼以原碼表示,求,階碼以原碼表示,求x+y。解解:將將x x, ,y y轉(zhuǎn)換成浮點數(shù)據(jù)格式轉(zhuǎn)換成浮點數(shù)據(jù)格式 x x 浮浮 = 00 01, 00.1101= 00 01, 00.1101 y y 浮浮 = 00 11, 11.0110= 00 11, 11.0110步驟步驟1 1:對階,階差為:對階,階差為11-01=1011-01=10,即,即2 2,因此將,因此將x x的尾數(shù)右移兩位,得的尾數(shù)右移兩位,

32、得 x x 浮浮 = 00 11, 00.0011= 00 11, 00.00110101步驟步驟2 2:對尾數(shù)求和,得:對尾數(shù)求和,得: : x x+ +y y 浮浮 = 00 11, 11.1001= 00 11, 11.10010101步驟步驟3 3:由于符號位和第一位數(shù)相等,不是規(guī)格化數(shù),向左規(guī)格化,得:由于符號位和第一位數(shù)相等,不是規(guī)格化數(shù),向左規(guī)格化,得 x x+ +y y 浮浮 = 00 10, 11.0010= 00 10, 11.00101010步驟步驟4 4:截去。:截去。 x x+ +y y 浮浮 = 00 10, 11.0010= 00 10, 11.0010步驟步驟5

33、: 5: 數(shù)據(jù)無溢出,因此結(jié)果為數(shù)據(jù)無溢出,因此結(jié)果為x x+ +y y = 2 = 21010(-0.1110)(-0.1110)計算機組成原理計算機組成原理36浮點乘除法運算浮點乘除法運算1.浮點乘法、除法運算規(guī)則 設有兩個浮點數(shù)和: 2ExMx 2EyMy浮點乘法運算的規(guī)則是: 2(Ex+ Ey) (Mx My) 即: 乘積的尾數(shù)是相乘兩數(shù)的尾數(shù)之積; 乘積的階碼是相乘兩數(shù)的階碼之和。浮點除法運算的規(guī)則是: 2(ExEy) (MxMy) 即:商的尾數(shù)是相除兩數(shù)的尾數(shù)之商; 商的階碼是相除兩數(shù)的階碼之差。計算機組成原理計算機組成原理372. 2. 浮點乘、除法運算步驟浮點乘、除法運算步驟浮

34、點數(shù)的乘除運算大體分為四步:(1) 0 操作數(shù)檢查;(2) 階碼加/減操作;(3) 尾數(shù)乘/除操作;(4) 結(jié)果規(guī)格化及舍入處理。計算機組成原理計算機組成原理38(2) 浮點數(shù)的階碼運算浮點數(shù)的階碼運算 對階碼的運算有1、1、兩階碼求和、兩階碼求差四種, 運算時還必須檢查結(jié)果是否溢出。 在計算機中, 階碼通常用補碼或移碼形式表示。移碼的運算規(guī)則和判定溢出的方法移碼的定義為 x移 = 2n + - 2n x 2nx移+ y移 = 2n + 2n += 2n +移按此定義, 則有= 2n +(2n +(+)+移 = -2n + x移 + y移計算機組成原理計算機組成原理39 考慮到移碼和補碼的關(guān)系

35、: 對同一個數(shù)值, 其數(shù)值位完全相同, 而符號位正好完全相反。 y補的定義為 y補= 2n+1 + 則求階碼和用如下方式完成:= 2n+1 + (2n +(+)x移+y補= 2n + 2n+1 +即:+移= x移+y補 (mod 2n+1)同理:-移= x移+-y補 (mod 2n+1)混合使用移碼和補碼計算機組成原理計算機組成原理40 使用雙符號位的階碼加法器, 并規(guī)定移碼的第二個符號位, 即最高符號位恒用 0 參加加減運算, 則溢出條件是結(jié)果的最高符號位為1: 當?shù)臀环栁粸?0時,(10) 表明結(jié)果上溢, 當?shù)臀环栁粸?時, (11) 表明結(jié)果下溢。 當最高符號位為0時, 表明沒有溢出

36、: 低位符號位為1, (01) 表明結(jié)果為正; 為0, (00) 表明結(jié)果為負。 階碼運算結(jié)果溢出處理計算機組成原理計算機組成原理41例:= +011,= +110, 求x+y移 和 x-y移, 并判斷是否溢出。解:階碼取3位(不含符號位),其對應的真值范圍是 -8+7x移= 01 011, y補= 00 110, -y補=11 010 x+y移= x移+ y補=x-y移= x移+ -y補= 01 011+ 00 110 10 001結(jié)果上溢。結(jié)果正確, 為-3。 01 011+ 11 010 00 101計算機組成原理計算機組成原理42(3) 尾數(shù)處理 浮點加減法對結(jié)果的規(guī)格化及舍入處理也適

37、用于浮點乘除法。第一種方法是: 無條件地丟掉正常尾數(shù)最低位之后的全部數(shù)值。 這種辦法被稱為截斷處理, 好處是處理簡單, 缺點是影響結(jié)果 的精度。 第二種辦法是: 運算過程中保留右移中移出的若干高位的值, 最后再按某種規(guī)則用這些位上的值修正尾數(shù)。 這種處理方法被稱為舍入處理。計算機組成原理計算機組成原理43 當尾數(shù)用原碼表示時: 最簡便的方法是,只要尾數(shù)的最低位為1, 或移出的幾位中有為1的數(shù)值位, 就使最低位的值為1。 另一種是0舍1入法, 即當丟失的最高位的值為1時, 把這個1加到最低數(shù)值位上進行修正, 否則舍去丟失的的各位的值。這樣處理時,舍入效果對正數(shù)負數(shù)相同,入將使數(shù)的絕對值變大, 舍

38、則使數(shù)的絕對值變小。舍入處理計算機組成原理計算機組成原理44 當尾數(shù)是用補碼表示時: 采用0舍1入法時,若丟失的位不全為0時: 對正數(shù)來說,舍入的結(jié)果與原碼分析相同; 對負數(shù)來說,舍入的結(jié)果與原碼分析相反,即“舍”使絕對 值變大,“入”使絕對值變?。粸槭乖?、補碼舍入處理后的結(jié)果 相同,對負數(shù)可采用如下規(guī)則進行舍入處理: 當丟失的各位均為0時, 不必舍入; 當丟失的最高位為0 , 以下各位不全為0 時, 或者丟失的最高位為1, 以下各位均為0時, 則舍去丟失位上的值; 當丟失的最高位為1,以下各位不全為0 時,則執(zhí)行在尾數(shù)最低位入1的修正操作。計算機組成原理計算機組成原理45例例: 設 x1補=

39、 11.01100000, x2補= 11.01100001, x3補= 11.01101000, x4補= 11.01111001, 求執(zhí)行只保留小數(shù)點后4位有效數(shù)字的舍入操作值。解解:執(zhí)行舍入操作后,其結(jié)果值分別為x1補11.0110 (不舍不入) x2補11.0110 (舍) x3補11.0110 (舍)x4補11.1000 (入)計算機組成原理計算機組成原理46例例:設有浮點數(shù)=25 0.0110011, = 23 (-0.1110010), 階碼用4位移碼表示, 尾數(shù) (含符號位)用8位補碼表示。求浮。要求用補碼完成尾數(shù)乘法運算, 運算結(jié)果尾數(shù)保留高8位(含符號位), 并用尾數(shù)低位字長值處理舍入操作。解解:移碼采用雙符號位, 尾數(shù)補碼采用單符號位, 則有Mx補= 0.0110011, My補= 1.0001110, Ex移= 00 011,Ey移 = 01 011, Ey補= 00 011,

溫馨提示

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

最新文檔

評論

0/150

提交評論