




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY6.2 數(shù)的定點(diǎn)表示與浮點(diǎn)表示數(shù)的定點(diǎn)表示與浮點(diǎn)表示1. 定點(diǎn)表示定點(diǎn)表示機(jī)器碼:機(jī)器碼:Sf S1S2 Sn符號(hào)位符號(hào)位數(shù)值部分?jǐn)?shù)值部分 位位純小數(shù)純小數(shù)整數(shù)整數(shù)小數(shù)點(diǎn)位置小數(shù)點(diǎn)位置小數(shù)點(diǎn)位置小數(shù)點(diǎn)位置小數(shù)點(diǎn)位置固定小數(shù)點(diǎn)位置固定-原碼原碼反碼反碼補(bǔ)碼補(bǔ)碼移碼移碼-(2n-1) 2n-1-(1-2-n) 1-2-n-(2n-1) 2n-1-(1-2-n) 1-2-n-2n 2n-1 -1 1-2-n-2n 2n-1定點(diǎn)數(shù)表示范圍定點(diǎn)數(shù)表示范圍不是純小數(shù)不是純小數(shù)或者整數(shù)時(shí)或者整數(shù)時(shí)怎么表示?怎么表示? 魯東大學(xué)魯東大學(xué) LUDONG UN
2、IVERSITY6.2 數(shù)的定點(diǎn)表示與浮點(diǎn)表示數(shù)的定點(diǎn)表示與浮點(diǎn)表示 N = S r j S:尾數(shù)尾數(shù) r: 基數(shù)基數(shù) j: 階碼階碼EX: 352.47 怎么表示?怎么表示? 352.47 =0.0035247 105通過(guò)乘通過(guò)乘10的不同次冪的不同次冪2.浮點(diǎn)表示浮點(diǎn)表示Srj一般一般 r =2,不需表示不需表示N = 11.0101 = 11.0101 20分別表示分別表示 = 1.10101 21 = 0.10101 210 = 0.00110101 2100 = 110.101 2-1尾數(shù)無(wú)法用定點(diǎn)表示尾數(shù)無(wú)法用定點(diǎn)表示 浮點(diǎn)數(shù)通過(guò)浮點(diǎn)數(shù)通過(guò) 表示表示S為純小數(shù)的表示有多種為純小數(shù)的
3、表示有多種究竟用哪種?究竟用哪種?=0.35247 103=3.5247 102=35.247 101 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITYjfj1j2j3jmSfS1S2S3Sn浮點(diǎn)表示浮點(diǎn)表示2.1 2.1 浮點(diǎn)數(shù)的表示形式浮點(diǎn)數(shù)的表示形式 一個(gè)浮點(diǎn)數(shù)通過(guò)尾數(shù)一個(gè)浮點(diǎn)數(shù)通過(guò)尾數(shù)S S和階碼和階碼j j兩個(gè)定點(diǎn)數(shù)兩個(gè)定點(diǎn)數(shù)表示表示浮點(diǎn)數(shù)浮點(diǎn)數(shù) N 在機(jī)器中的表示形式在機(jī)器中的表示形式階碼階碼 j尾數(shù)尾數(shù) S(m+1位位)(n+1位位)階碼符號(hào)階碼符號(hào)尾數(shù)符號(hào)尾數(shù)符號(hào)m位位 階碼數(shù)階碼數(shù)值部分值部分n位位 尾數(shù)數(shù)尾數(shù)數(shù)值部分值部分階碼階碼 j 的位數(shù)的位數(shù) - 決定了浮點(diǎn)數(shù)的決
4、定了浮點(diǎn)數(shù)的表示范圍表示范圍尾數(shù)尾數(shù)S 的位數(shù)的位數(shù) - 決定了浮點(diǎn)數(shù)的決定了浮點(diǎn)數(shù)的表示精度表示精度尾數(shù)尾數(shù)S 的符號(hào)的符號(hào) - 決定了浮點(diǎn)數(shù)的符號(hào)決定了浮點(diǎn)數(shù)的符號(hào) 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY浮點(diǎn)數(shù)的規(guī)格化浮點(diǎn)數(shù)的規(guī)格化2.2 2.2 浮點(diǎn)數(shù)的規(guī)格化浮點(diǎn)數(shù)的規(guī)格化N = 11.0101 = 0.10101 210 = 0.00110101 2100無(wú)數(shù)值意義無(wú)數(shù)值意義規(guī)格化目的:規(guī)范表示,提高精度規(guī)格化目的:規(guī)范表示,提高精度尾數(shù)尾數(shù)S真值的真值的最高位應(yīng)為最高位應(yīng)為1S: 0.1 xxx|S| 2-1 (0.5) 規(guī)格化要求:規(guī)格化要求:規(guī)格化過(guò)程:規(guī)格化過(guò)程:
5、(基數(shù)為基數(shù)為2)-左規(guī)左規(guī)-右規(guī)右規(guī)尾數(shù)左移一位,階碼減尾數(shù)左移一位,階碼減1尾數(shù)右移一位,階碼加尾數(shù)右移一位,階碼加1(基數(shù)為基數(shù)為2)推廣:推廣:基數(shù)為基數(shù)為4, |S| 4-1,左規(guī)左規(guī)/右規(guī)每次右規(guī)每次兩位兩位,階碼減,階碼減/加加1基數(shù)為基數(shù)為8, |S| 8-1,左規(guī)左規(guī)/右規(guī)每次右規(guī)每次三位三位,階碼減,階碼減/加加1 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY浮點(diǎn)數(shù)的表示范圍浮點(diǎn)數(shù)的表示范圍2.3 2.3 浮點(diǎn)數(shù)的表示范圍浮點(diǎn)數(shù)的表示范圍設(shè):設(shè):N=N=S r j S 尾數(shù)尾數(shù)n+1位位, j 階碼階碼m+1位位0正數(shù):正數(shù):MAX正正=S max正正 2 j ma
6、x純小數(shù)純小數(shù)整數(shù)整數(shù)=(1-2-n) m(2-1 )2MIN正正=S min正正 2 j min= 2-n m-(2-1 )2負(fù)數(shù):負(fù)數(shù):MAX負(fù)負(fù)=|S min|負(fù)負(fù) 2 j min|Min|負(fù)負(fù)= m-(2-1 )2 - 2-nMIN負(fù)負(fù)=2 j max|MAX|負(fù)負(fù)= |S max|負(fù)負(fù) =-(1-2-n) m(2-1 )2MAX正正MIN正正MAX負(fù)負(fù)MIN負(fù)負(fù) 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY浮點(diǎn)數(shù)的表示范圍浮點(diǎn)數(shù)的表示范圍2.3 2.3 浮點(diǎn)數(shù)的表示范圍浮點(diǎn)數(shù)的表示范圍設(shè):設(shè):N=N=S r j S 階碼階碼n+1位位, j 尾數(shù)尾數(shù)m+1位位0正數(shù):正數(shù):M
7、AX正正=S max正正 2 j max純小數(shù)純小數(shù)整數(shù)整數(shù)=(1-2-n) m(2-1 )2MIN正正=S min正正 2 j min= 2-1 m-(2-1 )2負(fù)數(shù):負(fù)數(shù):MAX負(fù)負(fù)=|S min|負(fù)負(fù) 2 j min|Min|負(fù)負(fù)= m-(2-1 )2 - 2-1MIN負(fù)負(fù)=2 j max|MAX|負(fù)負(fù)= |S max|負(fù)負(fù) =-(1-2-n) m(2-1 )2MAX正正MIN正正MAX負(fù)負(fù)MIN負(fù)負(fù)規(guī)格化表示規(guī)格化表示 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY浮點(diǎn)數(shù)的表示范圍浮點(diǎn)數(shù)的表示范圍2.3 2.3 浮點(diǎn)數(shù)的表示范圍浮點(diǎn)數(shù)的表示范圍設(shè):設(shè):N=N=S r j S尾數(shù)
8、尾數(shù)n+1位位, j階碼階碼m+1位位0正數(shù):正數(shù):MAX正正=S max正正 2 j maxMIN正正=S min正正 2 j min負(fù)數(shù):負(fù)數(shù):MAX負(fù)負(fù)=|S min|負(fù)負(fù) 2 j minMIN負(fù)負(fù)=2 j max|Min|負(fù)負(fù)=|MAX|負(fù)負(fù)= |S max|負(fù)負(fù) MAX正正MIN正正MAX負(fù)負(fù)MIN負(fù)負(fù)當(dāng)階碼當(dāng)階碼最大階碼時(shí),最大階碼時(shí),上溢上溢絕對(duì)值非常小絕對(duì)值非常小按按機(jī)器零機(jī)器零處理處理數(shù)值過(guò)大,無(wú)法數(shù)值過(guò)大,無(wú)法處理,溢出中斷處理,溢出中斷下溢下溢上溢上溢上溢上溢 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY浮點(diǎn)數(shù)浮點(diǎn)數(shù)-例題例題EX1: 設(shè)浮點(diǎn)數(shù)字長(zhǎng)設(shè)浮點(diǎn)數(shù)字長(zhǎng)16
9、16位位,其中,其中階碼階碼5 5位位(含階符(含階符1 1位位),),尾數(shù)尾數(shù)1111位位(含(含1 1位數(shù)符位數(shù)符),),將十進(jìn)制數(shù)將十進(jìn)制數(shù)13+128表示為表示為浮點(diǎn)數(shù)機(jī)器碼浮點(diǎn)數(shù)機(jī)器碼浮點(diǎn)數(shù)浮點(diǎn)數(shù)尾數(shù)為原碼尾數(shù)為原碼, ,階碼為補(bǔ)碼階碼為補(bǔ)碼形式形式解:解: 轉(zhuǎn)換為二進(jìn)制形式轉(zhuǎn)換為二進(jìn)制形式 將尾數(shù)和階碼用定點(diǎn)表示將尾數(shù)和階碼用定點(diǎn)表示+13128= 0.0001101 真值規(guī)格化表示真值規(guī)格化表示0.0001101 = 0. 1101 2-3 該數(shù)為純小數(shù),但最高數(shù)值位該數(shù)為純小數(shù),但最高數(shù)值位 1 1 需要需要左規(guī)左規(guī)= 0. 1101 2- 011尾數(shù)尾數(shù)1111位位尾數(shù)尾數(shù)原
10、原= 0. 1101000000 階碼階碼5 5位位階碼階碼補(bǔ)補(bǔ)= 1, 1101機(jī)器碼機(jī)器碼11101 01101000000常用定點(diǎn)方式常用定點(diǎn)方式尾數(shù):原碼尾數(shù):原碼/補(bǔ)碼補(bǔ)碼階碼:補(bǔ)碼階碼:補(bǔ)碼/移碼移碼 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY浮點(diǎn)數(shù)浮點(diǎn)數(shù)-例題例題EX2: 設(shè)機(jī)器數(shù)字長(zhǎng)為設(shè)機(jī)器數(shù)字長(zhǎng)為 24 24 位位,欲表示,欲表示3 3萬(wàn)萬(wàn)的十進(jìn)制數(shù),試問(wèn)在的十進(jìn)制數(shù),試問(wèn)在保證數(shù)的最大精度保證數(shù)的最大精度的前提下,除階符、數(shù)符各取的前提下,除階符、數(shù)符各取1 1位外,階碼、位外,階碼、尾數(shù)各取幾位?尾數(shù)各取幾位?分析:分析: 尾數(shù)為純小數(shù)尾數(shù)為純小數(shù) 浮點(diǎn)數(shù)的表示
11、范圍由階碼決定浮點(diǎn)數(shù)的表示范圍由階碼決定 2 21515=32=32K K 階碼的階碼的最大值為最大值為+15+15即可即可 階碼最少取階碼最少取4 4位位數(shù)值位數(shù)值位+1+1位符號(hào)位位符號(hào)位 機(jī)器字長(zhǎng)共機(jī)器字長(zhǎng)共2424位位,除去除去5 5位階碼位階碼 尾數(shù)尾數(shù)最長(zhǎng)為最長(zhǎng)為1919位位,含,含1 1位符號(hào)位位符號(hào)位 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY浮點(diǎn)數(shù)浮點(diǎn)數(shù)-例題例題EX3EX3:設(shè)浮點(diǎn)數(shù)尾數(shù)和階碼均用設(shè)浮點(diǎn)數(shù)尾數(shù)和階碼均用原碼原碼表示,且為表示,且為規(guī)格化規(guī)格化表示表示 尾數(shù)尾數(shù)1111位,即位,即1010位位數(shù)值位數(shù)值位+1+1位符號(hào)位位符號(hào)位 階碼階碼5 5位,即
12、位,即4 4位位數(shù)值位數(shù)值位+1+1位符號(hào)位位符號(hào)位 寫出該浮點(diǎn)數(shù)的寫出該浮點(diǎn)數(shù)的表示范圍表示范圍分析:分析:即求最大正數(shù),最小正數(shù),最大負(fù)數(shù)和最小負(fù)數(shù)即求最大正數(shù),最小正數(shù),最大負(fù)數(shù)和最小負(fù)數(shù)最大正數(shù)最大正數(shù) = 最大正尾數(shù)最大正尾數(shù) 2 最大階碼最大階碼1-2-10(24-1)最小正數(shù)最小正數(shù)= 最小正尾數(shù)最小正尾數(shù) 2 最小階碼最小階碼2-1- (24-1) 最大負(fù)數(shù)最大負(fù)數(shù) = 最小最小|負(fù)尾數(shù)負(fù)尾數(shù) | 2 最小階碼最小階碼-2-1- (24-1) 最小負(fù)數(shù)最小負(fù)數(shù)= 最大最大|負(fù)尾數(shù)負(fù)尾數(shù) | 2 最大階碼最大階碼-(1-2-10)(24-1)如果用補(bǔ)碼表示呢?如果用補(bǔ)碼表示呢?0
13、.1110.1001.1111.100(- ( 2-1+2-10 )補(bǔ)補(bǔ)=1.011 (- 1)補(bǔ)補(bǔ)=1.000(- 2-1 )補(bǔ)補(bǔ)=1.100補(bǔ)碼尾數(shù)規(guī)格化標(biāo)志:符號(hào)位與最高數(shù)值位相反補(bǔ)碼尾數(shù)規(guī)格化標(biāo)志:符號(hào)位與最高數(shù)值位相反(- 1)補(bǔ)補(bǔ)(- ( 2-1+2-10 )補(bǔ)補(bǔ)- 24- 24 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITYIEEE 754標(biāo)準(zhǔn)標(biāo)準(zhǔn)Sf數(shù)符數(shù)符階碼(含階碼(含1位階符位階符)尾數(shù)尾數(shù)階碼:階碼:+0111偏移量的偏移量的移碼移碼表示表示尾數(shù):規(guī)格化尾數(shù):規(guī)格化原碼原碼 規(guī)格化后,最高有效數(shù)值位為規(guī)格化后,最高有效數(shù)值位為1 1 不表示該位,從不表示該位,從第
14、二位數(shù)值位第二位數(shù)值位開始表示開始表示 IEEE標(biāo)準(zhǔn)標(biāo)準(zhǔn) 符號(hào)位符號(hào)位 階碼階碼 尾數(shù)尾數(shù) 總位數(shù)總位數(shù)短實(shí)數(shù)短實(shí)數(shù) 1 8 23 32長(zhǎng)實(shí)數(shù)長(zhǎng)實(shí)數(shù) 1 11 52 64臨時(shí)實(shí)數(shù)臨時(shí)實(shí)數(shù) 1 15 64 80floatdoubleIA32浮點(diǎn)寄存器浮點(diǎn)寄存器 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY機(jī)器零機(jī)器零浮點(diǎn)數(shù)為零:浮點(diǎn)數(shù)為零: 尾數(shù)為零尾數(shù)為零 階碼下溢階碼下溢 階碼階碼 最小值最小值機(jī)器中的表示機(jī)器中的表示當(dāng)尾數(shù)用當(dāng)尾數(shù)用補(bǔ)碼補(bǔ)碼表示表示階碼用階碼用移碼移碼表示表示0補(bǔ)補(bǔ)=0.0000最小整數(shù)值最小整數(shù)值= -2-m最小整數(shù)值最小整數(shù)值補(bǔ)補(bǔ)= 1,000最小整數(shù)值最小整數(shù)
15、值移移= 0,000機(jī)器零的表示:機(jī)器零的表示: 0,000;0.0000正好機(jī)器零為全零正好機(jī)器零為全零 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY6.3 定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算1.1.移位運(yùn)算移位運(yùn)算 移位的意義移位的意義左移左移 - - 每移動(dòng)一位,將絕對(duì)值每移動(dòng)一位,將絕對(duì)值* *基數(shù)基數(shù)右移右移 - - 每移動(dòng)一位,將絕對(duì)值每移動(dòng)一位,將絕對(duì)值/ /基數(shù)基數(shù) 利用移位配合加法,實(shí)現(xiàn)乘利用移位配合加法,實(shí)現(xiàn)乘/ /除法除法 算術(shù)移位與邏輯移位算術(shù)移位與邏輯移位算術(shù)移位算術(shù)移位 - - 有符號(hào)數(shù)的移位有符號(hào)數(shù)的移位邏輯移位邏輯移位 - - 無(wú)符號(hào)數(shù)的移位無(wú)符號(hào)數(shù)的移位移位后,保持符號(hào)
16、不變移位后,保持符號(hào)不變EX: EX: 機(jī)器碼機(jī)器碼 FFHFFH FFHFFH為原碼為原碼 算術(shù)右移算術(shù)右移1 1位位1 1,111111111111111 1,0 011111111111 1 FFHFFH無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù) 邏輯右移邏輯右移1 1位位1 1,111111111111110 0,1 111111111111 1 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY移位運(yùn)算移位運(yùn)算 算術(shù)移位規(guī)則算術(shù)移位規(guī)則移位后應(yīng)滿足:移位后應(yīng)滿足:v符號(hào)位不變符號(hào)位不變v絕對(duì)值絕對(duì)值 左移左移=*基數(shù)基數(shù) 右移右移=/基數(shù)基數(shù)原碼原碼(數(shù)值位(數(shù)值位=真值)真值)符號(hào)位不變,數(shù)值位補(bǔ)符號(hào)位不
17、變,數(shù)值位補(bǔ)0反碼反碼正數(shù)相同正數(shù)相同負(fù)數(shù),負(fù)數(shù),數(shù)值位相反數(shù)值位相反符號(hào)位不變符號(hào)位不變正數(shù)數(shù)值位補(bǔ)正數(shù)數(shù)值位補(bǔ)0負(fù)數(shù)數(shù)值位補(bǔ)負(fù)數(shù)數(shù)值位補(bǔ)1補(bǔ)碼補(bǔ)碼正數(shù)相同正數(shù)相同負(fù)數(shù),負(fù)數(shù),右數(shù)第右數(shù)第1個(gè)零右個(gè)零右邊相同,左邊相反邊相同,左邊相反符號(hào)位不變符號(hào)位不變正數(shù)數(shù)值位補(bǔ)正數(shù)數(shù)值位補(bǔ)0負(fù)數(shù)數(shù)值位負(fù)數(shù)數(shù)值位,右移左邊補(bǔ)右移左邊補(bǔ)1 左移右邊補(bǔ)左移右邊補(bǔ)0符號(hào)位不變符號(hào)位不變右移補(bǔ)符號(hào)位右移補(bǔ)符號(hào)位左移補(bǔ)左移補(bǔ)0 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY移位運(yùn)算移位運(yùn)算 算術(shù)移位規(guī)則算術(shù)移位規(guī)則 真值真值碼碼 制制移位規(guī)則移位規(guī)則正數(shù)正數(shù)原、反、補(bǔ)原、反、補(bǔ)符號(hào)位不變,數(shù)值位補(bǔ)符號(hào)位不變,
18、數(shù)值位補(bǔ)0 0負(fù)數(shù)負(fù)數(shù)原碼原碼符號(hào)位不變,數(shù)值位補(bǔ)符號(hào)位不變,數(shù)值位補(bǔ)0 0補(bǔ)碼補(bǔ)碼左移,符號(hào)位不變,右邊補(bǔ)左移,符號(hào)位不變,右邊補(bǔ)0 0右移,符號(hào)位不變,左邊補(bǔ)右移,符號(hào)位不變,左邊補(bǔ)符號(hào)位符號(hào)位反碼反碼符號(hào)位不變,數(shù)值位補(bǔ)符號(hào)位不變,數(shù)值位補(bǔ)1 1 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY移位運(yùn)算移位運(yùn)算-例題例題EX:設(shè)機(jī)器數(shù)字長(zhǎng)為設(shè)機(jī)器數(shù)字長(zhǎng)為 8 位(含一位符號(hào)位位(含一位符號(hào)位),),寫出寫出 A = +26時(shí),三種機(jī)器數(shù)時(shí),三種機(jī)器數(shù)左、右移一位左、右移一位和和兩位后兩位后的的表示形表示形式及對(duì)應(yīng)的真值式及對(duì)應(yīng)的真值,并,并分析結(jié)果分析結(jié)果的正確性。的正確性。解:解:
19、A = +26則則 A原原 = A補(bǔ)補(bǔ) = A反反 = 0,0011010= +11010 + 60,0000110 +130,0001101+1040,1101000 + 520,0110100 +260,0011010移位前移位前A原原=A補(bǔ)補(bǔ)=A反反對(duì)應(yīng)的真值對(duì)應(yīng)的真值機(jī)機(jī) 器器 數(shù)數(shù)移位操作移位操作1212右移造成精度丟失右移造成精度丟失0, 1010000+803左移造成結(jié)果錯(cuò)誤左移造成結(jié)果錯(cuò)誤 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY移位運(yùn)算移位運(yùn)算EX:EX:設(shè)機(jī)器數(shù)字長(zhǎng)為設(shè)機(jī)器數(shù)字長(zhǎng)為8 8位(含位(含1 1位符號(hào)位位符號(hào)位) X反反=1.0101111X原原=0.
20、0011010X補(bǔ)補(bǔ)=1.1010100算術(shù)左移一位算術(shù)左移一位X原原=0.00110100X補(bǔ)補(bǔ)=1.10101000X反反=1.01011111算術(shù)右移一位算術(shù)右移一位X原原=0. 00011010X補(bǔ)補(bǔ)=1.11010100X反反=1.10101111算術(shù)右移兩位算術(shù)右移兩位X原原=0. 000011010X補(bǔ)補(bǔ)=1.111010100X反反=1.110101111左移移出有效左移移出有效位,出錯(cuò)位,出錯(cuò)右移移出有效位,精度降低右移移出有效位,精度降低 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY8086移位指令移位指令移位指令,移位指令,4 4組,組,8 8條移位指令條移位指令
21、邏輯移位邏輯移位算術(shù)移位算術(shù)移位SHSHR RSHSHL LSASAR RSASAL L帶進(jìn)位的循環(huán)移位帶進(jìn)位的循環(huán)移位RCRCR RRCRCL L循環(huán)移位循環(huán)移位ROROR RROROL LCFCFSARSARCFCFSHRSHR0 0CFCFSALSAL0 0SHLSHLCFCFRORRORCFCFROLROLCFCFRCRRCRCFCFRCLRCL 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)加減法定點(diǎn)加減法2.2.定點(diǎn)加減法定點(diǎn)加減法加減法加減法補(bǔ)碼運(yùn)算補(bǔ)碼運(yùn)算加法運(yùn)算加法運(yùn)算A+B補(bǔ)補(bǔ) = A補(bǔ)補(bǔ)+B補(bǔ)補(bǔ)(MOD 2n+1)A+B補(bǔ)補(bǔ) = A補(bǔ)補(bǔ)+B補(bǔ)補(bǔ)(MOD 2)減法
22、運(yùn)算減法運(yùn)算A-B = A+(-B)A-B補(bǔ)補(bǔ) = A補(bǔ)補(bǔ)+-B補(bǔ)補(bǔ)(MOD 2n+1)A-B補(bǔ)補(bǔ) = A補(bǔ)補(bǔ)+-B補(bǔ)補(bǔ)(MOD 2) 減法是通過(guò)減法是通過(guò)實(shí)現(xiàn)的實(shí)現(xiàn)的Example只取低只取低n+1位,位,高位丟失高位丟失 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)加減法定點(diǎn)加減法-溢出判斷溢出判斷 溢出溢出- -運(yùn)算結(jié)果的長(zhǎng)度運(yùn)算結(jié)果的長(zhǎng)度超出機(jī)器字長(zhǎng)超出機(jī)器字長(zhǎng)判斷判斷與與的關(guān)系的關(guān)系可能溢出?可能溢出? 溢出表現(xiàn)溢出表現(xiàn) 正正數(shù)數(shù)+ +正正數(shù)數(shù)(正正數(shù)數(shù)- -負(fù)數(shù)負(fù)數(shù)) 可能可能結(jié)果為結(jié)果為負(fù)負(fù)數(shù)數(shù) 正數(shù)正數(shù)+ +負(fù)數(shù)負(fù)數(shù)(正數(shù)(正數(shù)- -正數(shù)正數(shù)) 不可能不可能 負(fù)負(fù)數(shù)
23、數(shù)+ +負(fù)負(fù)數(shù)數(shù)(負(fù)負(fù)數(shù)數(shù)- -正數(shù))正數(shù)) 可能可能結(jié)果為結(jié)果為正正數(shù)數(shù) 負(fù)數(shù)負(fù)數(shù)+ +正數(shù)正數(shù)(負(fù)數(shù)(負(fù)數(shù)- -正數(shù))正數(shù)) 不可能不可能同號(hào)相加同號(hào)相加(異號(hào)相減)(異號(hào)相減)結(jié)果的符號(hào)位與原操作結(jié)果的符號(hào)位與原操作數(shù)不同,則發(fā)生溢出數(shù)不同,則發(fā)生溢出 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)加減法定點(diǎn)加減法-溢出判斷溢出判斷0, X1 X2 X3 X40, Y1 Y2 Y3 Y4+1, Z1 Z2 Z3 Z4溢出表現(xiàn):溢出表現(xiàn):最高數(shù)值位產(chǎn)生進(jìn)位最高數(shù)值位產(chǎn)生進(jìn)位110v正數(shù)正數(shù)+正數(shù)正數(shù) (正數(shù)正數(shù)-負(fù)數(shù)負(fù)數(shù))正數(shù)正數(shù)-符號(hào)位進(jìn)位符號(hào)位進(jìn)位0v負(fù)數(shù)負(fù)數(shù)+負(fù)數(shù)負(fù)數(shù) (負(fù)
24、數(shù)負(fù)數(shù)-正數(shù)正數(shù))1, X1 X2 X3 X41, Y1 Y2 Y3 Y4+0, Z1 Z2 Z3 Z401溢出表現(xiàn):溢出表現(xiàn):最高數(shù)值位產(chǎn)生進(jìn)位最高數(shù)值位產(chǎn)生進(jìn)位0負(fù)數(shù)負(fù)數(shù)-符號(hào)位進(jìn)位符號(hào)位進(jìn)位1發(fā)生溢出時(shí)發(fā)生溢出時(shí)-符號(hào)位進(jìn)位與最高數(shù)值位進(jìn)位相反符號(hào)位進(jìn)位與最高數(shù)值位進(jìn)位相反機(jī)器中的實(shí)現(xiàn)方法機(jī)器中的實(shí)現(xiàn)方法設(shè):設(shè): 最高數(shù)值位進(jìn)位最高數(shù)值位進(jìn)位C1符號(hào)位進(jìn)位符號(hào)位進(jìn)位C0 溢出標(biāo)志溢出標(biāo)志OV OV=C0 C1 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)加減法定點(diǎn)加減法-溢出判斷溢出判斷雙符號(hào)位判溢出雙符號(hào)位判溢出0 0, X1 X2 X3 X40 0, Y1 Y2 Y3 Y
25、4+0 1, Z1 Z2 Z3 Z410v正數(shù)正數(shù)+正數(shù)正數(shù) (正數(shù)正數(shù)-負(fù)數(shù)負(fù)數(shù))v負(fù)數(shù)負(fù)數(shù)+負(fù)數(shù)負(fù)數(shù) (負(fù)數(shù)負(fù)數(shù)-正數(shù)正數(shù))1 1, X1 X2 X3 X41 1, Y1 Y2 Y3 Y4+1 0, Z1 Z2 Z3 Z401雙符號(hào)位雙符號(hào)位-保存最高數(shù)值位和符號(hào)位的進(jìn)位保存最高數(shù)值位和符號(hào)位的進(jìn)位 結(jié)果雙符號(hào)位不同時(shí),溢出結(jié)果雙符號(hào)位不同時(shí),溢出原操作數(shù)補(bǔ)碼的兩個(gè)符號(hào)位相同原操作數(shù)補(bǔ)碼的兩個(gè)符號(hào)位相同高符號(hào)位代表真實(shí)符號(hào)高符號(hào)位代表真實(shí)符號(hào)雙符號(hào)位補(bǔ)碼也叫做變形碼雙符號(hào)位補(bǔ)碼也叫做變形碼Example 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)加減法定點(diǎn)加減法EXEX:已知
26、已知 A = 0.1011,B = -0.0101A = 0.1011,B = -0.0101,求求 A+BA+B補(bǔ)補(bǔ)解:解: 寫出運(yùn)算數(shù)的補(bǔ)碼形式寫出運(yùn)算數(shù)的補(bǔ)碼形式 作補(bǔ)碼加法作補(bǔ)碼加法A = 0.1011A = 0.1011AA補(bǔ)補(bǔ) = 0.1011 = 0.1011B = -0.0101B = -0.0101BB補(bǔ)補(bǔ) = 1.1011 = 1.1011A+BA+B補(bǔ)補(bǔ) = = AA補(bǔ)補(bǔ)+BB補(bǔ)補(bǔ)0.10110.10111.10111.1011+10.011010.0110A+BA+B補(bǔ)補(bǔ) = 0.0110= 0.0110 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)加減法定
27、點(diǎn)加減法EXEX:設(shè)機(jī)器字長(zhǎng)設(shè)機(jī)器字長(zhǎng)8 8位,已知位,已知 A = +15,B = +24A = +15,B = +24,求求 A-BA-B補(bǔ)補(bǔ)解:解: 寫出運(yùn)算數(shù)的補(bǔ)碼形式寫出運(yùn)算數(shù)的補(bǔ)碼形式 作補(bǔ)碼加法作補(bǔ)碼加法A = +15 = +1111A = +15 = +1111AA補(bǔ)補(bǔ) = 0,0001111 = 0,0001111B = +24 = +11000B = +24 = +11000BB補(bǔ)補(bǔ) = 0,0011000 = 0,0011000A-BA-B補(bǔ)補(bǔ) = = AA補(bǔ)補(bǔ)+-+-BB補(bǔ)補(bǔ)0,00011110,00011111,11010001,1101000+1,11101111,
28、1110111A-BA-B補(bǔ)補(bǔ) = 1= 1,11101111110111求求-BB補(bǔ)補(bǔ) = 1,1101000 = 1,1101000即即 -9 -9 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)加減法定點(diǎn)加減法EXEX:已知機(jī)器字長(zhǎng)已知機(jī)器字長(zhǎng)8 8位,位,A = -93,B = +45A = -93,B = +45,求求 A-BA-B補(bǔ)補(bǔ)解:解: 寫出運(yùn)算數(shù)的補(bǔ)碼形式寫出運(yùn)算數(shù)的補(bǔ)碼形式 作補(bǔ)碼加法作補(bǔ)碼加法A = -93 = -1011101A = -93 = -1011101AA補(bǔ)補(bǔ) = 1,0100011 = 1,0100011B = +45 = +101101B =
29、+45 = +101101BB補(bǔ)補(bǔ) = 0,0101101 = 0,0101101A-BA-B補(bǔ)補(bǔ) = = AA補(bǔ)補(bǔ)+-+-BB補(bǔ)補(bǔ)1,01000111,01000111,10100111,1010011+10,111011010,1110110A-BA-B補(bǔ)補(bǔ) = 0= 0,11101101110110求求-BB補(bǔ)補(bǔ) = 1,1010011 = 1,1010011即即 +118 +118 A A B B = -93-45= -93-45= -138= -1388位補(bǔ)碼表示范圍位補(bǔ)碼表示范圍-2727-1,即即-128127超出表示范圍超出表示范圍 魯東大學(xué)魯東大學(xué) LUDONG UNIVER
30、SITY定點(diǎn)加減法定點(diǎn)加減法EXEX:設(shè)設(shè)X = -X = -1611Y = -Y = -167用變形碼計(jì)算用變形碼計(jì)算X+YX+Y解:解: 寫出運(yùn)算數(shù)的補(bǔ)碼形式寫出運(yùn)算數(shù)的補(bǔ)碼形式 作補(bǔ)碼加法作補(bǔ)碼加法 溢出判斷溢出判斷X = -0.1011X = -0.1011XX補(bǔ)補(bǔ) = 1.0101 = 1.0101Y = -0.0111Y = -0.0111YY補(bǔ)補(bǔ) = 1.1001 = 1.10011 11 1. .010101011 11 1. .10011001+1010. .11101110結(jié)果的雙符號(hào)位不同,所以溢出結(jié)果的雙符號(hào)位不同,所以溢出 魯東大學(xué)魯東大學(xué) LUDONG UNIVER
31、SITY定點(diǎn)加減法定點(diǎn)加減法-硬件配置硬件配置(III) (III) 補(bǔ)碼定點(diǎn)加減法的硬件配置補(bǔ)碼定點(diǎn)加減法的硬件配置累加器累加器A(n+1位位)寄存器寄存器X(n+1位)位)溢出溢出判斷判斷OV求補(bǔ)求補(bǔ)控制邏輯控制邏輯加法器加法器(n+2位)位)雙符號(hào)位雙符號(hào)位n+1位位寄存器寄存器存放運(yùn)算數(shù)存放運(yùn)算數(shù)補(bǔ)碼補(bǔ)碼控制控制 X 送加法器送加法器同時(shí),加法器同時(shí),加法器末位進(jìn)末位進(jìn)位為位為1Gs減法減法FlagGA加法加法Flag 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)加減法定點(diǎn)加減法-控制流程控制流程 被加(減)數(shù)被加(減)數(shù)A; 加(減)數(shù)加(減)數(shù)X GA=1,加法加法 跳
32、至第三步跳至第三步 Gs=1,減法減法 求補(bǔ)邏輯有效,求補(bǔ)求補(bǔ)邏輯有效,求補(bǔ)累加器累加器A寄存器寄存器X溢出溢出判斷判斷OV求補(bǔ)控求補(bǔ)控制邏輯制邏輯加法器加法器(n+2位)位)雙符號(hào)位雙符號(hào)位GsGA 寄存器送加法器寄存器送加法器(A)+(X)-(A)(mod 2n+1)判溢出判溢出 設(shè)置標(biāo)記位設(shè)置標(biāo)記位OV 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算-乘除法乘除法3.3.定點(diǎn)乘法定點(diǎn)乘法筆算乘法的過(guò)程筆算乘法的過(guò)程IA=0.1101 B=0.1011,求求A B0.11010.1011 1101110100001101100011110.左移左移被乘數(shù)被乘數(shù)累加累加
33、問(wèn)題問(wèn)題1:累加無(wú)法一次完成累加無(wú)法一次完成問(wèn)題問(wèn)題2:左移需要左移需要兩倍長(zhǎng)度兩倍長(zhǎng)度的積寄存器的積寄存器筆算乘法的過(guò)程筆算乘法的過(guò)程IIA B=A 0.1011=A 0.1+ A 0.00 +A 0.001+ A 0.0001=A 0.1 +A 0.001+ A 0.0001= A 0.1 +A 0.1 0. 01+ A 0.1 0.001= 0.1 (A +0.1(0 A+ 0. 1(A+ 0. 1 ( A+0) )0.1 :將累加和右移將累加和右移A:當(dāng)前乘數(shù)位當(dāng)前乘數(shù)位*A(A+:將將A加到累加和上加到累加和上 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY右移右移1位位定點(diǎn)運(yùn)
34、算定點(diǎn)運(yùn)算-乘除法乘除法A B = 0.1 (A +0.1(0 A+ 0. 1(A+ 0. 1 ( A+0) )A*B最低位最低位+0(部分積)(部分積)0.1101+0=0.1101=0.01101當(dāng)前部分積當(dāng)前部分積+A*B次低位次低位0.01101+0.1101=1.00111右移右移1位位=0.100111當(dāng)前部分積當(dāng)前部分積+A*B第第2位位0.100111 +0= 0.100111右移右移1位位=0.0100111當(dāng)前部分積當(dāng)前部分積+A*B第第1位位0.0100111 + 0.1101= 1.0001111右移右移1位位=0.10001111n位乘法,位乘法,n次次加法和右移實(shí)現(xiàn)
35、加法和右移實(shí)現(xiàn)加法加法=部分積部分積高位高位+乘數(shù)當(dāng)前乘數(shù)當(dāng)前位位*被乘數(shù)被乘數(shù)部分積和乘數(shù)一起部分積和乘數(shù)一起右移右移積積=部分積和乘數(shù)寄存器部分積和乘數(shù)寄存器 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算-乘除法乘除法I. 原碼乘法原碼乘法運(yùn)算規(guī)則運(yùn)算規(guī)則原碼一位乘硬件配置原碼一位乘硬件配置原碼一位乘控制流程原碼一位乘控制流程原碼兩位乘原碼兩位乘運(yùn)算規(guī)則運(yùn)算規(guī)則 原碼表示原碼表示 接近真值接近真值 原碼乘法規(guī)則如下原碼乘法規(guī)則如下X原原=x0 . x1 x2 x3 xnY原原=y0 . y1 y2 y3 ynX原原 Y原原 = x0 y0 .(0. x1 x2 xn
36、 0. y1 y2 yn)x0 y0:乘積的符號(hào)位獨(dú)立運(yùn)算乘積的符號(hào)位獨(dú)立運(yùn)算 由運(yùn)算數(shù)的符號(hào)位異或得到由運(yùn)算數(shù)的符號(hào)位異或得到x* y* :乘積的數(shù)值位部分乘積的數(shù)值位部分 由運(yùn)算數(shù)的絕對(duì)值相乘得到由運(yùn)算數(shù)的絕對(duì)值相乘得到 x* y*Example 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算-乘除法乘除法I. 原碼乘法原碼乘法運(yùn)算規(guī)則運(yùn)算規(guī)則原碼一位乘硬件配置原碼一位乘硬件配置原碼一位乘控制流程原碼一位乘控制流程原碼兩位乘原碼兩位乘原碼一位乘硬件配置原碼一位乘硬件配置 加法器加法器(n+1位)位)A 部分積部分積 X 被乘數(shù)被乘數(shù)控制門控制門加加右移右移FQ 乘數(shù)乘
37、數(shù) nS計(jì)數(shù)器加/移位次數(shù)& 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算-乘除法乘除法I. 原碼乘法原碼乘法運(yùn)算規(guī)則運(yùn)算規(guī)則原碼一位乘硬件配置原碼一位乘硬件配置原碼一位乘控制流程原碼一位乘控制流程原碼兩位乘原碼兩位乘原碼一位乘控制流程原碼一位乘控制流程加法器加法器(n+1位)位)A 部分積部分積 X 被乘數(shù)被乘數(shù)控制門控制門加加右移右移FQ 乘數(shù)乘數(shù) nS各寄存器初始化;各寄存器初始化;部分積部分積A0 X被乘數(shù)被乘數(shù) Q乘數(shù)乘數(shù) C數(shù)值位位數(shù)數(shù)值位位數(shù)n計(jì)算積的符號(hào)位計(jì)算積的符號(hào)位 S=X0 Q0X00; Q0 0求乘積的數(shù)值部分求乘積的數(shù)值部分 C0Qn=1YNA
38、A+XA、Q聯(lián)合右移聯(lián)合右移C C-1 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算-乘除法乘除法I. 原碼乘法原碼乘法運(yùn)算規(guī)則運(yùn)算規(guī)則原碼一位乘硬件配置原碼一位乘硬件配置原碼一位乘控制流程原碼一位乘控制流程原碼兩位乘原碼兩位乘原碼兩位乘原碼兩位乘提高運(yùn)算速度,每次考慮提高運(yùn)算速度,每次考慮yn-1 yn兩位兩位yn-1 yn00部分積不加部分積不加01部分積部分積+x10部分積部分積+2x11部分積部分積+3x部分積右移部分積右移2位位乘數(shù)右移乘數(shù)右移2位位通過(guò)通過(guò)+4X-X實(shí)現(xiàn)實(shí)現(xiàn) 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)乘除法定點(diǎn)乘除法-原碼乘法原
39、碼乘法x* y* = x* 0. y1 y2 yn被乘數(shù)和乘數(shù)的絕對(duì)值相乘被乘數(shù)和乘數(shù)的絕對(duì)值相乘= x* (y1 2-1+ y2 2-2 + yn 2-n)= 2-1 (y1 x* + 2-1 (y2 x* + 2-1 ( 2-1 (yn x*+0 )z0Zi為第為第i次運(yùn)算的部分積次運(yùn)算的部分積z1zn-1znz0 =0;z1 = 2-1 (yn x*+ z0 )zi = 2-1 (yn-i+1 x*+ zi -1)zn = 2-1 (y1 x*+ zn -1) 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)乘除法定點(diǎn)乘除法-原碼乘法原碼乘法EX: 已知已知 X = -0.111
40、0, Y = -0.1101 求求 XY原原解:解: 求原碼求原碼 求積的數(shù)值部分求積的數(shù)值部分 求積的符號(hào)位求積的符號(hào)位X原原 = 1.1110Y原原 = 1.1101 X原原 數(shù)值部分?jǐn)?shù)值部分0.1110 Y原原 數(shù)值部分?jǐn)?shù)值部分0. 1101 積的積的 數(shù)值部分?jǐn)?shù)值部分 =0.1011 0110 積的積的 符號(hào)位符號(hào)位 =x0 y0=0XY原原= 0.1011 0110 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY部分積部分積乘數(shù)乘數(shù)說(shuō)明說(shuō)明;起始狀態(tài),部分積為起始狀態(tài),部分積為011010.0000;yi為為1,部分積部分積加被乘數(shù)加被乘數(shù)+ 0.11100.1110;部分積和
41、乘數(shù)一起部分積和乘數(shù)一起右移右移0.01110110; yi為為0,部分積部分積加加0+ 0.00000.0111; 右移右移0.00111011; yi為為1,部分積部分積加被乘數(shù)加被乘數(shù)+ 0.11101.0001; 右移右移0.10001101; yi為為1,部分積部分積加被乘數(shù)加被乘數(shù)+ 0.11101.0110; 右移右移0.10110110 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算-乘除法乘除法II. 補(bǔ)碼乘法補(bǔ)碼乘法校正法校正法Booth算法硬件配置算法硬件配置Booth算法控制流程算法控制流程校正法校正法Booth算法算法X補(bǔ)補(bǔ)=x0 . x1 x2
42、 x3 xnY補(bǔ)補(bǔ)=y0 . y1 y2 y3 yn情況情況1:若:若y(乘數(shù)乘數(shù))為正數(shù)為正數(shù) X X 補(bǔ)補(bǔ)和和 Y Y 補(bǔ)補(bǔ)按照原碼規(guī)則乘按照原碼規(guī)則乘情況情況2:若:若y(乘數(shù)乘數(shù))為負(fù)數(shù)為負(fù)數(shù) X X 補(bǔ)補(bǔ)和和 Y Y 補(bǔ)補(bǔ)的數(shù)值位的數(shù)值位按原碼規(guī)則乘按原碼規(guī)則乘乘積乘積+-+-xx補(bǔ)補(bǔ)進(jìn)行校正進(jìn)行校正Example注意!注意!補(bǔ)碼運(yùn)算均補(bǔ)碼運(yùn)算均帶符號(hào)運(yùn)算帶符號(hào)運(yùn)算 符號(hào)通過(guò)運(yùn)算直接得到符號(hào)通過(guò)運(yùn)算直接得到 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算-乘除法乘除法II. 補(bǔ)碼乘法補(bǔ)碼乘法校正法校正法Booth算法硬件配置算法硬件配置Booth算法控制流程算法
43、控制流程Booth算法算法X補(bǔ)補(bǔ)=x0 . x1 x2 x3 xnY補(bǔ)補(bǔ)=y0 . y1 y2 y3 ynXY補(bǔ)補(bǔ) =X補(bǔ)補(bǔ)(0. y1 y2 y3 yn)+ y0 -X補(bǔ)補(bǔ)Booth算法的推導(dǎo)過(guò)程算法的推導(dǎo)過(guò)程Booth算法算法初始:部分積初始:部分積=0,補(bǔ),補(bǔ)yn+1=0;過(guò)程:新部分積過(guò)程:新部分積 = 部分積部分積+(yi+1-yi) X補(bǔ)補(bǔ); 部分積與乘數(shù)一起右移;部分積與乘數(shù)一起右移;注意:最后一次加法后,不移位;注意:最后一次加法后,不移位;Example 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算-乘除法乘除法II. 補(bǔ)碼乘法補(bǔ)碼乘法校正法校正法Bo
44、oth算法硬件配置算法硬件配置Booth算法控制流程算法控制流程Booth算法算法Booth算法硬件配置算法硬件配置初始:部分積初始:部分積=0,補(bǔ),補(bǔ)yn+1=0;過(guò)程:新部分積過(guò)程:新部分積 = 部分積部分積+(yi+1-yi) X補(bǔ)補(bǔ); 部分積與乘數(shù)一起右移;部分積與乘數(shù)一起右移;注意:最后一次加法后,不移位;注意:最后一次加法后,不移位; 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算-乘除法乘除法II. 補(bǔ)碼乘法補(bǔ)碼乘法校正法校正法Booth算法硬件配置算法硬件配置Booth算法控制流程算法控制流程Booth算法算法Booth算法控制流程算法控制流程0A,被乘數(shù)
45、被乘數(shù)X乘數(shù)乘數(shù)Q,0Qn+1nCQn+1Qn10A+XAA+(-X)AA、Q一起右移一位一起右移一位00 11C-1C01C=0?NYQn+1Qn10A+XAA+(-X)A01 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)乘法定點(diǎn)乘法-補(bǔ)碼校正法補(bǔ)碼校正法EX: 已知已知 X = -0.1110, Y = -0.1101 求求 XY補(bǔ)補(bǔ)解:解: 求補(bǔ)碼求補(bǔ)碼 求校正前的積求校正前的積 校正校正X補(bǔ)補(bǔ) = 1.0010Y補(bǔ)補(bǔ) = 1.0011 X補(bǔ)補(bǔ) 1.0010 Y補(bǔ)補(bǔ) 數(shù)值部分?jǐn)?shù)值部分0011 +-X補(bǔ)補(bǔ)=1.1101 0110+0.1110=0.1011 0110XY補(bǔ)補(bǔ)=
46、0.1011 0110 Y乘數(shù)為負(fù)數(shù),需要校正乘數(shù)為負(fù)數(shù),需要校正-X補(bǔ)補(bǔ) = 0.1110校正前校正前 積積=1.1101 0110 乘積符號(hào)直接求出乘積符號(hào)直接求出 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY部分積部分積乘數(shù)乘數(shù)說(shuō)明說(shuō)明;起始狀態(tài),部分積為起始狀態(tài),部分積為0001100.0000;yi為為1,部分積部分積加被乘數(shù)加被乘數(shù)+ 11.001011.0010;部分積和乘數(shù)一起部分積和乘數(shù)一起右移右移11.10010001; yi為為1,部分積部分積加被乘數(shù)加被乘數(shù)+ 11.001010.1011; 右移右移11.01011000; yi為為0,部分積部分積加加0+ 0
47、0.000011.0101; 右移右移11.10101100; yi為為0,部分積部分積加加0+ 00.000011.1010; 右移右移11.11010110注意!注意!補(bǔ)碼帶符號(hào)運(yùn)算,所以部分積補(bǔ)碼帶符號(hào)運(yùn)算,所以部分積雙符號(hào)位雙符號(hào)位高位符號(hào)位為真實(shí)符號(hào)高位符號(hào)位為真實(shí)符號(hào) 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算-補(bǔ)碼補(bǔ)碼Booth算法算法Booth算法的推導(dǎo)算法的推導(dǎo)= X補(bǔ)補(bǔ)(0. y1 y2 y3 yn) - y0 X補(bǔ)補(bǔ)= X補(bǔ)補(bǔ)(0. y1 y2 y3 yn - y0 )= X補(bǔ)補(bǔ)(- y0 + 0. y1 y2 y3 yn)y1 2-1 + y2
48、 2-2 + yn 2-n)=X補(bǔ)補(bǔ)(- y0 + (y1 - y1 2-1 ) + ( y2 2-1 - y2 2-2 ) + + (yn 2-(n-1) - yn 2-n ) )=X補(bǔ)補(bǔ) (y1 - y0 ) + 2-1 (y2 - y1) + 2-2 (y3 - y2)+ + 2-n-1 (yn yn-1) + 2-n (0 - yn)由由XY補(bǔ)補(bǔ) = X補(bǔ)補(bǔ)(0. y1 y2 y3 yn)+ y0 -X補(bǔ)補(bǔ)令:令:yn+1=0XY補(bǔ)補(bǔ) = X補(bǔ)補(bǔ) (y1 - y0 ) + 2-1 (y2 - y1) + 2-2 (y3 - y2)+ + 2-n (yn+1 - yn) 魯東大學(xué)魯東大學(xué)
49、 LUDONG UNIVERSITY初始狀態(tài):初始狀態(tài):定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算-補(bǔ)碼補(bǔ)碼Booth算法算法XY補(bǔ)補(bǔ) = X補(bǔ)補(bǔ) (y1 - y0 ) + 2-1 (y2 - y1) + + 2-n (yn+1 - yn)Booth算法規(guī)則算法規(guī)則Z0補(bǔ)補(bǔ) = 0Z1補(bǔ)補(bǔ) =Z0補(bǔ)補(bǔ)+ (yn+1 - yn) X補(bǔ)補(bǔ)令:令:yn+1 =0;()2-1Z2補(bǔ)補(bǔ) =Z1補(bǔ)補(bǔ)+ (yn- yn-1) X補(bǔ)補(bǔ)()2-1Zn補(bǔ)補(bǔ) =Zn-1補(bǔ)補(bǔ)+ (y2- y1) X補(bǔ)補(bǔ)()2-1由乘數(shù)末位由乘數(shù)末位(yi+1-yi)決定決定部分積加上的內(nèi)容;部分積加上的內(nèi)容;新的部分積與乘數(shù)一起新的部分積與乘數(shù)一起右移;繼續(xù)
50、上一步右移;繼續(xù)上一步XY補(bǔ)補(bǔ) = Zn補(bǔ)補(bǔ)+ (y1 - y0 ) X補(bǔ)補(bǔ)最后一次加后,最后一次加后,不移位不移位對(duì)于對(duì)于n位位數(shù)值位,數(shù)值位,1位符號(hào)位的補(bǔ)碼位符號(hào)位的補(bǔ)碼Booth乘法乘法共進(jìn)行共進(jìn)行n+1次次的的加加法和法和n次次的的移移位位 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)乘法定點(diǎn)乘法-補(bǔ)碼補(bǔ)碼Booth算法算法EX: 已知已知 X = -0.1110, Y = -0.1101 求求 XY補(bǔ)補(bǔ)解:解: 求補(bǔ)碼求補(bǔ)碼 用用BoothBooth算法求積算法求積X補(bǔ)補(bǔ) = 1.0010Y補(bǔ)補(bǔ) = 1.0011 X補(bǔ)補(bǔ) 1.0010 Y補(bǔ)補(bǔ)1. 0011 XY補(bǔ)補(bǔ)=
51、0.1011 0110 加(加(Yi+1-Yi)X補(bǔ)補(bǔ)-X補(bǔ)補(bǔ) = 0.1110帶符號(hào)運(yùn)算帶符號(hào)運(yùn)算乘數(shù)末位補(bǔ)乘數(shù)末位補(bǔ)0Yi+1Yi 為為00,01,10,11(Yi+1-Yi)為為 0,-1,1,0 相應(yīng)相應(yīng) 加加 0,-X補(bǔ)補(bǔ) , X補(bǔ)補(bǔ) ,0X補(bǔ)補(bǔ) 1.0010 Y補(bǔ)補(bǔ)1. 00110 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY部分積部分積乘數(shù)乘數(shù)說(shuō)明說(shuō)明;起始狀態(tài),部分積為起始狀態(tài),部分積為010011000.0000;yi+1 yi為為01,部分積部分積加加-x補(bǔ)補(bǔ)+ 00.111000.1110;部分積和乘數(shù)一起部分積和乘數(shù)一起右移右移00.0111010011; yi
52、+1 yi為為11,部分積部分積加加0+ 00.000000.0111; 右移右移00.0011101001; yi+1 yi為為10,部分積部分積加加x補(bǔ)補(bǔ)+ 11.001011.0101; 右移右移11.1010110100; yi+1 yi為為00,部分積部分積加加0+ 00.000011.1010; 右移右移11.1101011010注意!注意!補(bǔ)碼帶符號(hào)運(yùn)算,所以部分積補(bǔ)碼帶符號(hào)運(yùn)算,所以部分積雙符號(hào)位雙符號(hào)位高位符號(hào)位為真實(shí)符號(hào)高位符號(hào)位為真實(shí)符號(hào); yi+1 yi為為01,部分積部分積加加-x補(bǔ)補(bǔ)+00.111000.1011011010; 最后一次不移位最后一次不移位 魯東大學(xué)
53、魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)乘法定點(diǎn)乘法-Booth算法硬件配置算法硬件配置加法器加法器A 部分積部分積 X 被乘數(shù)被乘數(shù)控制門控制門加加右移右移FQ 乘數(shù)乘數(shù) n原碼一位乘硬件框圖補(bǔ)碼補(bǔ)碼Booth算法算法與原碼乘法的不同:與原碼乘法的不同:原碼不帶符號(hào)運(yùn)算原碼不帶符號(hào)運(yùn)算 補(bǔ)碼帶符號(hào)運(yùn)算補(bǔ)碼帶符號(hào)運(yùn)算n +1位位n +1位位n +2位位n+2位位原碼只有加原碼只有加X或加或加0兩種情況兩種情況補(bǔ)碼根據(jù)補(bǔ)碼根據(jù)yn+1yn的的值有加值有加X,加加-X和加和加0三種情況三種情況nn+1 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)運(yùn)算定點(diǎn)運(yùn)算-除法除法4.4.定
54、點(diǎn)除法定點(diǎn)除法筆算除法的過(guò)程筆算除法的過(guò)程x=-0.1011 y= 0.1101,求求 x / y0.10110.110100.011010.0100100.0011010.000101000.000011010.000001110.1101y 右移右移y 右移右移y 右移右移減法減法減法減法減法減法問(wèn)題問(wèn)題1:怎樣確定能否上商?怎樣確定能否上商?問(wèn)題問(wèn)題2:右移除數(shù)作減法,加法器需要右移除數(shù)作減法,加法器需要 兩倍運(yùn)算數(shù)長(zhǎng)度兩倍運(yùn)算數(shù)長(zhǎng)度問(wèn)題問(wèn)題3:上商怎樣能上到相應(yīng)位?上商怎樣能上到相應(yīng)位?通過(guò)減法,判斷是否能上商通過(guò)減法,判斷是否能上商通過(guò)左移被除數(shù)代替右移除數(shù)通過(guò)左移被除數(shù)代替右移除數(shù)
55、上到商的最低位,商寄存器左移,保證從高到低上商上到商的最低位,商寄存器左移,保證從高到低上商 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)除法-原碼除法I. 原碼除法原碼除法設(shè)設(shè)X原原 = x0.x1 x2 x3 xnY原原 = y0.y1 y2 y3 yn X/Y原原 =( x0 y0)( X* / Y*) 商符單獨(dú)求商符單獨(dú)求 = x0 y0 商值商值 = X 絕對(duì)值絕對(duì)值 / Y 絕對(duì)值絕對(duì)值注意!注意!為防止溢出,要求:為防止溢出,要求: |被除數(shù)被除數(shù)|0, 上商上商1左移余數(shù)后,減除數(shù)左移余數(shù)后,減除數(shù)情況情況2:當(dāng)余數(shù)當(dāng)余數(shù)Ri0時(shí),上商時(shí),上商1左移后,左移后,減除
56、數(shù)減除數(shù),判斷上商,判斷上商當(dāng)當(dāng)余數(shù)余數(shù) 0時(shí),上商時(shí),上商0左移后,左移后,加除數(shù)加除數(shù),判斷上商,判斷上商故:又稱故:又稱商符號(hào)單獨(dú)求商符號(hào)單獨(dú)求Example 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)除法定點(diǎn)除法-原碼除法原碼除法不恢復(fù)余數(shù)法硬件配置不恢復(fù)余數(shù)法硬件配置加法器加法器 1&A 余數(shù)余數(shù)X 除數(shù)除數(shù)Q 商商SVFSS S(X加法器加法器)計(jì)數(shù)器計(jì)數(shù)器CountS 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)除法定點(diǎn)除法-原碼除法原碼除法不恢復(fù)余數(shù)法控制流程不恢復(fù)余數(shù)法控制流程初始化:被除數(shù)初始化:被除數(shù)A除數(shù)除數(shù)X;0商;商;ncount求商符:求
57、商符:A0 X0S求商整數(shù)位求商整數(shù)位求商的數(shù)值位求商的數(shù)值位 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)除法定點(diǎn)除法-補(bǔ)碼除法補(bǔ)碼除法II. 補(bǔ)碼除法補(bǔ)碼除法通過(guò)通過(guò)比較比較被除數(shù)和除數(shù)的被除數(shù)和除數(shù)的絕對(duì)值絕對(duì)值上商上商補(bǔ)碼:帶符號(hào)運(yùn)算補(bǔ)碼:帶符號(hào)運(yùn)算兩數(shù)兩數(shù)同號(hào)同號(hào),做,做減減法;兩數(shù)法;兩數(shù)異號(hào)異號(hào),作,作加加法法 根據(jù)根據(jù)商的符號(hào)商的符號(hào)和和余數(shù)的符號(hào)余數(shù)的符號(hào)確定商值確定商值 余數(shù)與除數(shù)同號(hào),上商余數(shù)與除數(shù)同號(hào),上商1余數(shù)與除數(shù)異號(hào),上商余數(shù)與除數(shù)異號(hào),上商0商符的求得:第一次上商即為商符商符的求得:第一次上商即為商符 下次上商過(guò)程;若此次余數(shù)與除數(shù)下次上商過(guò)程;若此
58、次余數(shù)與除數(shù)同同號(hào)號(hào),下次,下次作減法作減法,異號(hào)異號(hào),下次,下次作加法作加法 運(yùn)算要求(定點(diǎn)小數(shù))運(yùn)算要求(定點(diǎn)小數(shù)):|被除數(shù)被除數(shù)|AC-1CA0 X0Qn,A和和Q聯(lián)合左移聯(lián)合左移1位位YN 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)除法定點(diǎn)除法-補(bǔ)碼除法補(bǔ)碼除法X補(bǔ)補(bǔ)與與Y補(bǔ)補(bǔ)上商方法上商方法上商判斷上商判斷同同號(hào)號(hào)異異號(hào)號(hào)X補(bǔ)補(bǔ)- Y補(bǔ)補(bǔ)X補(bǔ)補(bǔ)+ Y補(bǔ)補(bǔ)余數(shù)與余數(shù)與Y補(bǔ)補(bǔ)同號(hào),同號(hào),夠減夠減余數(shù)與余數(shù)與Y補(bǔ)補(bǔ)異號(hào),異號(hào),夠減夠減商符商符商值商值注:補(bǔ)碼除法約定商的最后一位注:補(bǔ)碼除法約定商的最后一位商為負(fù)數(shù)時(shí),除最后商為負(fù)數(shù)時(shí),除最后1 1位(恒為位(恒為1 1),商
59、值),商值余數(shù)與余數(shù)與Y補(bǔ)補(bǔ)同號(hào)同號(hào)余數(shù)與余數(shù)與Y補(bǔ)補(bǔ)異號(hào)異號(hào)余數(shù)與余數(shù)與Y補(bǔ)補(bǔ)同號(hào)同號(hào)余數(shù)與余數(shù)與Y補(bǔ)補(bǔ)異號(hào)異號(hào) 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)除法定點(diǎn)除法-補(bǔ)碼除法補(bǔ)碼除法補(bǔ)碼特點(diǎn):符號(hào)在運(yùn)算中求得補(bǔ)碼特點(diǎn):符號(hào)在運(yùn)算中求得定點(diǎn)小數(shù)除法要求定點(diǎn)小數(shù)除法要求:|被除數(shù)被除數(shù)|除數(shù)除數(shù)|為保證商不溢出為保證商不溢出第一次上商:第一次上商:|X|-|Y|必不夠減必不夠減X、Y同號(hào),不夠減,與同號(hào),不夠減,與Y異號(hào),上商異號(hào),上商0X、Y異號(hào),不夠減,與異號(hào),不夠減,與Y同號(hào),上商同號(hào),上商1滿足:滿足:XY同號(hào),商為正,異號(hào),為負(fù)同號(hào),商為正,異號(hào),為負(fù)結(jié)論:結(jié)論:商符
60、在第一次商符在第一次上商時(shí)求得上商時(shí)求得 魯東大學(xué)魯東大學(xué) LUDONG UNIVERSITY定點(diǎn)除法定點(diǎn)除法-補(bǔ)碼除法補(bǔ)碼除法據(jù)原碼加減交替法(不恢復(fù)余數(shù)法)據(jù)原碼加減交替法(不恢復(fù)余數(shù)法)X、Y異號(hào)異號(hào)新余數(shù)求法為:新余數(shù)求法為:2|Ri|-|Y|此次,不夠減此次,不夠減2|Ri|+|Y|補(bǔ)碼加減交替法補(bǔ)碼加減交替法此次,夠減此次,夠減X、Y同號(hào)同號(hào)X、Y異號(hào)異號(hào)X、Y同號(hào)同號(hào)余數(shù)與余數(shù)與Y同號(hào)同號(hào)2Ri-Y余數(shù)與余數(shù)與Y異號(hào)異號(hào)2Ri+Y余數(shù)與余數(shù)與Y異號(hào)異號(hào)2Ri+Y余數(shù)與余數(shù)與Y同號(hào)同號(hào)2Ri-Y結(jié)論:結(jié)論:余數(shù)與余數(shù)與Y同號(hào)同號(hào),左移后,左移后,減減除數(shù);除數(shù);余數(shù)與余數(shù)與Y異號(hào)異
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 挖掘機(jī)操作合同3篇
- 車庫(kù)買賣合同版本4篇
- 有限公司兼職勞動(dòng)合同3篇
- 小學(xué)剪紙花卉技法入門
- 農(nóng)村荒山荒地承包合同范本與農(nóng)村購(gòu)買土地合同2篇
- 新生兒體格測(cè)量規(guī)范
- 第五章項(xiàng)目建議書及合同4篇
- 幼兒衛(wèi)生知識(shí)基礎(chǔ)指南
- 鋁錠搬運(yùn)工裝設(shè)計(jì)
- 車禍現(xiàn)場(chǎng)急救護(hù)理規(guī)范
- EndNote使用教程介紹課件
- 重癥肌無(wú)力 (神經(jīng)內(nèi)科)
- 醫(yī)院診斷證明書word模板
- 井下煤礦掘進(jìn)工作面爆破設(shè)計(jì)方案
- 藥物分析與檢驗(yàn)技術(shù)中職PPT完整全套教學(xué)課件
- 小兒急性顱內(nèi)壓增高護(hù)理
- 城市消防站建設(shè)標(biāo)準(zhǔn)XXXX
- 小學(xué)英語(yǔ)The-Giving-Tree 優(yōu)秀公開課課件
- 左宗棠課件完整版
- GA 1277.8-2023互聯(lián)網(wǎng)交互式服務(wù)安全管理要求第8部分:電子商務(wù)服務(wù)
- 建筑工地事故應(yīng)急救援演習(xí)記錄表范本
評(píng)論
0/150
提交評(píng)論