第4章 數(shù)值的機器運算(wxr)_第1頁
第4章 數(shù)值的機器運算(wxr)_第2頁
第4章 數(shù)值的機器運算(wxr)_第3頁
第4章 數(shù)值的機器運算(wxr)_第4頁
第4章 數(shù)值的機器運算(wxr)_第5頁
已閱讀5頁,還剩139頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,王學(xué)榮,計算機組成原理,2,第4章數(shù)值的機器運算,3,運算器是計算機進行算術(shù)運算和邏輯運算的主要部件,運算器的邏輯結(jié)構(gòu)取決于機器的指令系統(tǒng)、數(shù)據(jù)表示方法和運算方法等。本章主要討論數(shù)值數(shù)據(jù)在計算機中實現(xiàn)算術(shù)運算和邏輯運算的方法,以及運算部件的基本結(jié)構(gòu)和工作原理。,4,本章學(xué)習(xí)內(nèi)容,4.1 基本算術(shù)運算的實現(xiàn) 4.2 定點加減運算 4.3 帶符號數(shù)的移位和舍入操作 4.4 定點乘法運算 4.5 定點除法運算 4.6 規(guī)格化浮點運算 4.7 十進制整數(shù)的加法運算 4.8 邏輯運算與實現(xiàn) 4.9 運算器的基本組成與實例,5,本章學(xué)習(xí)要求,掌握:定點補碼加法和減法運算方法 理解:3種溢出檢測方法 理

2、解:補碼移位運算和常見的舍入操作方法 了解:串行加法器與并行加法器 理解:進位產(chǎn)生和進位傳遞 掌握:定點原碼、補碼乘法運算方法 掌握:定點原碼、補碼加減交替除法運算方法 理解:浮點加減乘除運算 理解:邏輯運算 了解:運算器的基本結(jié)構(gòu)及浮點協(xié)處理器,6,4.1 基本算術(shù)運算的實現(xiàn),計算機中最基本的算術(shù)運算是加法運算,不論加、減、乘、除運算最終都可以歸結(jié)為加法運算。所以在此討論最基本的運算部件加法器,以及并行加法器的進位問題。,7,4.1.1 加法器,1.全加器 全加器(FA)是最基本的加法單元,它有三個輸入量:操作數(shù)Ai和Bi、低位傳來的進位Ci-1,兩個輸出量:本位和Si、向高位的進位Ci。

3、圖4-1 全加器的邏輯框圖,8,全加器真值表,9,根據(jù)真值表,可得到全加器的邏輯表達式為: Si=AiBiCi-1 Ci=AiBi+(AiBi)Ci-1,全加器的邏輯表達式,10,2.串行加法器與并行加法器,加法器有串行和并行之分。在串行加法器中,只有一個全加器,數(shù)據(jù)逐位串行送入加法器進行運算;并行加法器則由多個全加器組成,其位數(shù)的多少取決于機器的字長,數(shù)據(jù)的各位同時運算。,11,串行加法器具有器件少、成本低的優(yōu)點,但運算速度太慢,所以除去某些低速的專用運算器外很少采用。 并行加法器可同時對數(shù)據(jù)的各位相加,但存在著一個加法的最長運算時間問題。這是因為雖然操作數(shù)的各位是同時提供的,但低位運算所產(chǎn)

4、生的進位會影響高位的運算結(jié)果。例如:1111和0001相加,最低位產(chǎn)生的進位將逐位影響至最高位,因此,并行加法器的最長運算時間主要是由進位信號的傳遞時間決定的,而每個全加器本身的求和延遲只是次要因素。很明顯,提高并行加法器速度的關(guān)鍵是盡量加快進位產(chǎn)生和傳遞的速度。,2.串行加法器與并行加法器(續(xù)),12,并行加法器中的每一個全加器都有一個從低位送來的進位輸入和一個傳送給高位的進位輸出。我們將傳遞進位信號的邏輯線路連接起來構(gòu)成的進位網(wǎng)絡(luò)稱為進位鏈。每一位的進位表達式為: Ci=AiBi+(AiBi)Ci-1 其中:Gi=AiBi為進位產(chǎn)生函數(shù) Pi=AiBi為進位傳遞函數(shù) 進位表達式Ci=Gi+

5、PiCi-1,4.1.2 進位的產(chǎn)生和傳遞,13,圖4-3 串行進位的并行加法器 其中:C1=G1+P1C0 C2=G2+P2C1 Cn=Gn+PnCn-1,串行進位的并行加法器,14,4.1.2 進位的產(chǎn)生和傳遞(續(xù)),串行進位的并行加法器的總延遲時間與字長成正比,字長越長,總延遲時間就越長。假定,將一級“與門”、“或門”的延遲時間定為ty,從上述公式中可看出,每一級全加器的進位延遲時間為2ty。在字長為n位的情況下,若不考慮Gi、Pi的形成時間,從C0Cn的最長延遲時間為2nty(設(shè)C0為加法器最低位的進位輸入,Cn為加法器最高位的進位輸出)。,15,1.并行進位方式 并行進位又叫先行進位

6、、同時進位,其特點是各級進位信號同時形成。 C1=G1+PC0 C2=G2+P2C1=G2+P2G1+P2P1C0 C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1 +P4P3P2P1C0 ,4.1.3 并行加法器的快速進位,16,這種進位方式是快速的,若不考慮Gi、Pi的形成時間,從C0Cn的最長延遲時間僅為2ty,而與字長無關(guān)。但是隨著加法器位數(shù)的增加,Ci的邏輯表達式會變得越來越長,輸入變量會越來越多,這會使電路結(jié)構(gòu)變得很復(fù)雜,所以完全采用并行進位是不現(xiàn)實的。,1.并行進位方式(續(xù)),17,單級先行

7、進位方式(組內(nèi)并行、組間串行) 以16位加法器為例,可分為4組,每組4位。第一小組組內(nèi)的進位邏輯函數(shù)C1、C2、C3、C4的表達式與前述相同,它們是同時產(chǎn)生的,實現(xiàn)上述進位邏輯函數(shù)的電路稱之為4位先行進位電路CLA,其延遲時間是2ty。 利用這種4位的CLA電路以及進位產(chǎn)生/傳遞電路和求和電路可以構(gòu)成4位的CLA加法器。用4個這樣的CLA加法器,很容易構(gòu)成16位的單級先行進位加法器。,2.分組并行進位方式,18,16位單級先行進位加法器,圖4-4 16位單級先行進位加法器,19,16位單級先行進位時間圖,圖4-5 16位單級先行進位時間圖,20,多級先行進位方式(組內(nèi)并行、組間并行) 仍以字長

8、為16位的加法器作為例子,分析兩級先行進位加法器的設(shè)計方法。第一小組的進位輸出C4可以變成兩個與項相或: C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0 =G1*+P1*C0 其中:G1*=G4+P4G3+P4P3G2+P4P3P2G1 P1*=P4P3P2P1 Gi*稱為組進位產(chǎn)生函數(shù) Pi*稱為組進位傳遞函數(shù),2.分組并行進位方式(續(xù)),21,依次類推,可以得到: C8=G2*+P2*C4=G2*+P2*G1*+P2*P1*C0 C12=G3*+P3*G2+P3*P2*G1*+P3*P2*P1*C0 C16=G4*+P4*G3*+P4*P3*G2*+P4*P3*

9、P2*G1* +P4*P3*P2*P1*C0,2.分組并行進位方式(續(xù)),22,成組先行進位電路BCLA,其延遲時間是2ty。利用這種4位的BCLA電路以及進位產(chǎn)生/傳遞電路和求和電路可以構(gòu)成4位的BCLA加法器。16位的兩級先行進位加法器可由4個BCLA加法器和1個CLA電路組成。,2.分組并行進位方式(續(xù)),23,16位兩級先行進位加法器,圖4-6 16位兩級先行進位加法器,24,若不考慮Gi、Pi的形成時間,C0經(jīng)過2ty產(chǎn)生第一小組的C1、C2、C3及所有組進位產(chǎn)生函數(shù)Gi*和組進位傳遞函數(shù)Pi*;再經(jīng)過2ty,由CLA電路產(chǎn)生C4、C8、C12、C16;再經(jīng)過2ty后,才能產(chǎn)生第二、

10、三、四小組內(nèi)的C5C7、C9C11、C13C15。此時加法器的最長進位延遲時間是6ty。,2.分組并行進位方式(續(xù)),25,16位兩級先行進位時間圖,圖4-7 16位兩級先行進位時間圖,26,定點數(shù)的加減運算包括原碼、補碼和反碼3種帶符號數(shù)的加減運算,其中補碼加減運算實現(xiàn)起來最方便。,4.2 定點加減運算,27,原碼加減運算規(guī)則: 參加運算的操作數(shù)取其絕對值; 若做加法,則兩數(shù)直接相加,若做減法,則將減數(shù)先變一次補,再進行加法運算; 運算之后,可能有兩種情況: 有進位,結(jié)果為正,即得到正確的結(jié)果。 無進位,結(jié)果為負,則應(yīng)再變一次補,才能得到正確的結(jié)果。 結(jié)果加上符號位。 通常,把運算之前的變補

11、稱為前變補,運算之后的變補稱為后變補。,4.2.1 原碼加減運算,28,4.2.2 補碼加減運算,1.補碼加法 兩個補碼表示的數(shù)相加,符號位參加運算,且兩數(shù)和的補碼等于兩數(shù)補碼之和,即: X+Y補=X補+Y補,29,根據(jù)補碼加法公式可推出: X-Y補=X+(-Y)補=X補+-Y補 從補碼減法公式可以看出,只要求得-Y補,就可以變減法為加法。不管Y的真值為正或為負,已知Y補求-Y補的方法是:將Y補連同符號位一起求反,末尾加“1” 。-Y補被稱為Y補的機器負數(shù),由Y補求-Y補的過程稱為對Y補變補(求補),表示為 -Y補=Y補變補,2.補碼減法,30,2.補碼減法(續(xù)),“某數(shù)的補碼表示”與“變補”

12、是兩個不同的概念。一個負數(shù)由原碼轉(zhuǎn)換成補碼時,符號位是不變的,僅對數(shù)值位各位變反,末位加“1”。而變補則不論這個數(shù)的真值是正是負,一律連同符號位一起變反,末位加“1”。Y補表示的真值如果是正數(shù),則變補后-Y補所表示的真值變?yōu)樨摂?shù),反之亦然。 例1:Y=-0.0110, Y原=1.0110, Y補=1.1010, -Y補=0.0110 例2:Y=0.0110, Y原=0.0110, Y補=0.0110, -Y補=1.1010,31,參加運算的兩個操作數(shù)均用補碼表示; 符號位作為數(shù)的一部分參加運算; 若做加法,則兩數(shù)直接相加,若做減法,則將被減數(shù)與減數(shù)的機器負數(shù)相加; 運算結(jié)果仍用補碼表示。,3.

13、補碼加減運算規(guī)則,32,例3:A=0.1011,B=-0.1110,求A+B A補=0.1011 B補=1.0010 0.1011 A補 + 1.0010 B補 1.1101 A+B補 A+B補=1.1101 A+B=-0.0011,補碼加法示例,33,例4:A=0.1011,B=-0.0010,求A-B A補=0.1011 B補=1.1110 -B補=0.0010 0.1011 A補 + 0.0010 -B補 0.1101 A-B補 A-B補=0.1101 A-B=0.1101,補碼減法示例,34,4.2.3 補碼的溢出判斷與檢測方法,1.溢出的產(chǎn)生 在補碼運算中,若兩個正數(shù)相加,而結(jié)果為負

14、;兩個負數(shù)相加,而結(jié)果為正,則結(jié)果出錯。 例5:設(shè):X=1011B=11D,Y=111B=7D 則 X補=0,1011,Y補=0,0111 0,1 0 1 1X補 + 0,0 1 1 1Y補 1,0 0 1 0X+Y補 X+Y補=1,0010 X+Y=-1110B=-14D 兩正數(shù)相加結(jié)果為-14D,顯然是錯誤的。,35,1.溢出的產(chǎn)生(續(xù)),例6:設(shè):X=-1011B=-11D,Y=-111B=-7D 則 X補=1,0101 Y補=1,1001 1,0 1 0 1X補 + 1,1 0 0 1Y補 0,1 1 1 0X+Y補 X+Y補=0,1110 X+Y=1110B=14D 兩負數(shù)相加結(jié)果為

15、14D,顯然也是錯誤的。,36,1.溢出的產(chǎn)生(續(xù)),字長為n+1位的定點整數(shù)(其中一位為符號位),采用補碼表示,當(dāng)運算結(jié)果大于2n-1或小于-2n時,就產(chǎn)生溢出。 設(shè)參加運算的兩數(shù)為X、Y,做加法運算。 若X、Y異號,實際上是做兩數(shù)相減,所以不會溢出。 若X、Y同號,運算結(jié)果為正且大于所能表示的最大正數(shù)或運算結(jié)果為負且小于所能表示的最小負數(shù)(絕對值最大的負數(shù))時,產(chǎn)生溢出。將兩正數(shù)相加產(chǎn)生的溢出稱為正溢;反之,兩負數(shù)相加產(chǎn)生的溢出稱為負溢。,37,2.溢出檢測方法,設(shè):被操作數(shù)為:X補=Xs,X1X2Xn 操作數(shù)為:Y補=Ys,Y1Y2Yn 其和(差)為:S補=Ss,S1S2Sn 采用一個符

16、號位 采用一個符號位檢測溢出時,當(dāng)Xs=Ys=0,Ss=1時,產(chǎn)生正溢;當(dāng)Xs=Ys=1,Ss=0時,產(chǎn)生負溢。 溢出判斷條件為 溢出= Ss+Xs Ys,38,2.溢出檢測方法(續(xù)),采用進位位判斷 兩數(shù)運算時,產(chǎn)生的進位為 Cs,C1C2Cn, 其中:Cs為符號位產(chǎn)生的進位,C1為最高數(shù)值位產(chǎn)生的進位。 兩正數(shù)相加,當(dāng)最高有效位產(chǎn)生進位(C1=1)而符號位不產(chǎn)生進位(Cs=0)時,發(fā)生正溢;兩負數(shù)相加,當(dāng)最高有效位不產(chǎn)生進位(C1=0)而符號位產(chǎn)生進位(Cs=1)時,發(fā)生負溢。故溢出條件為 溢出= C1+Cs =CsC1,39,2.溢出檢測方法(續(xù)),采用變形補碼(雙符號位補碼) 在雙符號

17、位的情況下,把左邊的符號位Ss1叫做真符,兩個符號位都作為數(shù)的一部分參加運算。這種編碼又稱為變形補碼。 雙符號位的含義如下: Ss1Ss2=00 結(jié)果為正數(shù),無溢出 Ss1Ss2=01 結(jié)果正溢 Ss1Ss2=10 結(jié)果負溢 Ss1Ss2=11 結(jié)果為負數(shù),無溢出 當(dāng)兩位符號位的值不一致時,表明產(chǎn)生溢出,溢出條件為 溢出=Ss1Ss2,40,4.2.4 補碼定點加減運算的實現(xiàn),要實現(xiàn)補碼加法,則需給出XF、YF和FX三個控制信號,同時打開門A、門B和門C,把寄存器X和寄存器Y的內(nèi)容送入加法器的兩個輸入端進行加法運算,并把結(jié)果送回,最后由打入脈沖CPX打入寄存器X。 減法與加法的不同之處在于,加

18、法使用YF控制信號,減法使用 F和1F控制信號,其余控制信號相同。,41,補碼加減運算的邏輯電路,圖4-8 補碼加減運算器框圖,1,42,在計算機中,實現(xiàn)乘除運算的方案通常有3種: 軟件實現(xiàn)。在低檔微機中無乘除運算指令,只能用乘法和除法子程序來實現(xiàn)乘除運算。 在原有實現(xiàn)加減運算的運算器基礎(chǔ)上增加一些邏輯線路,使乘除運算變換成加減和移位操作。在機器中設(shè)有乘除指令。 設(shè)置專用的乘、除法器,機器中設(shè)有相應(yīng)的乘除指令。 不管采用什么方案實現(xiàn)乘除法,基本原理是相同的。如果采用第種方案,則必然會涉及到移位操作。,4.3 帶符號數(shù)的移位和舍入操作,43,1.原碼的移位規(guī)則 不論正數(shù)還是負數(shù),在左移或右移時,

19、符號位均不變,空出位一律以“0”補入。 負數(shù)的原碼移位前后結(jié)果為: 左移:移位前有:1 X1 X2 Xn-1 Xn 移位后有:1 X2 X3 Xn 0 右移:移位前有:1 X1 X2 Xn-1 Xn 移位后有:1 0 X1 Xn-2 Xn-1,4.3.1 帶符號數(shù)的移位操作,44,2.補碼的移位規(guī)則,正數(shù) 符號位不變,不論左移或右移,空出位一律以“0”補入。 負數(shù) 符號位不變,左移后的空出位補“0”,右移后的空出位補“1”。 左移:移位前有:1 X1 X2 Xn-1 Xn 移位后有:1 X2 X3 Xn 0 右移:移位前有:1 X1 X2 Xn-1 Xn 移位后有:1 1 X1 Xn-2 Xn

20、-1,45,3.移位功能的實現(xiàn),在計算機中,通常移位操作由移位寄存器來實現(xiàn),但也有一些計算機不設(shè)置專門的移位寄存器,而在加法器的輸出端加一個移位器。移位器是由與門和或門組成的邏輯電路(實際是一個多路選擇器),可以實現(xiàn)直傳(不移位)、左斜一位送(左移一位)和右斜一位送(右移一位)的功能。,46,移位器邏輯電路,1,圖4-9 移位器邏輯電路,47,4.3.2 帶符號數(shù)的舍入操作,在算術(shù)右移時,由于受到硬件的限制,運算結(jié)果有可能需要舍去一定的尾數(shù),這會造成一些誤差。為了縮小誤差,就要進行舍入處理。假定經(jīng)過運算后的數(shù)共有p+q位,現(xiàn)僅允許保留前p位。常見的舍入方法有: 恒舍(切斷) 無論多余部分q位為

21、何代碼,一律舍去,保留部分的p位不作任何改變。,48,4.3.2 帶符號數(shù)的舍入操作(續(xù)),馮諾依曼舍入法 這種舍入法又稱為恒置1法,即不論多余部分q位為何代碼,都把保留部分p位的最低位置1。 下舍上入法 下舍上入就是0舍1入。用將要舍去的q位的最高位作為判斷標(biāo)志,以決定保留部分是否加1。如該位為0,則舍去整個q位(相當(dāng)于恒舍);如該位為1,則在保留的p位的最低位上加1。,49,4.3.2 帶符號數(shù)的舍入操作(續(xù)),查表舍入法 查表舍入法又稱ROM舍入法,因為它用ROM來存放舍入處理表,每次經(jīng)查表來讀得相應(yīng)的處理結(jié)果。通常,ROM表的容量為2K個單元,每個單元字長為K-1位。舍入處理表的內(nèi)容設(shè)

22、置一般采用的方法是:當(dāng)K位數(shù)據(jù)的高K-1位為全“1”時,讓那些單元按恒舍法填入K-1位全“1”,其余單元都按下舍上入法來填其內(nèi)容。,50,4.4 定點乘法運算,在計算機中,乘法運算大多數(shù)由累加與移位來實現(xiàn),也有些機器中具有由大規(guī)模集成電路制造的陣列乘法模塊。,51,4.4.1 原碼一位乘法,1.原碼一位乘法算法 原碼一位乘法是從手算演變而來的,即用兩個操作數(shù)的絕對值相乘,乘積的符號為兩操作數(shù)符號的異或值(同號為正,異號為負)。 乘積P=|X|Y| 符號Ps=XsYs 式中:Ps為乘積的符號,Xs和Ys為被乘數(shù)和乘數(shù)的符號。,52,1.原碼一位乘法算法(續(xù)),原碼一位乘法的規(guī)則: 參加運算的操作

23、數(shù)取其絕對值; 令乘數(shù)的最低位為判斷位,若為“1”,加被乘數(shù),若為“0”,不加被乘數(shù)(加0); 累加后的部分積以及乘數(shù)右移一位; 重復(fù)n次和 ; 符號位單獨處理,同號為正,異號為負。,53,1.原碼一位乘法算法(續(xù)),通常,乘法運算需要3個寄存器。被乘數(shù)存放在B寄存器中;乘數(shù)存放在C寄存器中;A寄存器用來存放部分積與最后乘積的高位部分,它的初值為0。運算結(jié)束后寄存器C中不再保留乘數(shù),改為存放乘積的低位部分。 例8:已知:X=0.1101,Y=-0.1011,求:XY。 |X|=00.1101B,|Y|=.1011C,0A,54,原碼一位乘法示例,A C 說明,0 0.0 0 0 0 1 0 1

24、 1,+|X| 0 0.1 1 0 1 C4=1,+|X|,0 0.1 1 0 1, 0 0.0 1 1 0 1 1 0 1 部分積右移一位,0 1.0 0 1 1,+|X| 0 0.1 1 0 1 C4=1,+|X|, 0 0.1 0 0 1 1 1 1 0 部分積右移一位,+0 0 0.0 0 0 0 C4=0,+0,0 0.1 0 0 1, 0 0.0 1 0 0 1 1 1 1 部分積右移一位,+|X| 0 0.1 1 0 1 C4=1,+|X|,0 1.0 0 0 1, 0 0.1 0 0 0 1 1 1 1 部分積右移一位,PS=XSYS=01=1 XY=-0.10001111,5

25、5,原碼一位乘法流程圖,56,2.原碼一位乘法運算的實現(xiàn),圖4-12中A、B是n+2位的寄存器,C是n位的寄存器,A寄存器和C寄存器是級聯(lián)在一起的,它們都具有右移一位的功能,在右移控制信號的作用下,A寄存器最低一位的值將移入C寄存器的最高位。C寄存器的最低位的值作為字級與門的控制信號,以控制加被乘數(shù)還是不加被乘數(shù)(即加0)。C寄存器中的乘數(shù)在逐次右移過程中將逐步丟失,取而代之的是乘積的低位部分。原碼一位乘法運算器電路中除去三個寄存器外,還需要一個n+2位的加法器、一個計數(shù)器、n+2個與門(控制是否加被乘數(shù))和一個異或門(處理符號位)。,57,4.4.2 補碼一位乘法,雖然原碼乘法比補碼乘法容易

26、實現(xiàn),但因為補碼加減法簡單,在以加減運算為主的通用機中操作數(shù)都用補碼表示,所以這類計算機在做乘法時常使用補碼乘法。 1.校正法 校正法是將X補和Y補按原碼規(guī)則運算,所得結(jié)果根據(jù)情況再加以校正,從而得到正確的XY補。補碼乘法的統(tǒng)一表達式: XY補=X補(0.Y1Y2Yn)+-X補Ys,58,2.比較法Booth乘法,遞推公式: Z0補=0 Z1補=2-1Z0補+(Yn+1-Yn)X補 Z2補=2-1Z1補+(Yn-Yn-1)X補 Zn補=2-1Zn-1補+(Y2-Y1)X補 XY補=Zn補+(Y1-Ys)X補 式中,Z0補為初始部分積,Z1補Zn補依次為各次求得的累加并右移之后的部分積。,59,

27、2.比較法Booth乘法 (續(xù)),Booth乘法規(guī)則: 參加運算的數(shù)用補碼表示; 符號位參加運算; 乘數(shù)最低位后面增加一位附加位Yn+1,其初值為0; 由于每求一次部分積要右移一位,所以乘數(shù)的最低兩位Yn、Yn+1的值決定了每次應(yīng)執(zhí)行的操作; 移位按補碼右移規(guī)則進行; 共需做n+1次累加,n次移位,第n+1次不移位。,60,Booth乘法運算操作,判斷位Yn Yn+1 操 作 0 0 原部分積右移一位 0 1 原部分積加X補后右移一位 1 0 原部分積加-X補后右移一位 1 1 原部分積右移一位,61,2.比較法Booth乘法 (續(xù)),由于符號位要參加運算,部分積累加時最高有效位產(chǎn)生的進位可能

28、會侵占符號位,故被乘數(shù)和部分積應(yīng)取雙符號位,而乘數(shù)只需要一位符號位。運算時仍需要有3個寄存器,各自的作用與原碼時相同,只不過存放的內(nèi)容均為補碼表示而已。 例9:已知X=-0.1101,Y=0.1011;求XY。 X補=11.0011B,Y補=0.1011C,0A -X補=00.1101,62,Booth乘法示例,A C 附加位 說明,0 0.0 0 0 0 0.1 0 1 1 0,+-X補 0 0.1 1 0 1 C4C5=10,+-X補,0 0.1 1 0 1, 0 0.0 1 1 0 1 0 1 0 1 1 部分積右移一位,+0 0 0.0 0 0 0 C4C5=11,+0,0 0.0 1

29、 1 0, 0 0.0 0 1 1 0 1 0 1 0 1 部分積右移一位,+X補 1 1.0 0 1 1 C4C5=01,+X補,1 1.0 1 1 0, 1 1.1 0 1 1 0 0 1 0 1 0 部分積右移一位,+-X補 0 0.1 1 0 1 C4C5=10,+-X補,0 0.1 0 0 0, 0 0.0 1 0 0 0 0 0 1 0 1 部分積右移一位,+X補 1 1.0 0 1 1 C4C5=01,+X補,1 1.0 1 1 1,XY補=1.01110001 XY=-0.10001111,63,Booth乘法流程圖,圖4-13 Booth乘法流程圖,64,3.Booth乘法運

30、算的實現(xiàn),各器件的作用與原碼一位乘法相同,A、B寄存器長n+2位,C寄存器長n+1位,還需一個n+2位的加法器、n+2個與或門和一個計數(shù)器。由C寄存器的最低兩位CnCn+1來控制是加/減被乘數(shù)還是加0,當(dāng)CnCn+1=01時,加被乘數(shù),即加B寄存器的內(nèi)容;CnCn+1=10時,減被乘數(shù),即加上B寄存器中內(nèi)容的反,并在加法器的最低位加1;CnCn+1=00或11時,不加也不減(加0)。由于符號位參與運算,所以不需要專門處理符號位的異或門。,65,4.4.3 補碼兩位乘法,為了提高乘法的執(zhí)行速度,可以選用兩位乘法的方案。所謂兩位乘法,就是每次處理乘數(shù)中的兩位,從而使乘法的速度提高了一倍。 根據(jù)Bo

31、oth乘法方便地推導(dǎo)出補碼兩位乘法,即把補碼兩位乘理解為將Booth乘法的兩次合并為一次來做。,66,補碼兩位乘法操作,Yn-1YnYn+1 0 0 0 +0,右移2位 0 0 1 +X補,右移2位 0 1 0 +X補,右移2位 0 1 1 +2X補,右移2位 1 0 0 +2-X補,右移2位 1 0 1 +-X補,右移2位 1 1 0 +-X補,右移2位 1 1 1 +0,右移2位,67,4.4.3 補碼兩位乘法(續(xù)),被乘數(shù)和部分積取3符號位,當(dāng)乘數(shù)的數(shù)值位n為偶數(shù)時,乘數(shù)取兩符號位,共需作 +1次累加, 次移位(最后一次不移位);當(dāng)n為奇數(shù)時,乘數(shù)只需一個符號位,共需 次累加和移位,但最

32、后一次僅移一位。 例10:已知:X=0.0110011,Y=-0.0110010,求:XY。 X補=000.0110011B, Y補=1.1001110C,0A 2X補=000.1100110, -X補=111.1001101,2-X補=111.0011010,68,補碼兩位乘法示例,A C 附加位,+2-X補 1 1 1.0 0 1 1 0 1 0,0 0 0.0 0 0 0 0 0 0 1.1 0 0 1 1 1 0 0,1 1 1.0 0 1 1 0 1 0,2 1 1 1.1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1,+0 0 0 0.0 0 0 0 0 0 0,1

33、1 1.1 1 0 0 1 1 0,2 1 1 1.1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1,+ X補 0 0 0.0 1 1 0 0 1 1,0 0 0.0 1 0 1 1 0 0,2 0 0 0.0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0,+ -X補 1 1 1.1 0 0 1 1 0 1,1 1 1.1 0 1 1 0 0 0,1 1 1 1.1 1 0 1 1 0 0 0 0 0 1 0 1 0 1 1,XY補1.11011000001010 XY-0.00100111110110,69,4.5 定點除法運算,除法是乘法的逆運算,與乘法運算的處

34、理思想相似,可以將n位除轉(zhuǎn)化成若干次“減法移位”,也有些計算機具有由大規(guī)模集成電路制造的陣列除法模塊。,70,4.5.1 原碼除法運算,1.原碼比較法和恢復(fù)余數(shù)法 比較法 比較法類似于手工運算,只是為了便于機器操作,將除數(shù)右移改為部分余數(shù)左移,每一位的上商直接寫到寄存器的最低位。設(shè)A寄存器中存放被除數(shù)(或部分余數(shù)),B寄存器中存放除數(shù),C 寄存器用來存放商Q,若AB,則上商1,并減除數(shù);若AB,則上商0。比較法需要設(shè)置比較線路,從而增加了硬件的代價。,71,比較過程的流程圖,圖4-16(a) 比較過程流程,72,1.原碼比較法和恢復(fù)余數(shù)法(續(xù)),恢復(fù)余數(shù)法 恢復(fù)余數(shù)法是直接作減法試探方法,不管

35、被除數(shù)(或部分余數(shù))減除數(shù)是否夠減,都一律先做減法。若部分余數(shù)為正,表示夠減,該位商上“1”;若部分余數(shù)為負,表示不夠減,該位商上“0”,并要恢復(fù)余數(shù)。,73,恢復(fù)余數(shù)過程的流程圖,圖4-16(b) 恢復(fù)余數(shù)過程流程,74,1.原碼比較法和恢復(fù)余數(shù)法(續(xù)),由于部分余數(shù)的正、負是根據(jù)不同的操作數(shù)組合隨機出現(xiàn)的,恢復(fù)除數(shù)法會使得除法運算的實際操作次數(shù)不固定,從而導(dǎo)致控制電路比較復(fù)雜。而且在恢復(fù)余數(shù)時,要多作一次加法,降低了除法的執(zhí)行速度。因此,原碼恢復(fù)余數(shù)法在計算機中一般很少采用。,75,2.原碼不恢復(fù)余數(shù)法(原碼加減交替法),原碼不恢復(fù)余數(shù)法是對恢復(fù)余數(shù)法的一種改進,它減少了浪費的加法時間,且

36、運算的次數(shù)固定,故被廣泛采用。 在恢復(fù)余數(shù)法中,若第i-1次求商的部分余數(shù)為ri-1,則第i次求商操作為:ri=2ri-1-Y, 若夠減,部分余數(shù)ri=2ri-1-Y0,商1。 若不夠減,部分余數(shù)ri=2ri-1-Y0,商0,恢復(fù)余數(shù)后,ri=ri+Y=2ri-1,然后再左移一位,進行第i+1次操作: ri+1=2ri-Y=2(r i+Y)-Y=2ri+2Y-Y=2ri+Y,76,2.原碼不恢復(fù)余數(shù)法(續(xù)),原碼不恢復(fù)余數(shù)除法由下面的通式表示: ri+1=2ri+(1-2Qi)Y 式中Qi為第i次所得的商,若部分余數(shù)為正,則Qi=1,部分余數(shù)左移一位,下一次繼續(xù)減除數(shù);若部分余數(shù)為負,則Qi=

37、0,部分余數(shù)左移一位,下一次加除數(shù)。由于加減運算交替地進行,故稱為原碼加減交替法。,77,2.原碼不恢復(fù)余數(shù)法(續(xù)),除法運算需要3個寄存器。A和B寄存器分別用來存放被除數(shù)和除數(shù),C寄存器用來存放商,它的初值為0。運算過程中A寄存器的內(nèi)容為部分余數(shù),它將不斷地變化,最后剩下的是擴大了若干倍的余數(shù),只有將它乘上2-n才是真正的余數(shù)。 例12:已知:X=-0.10101,Y=0.11110,求:XY。 |X|=00.10101A,|Y|=00.11110B,0C |Y|變補=11.00010,78,原碼不恢復(fù)余數(shù)除法示例,A C 說明,0 0.1 0 1 0 1 0.0 0 0 0 0,+|Y|變

38、補 1 1.0 0 0 1 0 -|Y|,1 1.1 0 1 1 1 0.0 0 0 0 0 余數(shù)為負,商0, 1 1.0 1 1 1 0 左移一位,+|Y| 0 0.1 1 1 1 0 +|Y|,0 0.0 1 1 0 0 0.0 0 0 0 1 余數(shù)為正,商1, 0 0.1 1 0 0 0 左移一位,+|Y|變補 1 1.0 0 0 1 0 -|Y|,1 1.1 1 0 1 0 0.0 0 0 1 0 余數(shù)為負,商0, 1 1.1 0 1 0 0 左移一位,+|Y| 0 0.1 1 1 1 0 +|Y|,0 0.1 0 0 1 0 0.0 0 1 0 1 余數(shù)為正,商1, 0 1.0 0

39、1 0 0 左移一位,+|Y|變補 1 1.0 0 0 1 0 -|Y|,0 0.0 0 1 1 0 0.0 1 0 1 1 余數(shù)為正,商1, 0 0.0 1 1 0 0 左移一位,+|Y|變補 1 1.0 0 0 1 0 -|Y|,1 1.0 1 1 1 0 0.1 0 1 1 0 余數(shù)為負,商0,+|Y| 0 0.1 1 1 1 0 恢復(fù)余數(shù),+|Y|,0 0.0 1 1 0 0,79,原碼不恢復(fù)余數(shù)除法示例(續(xù)),經(jīng)過原碼不恢復(fù)余數(shù)除法,有: 商=0.10110 余數(shù)=0.011002-5 XY=-(0.10110+ ),0.011002-5,0.11110,80,原碼加減交替除法流程圖

40、,圖4-17 原碼加減交替除法流程圖,81,2.原碼不恢復(fù)余數(shù)法(續(xù)),在定點除法運算時,為了防止溢出,要求被除數(shù)的絕對值小于除數(shù)的絕對值,|X|Y|(|X|=|Y|除外),且除數(shù)不能為0。因此第一次減除數(shù)肯定是不夠減的,如果我們采用先移位后減除數(shù)的方法,得到的結(jié)果也是相同的。另外,在原碼加減交替法中,當(dāng)最終余數(shù)為負數(shù)時,必須恢復(fù)一次余數(shù),使之變?yōu)檎鄶?shù),注意此時不需要再左移了。,82,3.原碼加減交替除法的實現(xiàn),圖4-18中A、B寄存器長n+2位,C寄存器長n+1位,還需一個n+2位的加法器、n+2個與或門、一個計數(shù)器和一個異或門。應(yīng)當(dāng)注意,A寄存器和C寄存器是級聯(lián)在一起的,它們都具有左移一

41、位的功能,在左移控制信號的作用下,C寄存器最高位的值將移入A寄存器的最低位。A寄存器中的初值是被除數(shù),但在運算過程中將變?yōu)椴糠钟鄶?shù)。C寄存器的最低位用來保存每次運算得到的商值,此商值同時也作為下一次操作是做加法還是做減法的控制信號。,83,4.5.2 補碼除法運算,1.夠減的判斷 參加運算的兩個數(shù)符號任意,當(dāng)被除數(shù)(或部分余數(shù))的絕對值大于或等于除數(shù)的絕對值時,稱為夠減;反之稱為不夠減。當(dāng)兩數(shù)同號時,實際應(yīng)作減法;兩數(shù)異號時,實際應(yīng)作加法。 判斷的方法和結(jié)果如下:當(dāng)被除數(shù)(或部分余數(shù))與除數(shù)同號時,如果得到的新部分余數(shù)與除數(shù)同號,表示夠減,否則為不夠減;當(dāng)被除數(shù)(或部分余數(shù))與除數(shù)異號時,如果

42、得到的新部分余數(shù)與除數(shù)異號,表示夠減,否則為不夠減。,84,2.上商規(guī)則,補碼除法運算的商也是用補碼表示的,上商的規(guī)則是:如果X補和Y補同號,則商為正數(shù),夠減時上商“1”,不夠減時上商“0”;如果X補和Y補異號,則商為負數(shù),夠減時上商“0”,不夠減時上商“1”。 補碼的上商規(guī)則可歸結(jié)為: 部分余數(shù)ri補和除數(shù)Y補同號,商上“1”,反之,商上“0”。,85,3.商符的確定,商符是在求商的過程中自動形成的,按補碼上商規(guī)則,第一次得出的商,就是實際應(yīng)得的商符。為了防止溢出,必須有|X|Y|,所以第一次肯定不夠減。當(dāng)被除數(shù)與除數(shù)同號時,部分余數(shù)與除數(shù)必然異號,商上“0”,恰好與商符一致;當(dāng)被除數(shù)與除數(shù)

43、異號,部分余數(shù)與除數(shù)必然同號,商上“1”,也恰好就是商的符號。,86,4.求新部分余數(shù),求新部分余數(shù)ri+1補的通式如下: ri+1補=2ri補+(1-2Qi)Y補 Qi表示第i步的商。若商上“1”,下一步操作為部分余數(shù)左移一位,減去除數(shù);若商上“0”,下一步操作為部分余數(shù)左移一位,加上除數(shù)。 5.末位恒置1 商的最末一位恒置為“1”,運算的最大誤差為2-n。此法操作簡單,易于實現(xiàn)。,87,補碼加減交替除法規(guī)則,88,補碼加減交替除法示例,例13:已知X=0.1000,Y=-0.1010; 求XY。 X補=00.1000A, Y補=11.0110B,0C -Y補=00.1010,89,補碼加減

44、交替除法示例(續(xù)),A C 說明,0 0.1 0 0 0 0.0 0 0 0,+Y補 1 1.0 1 1 0 X補、Y補異號,+Y補, 1 1.1 1 0 0 左移一位,+-Y補 0 0.1 0 1 0 +-Y補,0 0.0 1 1 0 0.0 0 1 0 ri補、Y補異號,商0, 0 0.1 1 0 0 左移一位,+Y補 1 1.0 1 1 0 +Y補,0 0.0 0 1 0 0.0 1 0 0 ri補、Y補異號,商0,+Y補 1 1.0 1 1 0 +Y補,1 1.1 0 1 0 0.1 0 0 1 ri補、Y補同號,商1, 1 1.0 1 0 0 左移一位,+-Y補 0 0.1 0 1

45、0 +-Y補,1 1.1 1 1 0 1.0 0 1 1 末位恒置1,1 1.1 1 1 0 0.0 0 0 1 ri補、Y補同號,商1, 0 0.0 1 0 0 左移一位,90,補碼加減交替除法示例(續(xù)),商補=1.0011 余數(shù)補=1.11102-4,商=-0.1101 余數(shù)=-0.00102-4,91,補碼加減交替除法流程圖,圖4-19 補碼加減交替除法流程圖,92,4.6 規(guī)格化浮點運算,第2章中已經(jīng)討論了浮點數(shù)的表示方法,這里將進一步討論規(guī)格化浮點數(shù)的四則運算問題,其中尾數(shù)的基值r=2。,93,4.6.1 浮點加減運算,設(shè)兩個非0的規(guī)格化浮點數(shù)分別為: A=MA B=MB 規(guī)格化浮點

46、數(shù)A、B加減運算通式為: AB=(MA,EA)(MB,EB) =,94,1.浮點數(shù)加減運算步驟,對階 兩個浮點數(shù)相加或相減,首先要把小數(shù)點的位置對齊,而浮點數(shù)的小數(shù)點的實際位置取決于階碼的大小,因此,對齊兩數(shù)的小數(shù)點,就是使兩數(shù)的階碼相等,這個過程稱為對階。 要對階,首先應(yīng)求出兩數(shù)階碼EA和EB之差E=EA-EB 若E=0,表示兩數(shù)階碼相等,即EA=EB;若E0,表示EAEB;若E0,表示EAEB。,95,1.浮點數(shù)加減運算步驟(續(xù)),當(dāng)EAEB時,要通過尾數(shù)的移位來改變EA或EB。對階的規(guī)則是:小階向大階看齊。要使小階的階碼增大,則相應(yīng)的尾數(shù)右移,直到兩數(shù)的階碼相等為止。每右移一位,階碼加1

47、。 EAEB,則MB右移。每右移一位,EB+1EB,直至EA=EB為止。 EAEB,則MA右移。每右移一位,EA+1EA,直至EA=EB為止。 尾數(shù)右移后,應(yīng)對尾數(shù)進行舍入。,96,1.浮點數(shù)加減運算步驟(續(xù)),尾數(shù)加/減 對階之后,就可以進行尾數(shù)加/減,即:MAMBMC 其算法與定點加/減法相同。 尾數(shù)結(jié)果規(guī)格化 尾數(shù)加/減運算之后得到的數(shù)可能不是規(guī)格化數(shù),為了增加有效數(shù)字的位數(shù),提高運算精度,必須進行結(jié)果規(guī)格化操作。,97,1.浮點數(shù)加減運算步驟(續(xù)),尾數(shù)結(jié)果規(guī)格化 |M|1 設(shè)尾數(shù)用雙符號位補碼表示,經(jīng)過加/減運算之后,可能出現(xiàn)以下6種情況,即: 00.1 x x x 11.0 x x

48、 x 00.0 x x x 11.1 x x x 01.x x x x 10.x x x x,98,1.浮點數(shù)加減運算步驟(續(xù)),第和種情況,已是規(guī)格化數(shù)。 第和種情況需要使尾數(shù)左移以實現(xiàn)規(guī)格化,這個過程稱為左規(guī)。尾數(shù)每左移一位,階碼相應(yīng)減1(EC-1EC),直至成為規(guī)格化數(shù)為止。 左規(guī)= +Cs1 Cs2 C1 左規(guī)可以進行多次。式中Cs1、Cs2表示尾數(shù)MC的兩個符號位,C1為MC的最高數(shù)值位。,99,1.浮點數(shù)加減運算步驟(續(xù)),第和種情況在在定點加減運算中稱為溢出;但浮點加減運算中,只表明此時尾數(shù)的絕對值大于1,而并非真正的溢出。這種情況應(yīng)將尾數(shù)右移以實現(xiàn)規(guī)格化。這個過程稱為右規(guī)。尾數(shù)

49、每右移一位,階碼相應(yīng)加1(EC+1EC)。 右規(guī)=Cs1Cs2 右規(guī)最多只有一次。,100,1.浮點數(shù)加減運算步驟(續(xù)),舍入 最簡單的舍入方法是恒舍法,即無條件的丟掉正常尾數(shù)最低位之后的全部數(shù)值。 溢出判斷 當(dāng)尾數(shù)右規(guī)后,根據(jù)階碼來判斷浮點運算結(jié)果是否溢出。 EC補=01, x x x x,表示上溢。此時,浮點數(shù)真正溢出,機器需停止運算,做溢出中斷處理。 EC補=10, x x x x,表示下溢。浮點數(shù)值趨于零,機器不做溢出處理,而是按機器零處理。,101,2.浮點數(shù)加減運算舉例,有兩浮點數(shù)為 A=0.1011102-01 B=-(0.101011)2-10 假設(shè)這兩數(shù)的格式:階碼4位,用移

50、碼(偏置值為23)表示;尾數(shù)8位,用補碼表示,包含一位符號位,即 階碼 尾數(shù) A浮=0111;0.1011100 B浮=0110;1.0101010,102,2.浮點數(shù)加減運算舉例(續(xù)), 對階 求階差:E=EA-EB=-1-(-2)=1 E=1,表示EAEB。按對階規(guī)則,將MB右移一位,EB+1EB,得: B浮=0111;1.1010101 尾數(shù)求和 00.1011100 + 11.1010101 00.0110001,103,2.浮點數(shù)加減運算舉例(續(xù)),尾數(shù)結(jié)果規(guī)格化 由于結(jié)果的尾數(shù)是非規(guī)格化的數(shù),故應(yīng)左規(guī)。尾數(shù)每左移一位,階碼減1,直至尾數(shù)成為規(guī)格化數(shù)為止。最后結(jié)果為 A+B浮=011

51、0;0.110001 即 A+B =(0.110001)2-10 未發(fā)生溢出,104,4.6.2 浮點乘除運算,設(shè)兩個非0的規(guī)格化浮點數(shù)分別為 A=MA B=MB 規(guī)格化浮點數(shù)A、B乘除運算通式為: (MA,EA)(MB,EB)=(MAMB,EA+EB) (MA,EA)(MB,EB)=(MAMB,EA-EB),105,1.乘法步驟,兩浮點數(shù)相乘,其乘積的階碼應(yīng)為相乘兩數(shù)的階碼之和,其乘積的尾數(shù)應(yīng)為相乘兩數(shù)的尾數(shù)之積。即: AB=(MAMB) 階碼相加 兩個浮點數(shù)的階碼相加,如果階碼用補碼表示,無須校正;當(dāng)階碼用偏置值為2n的移碼表示時,階碼相加后要減去一個偏移量2n。,106,1.乘法步驟(續(xù)

52、),因為EA移=2n+EA,EB移=2n+EB, EA+EB移=2n+(EA+EB) 而EA移+EB移=2n+EA+2n+EB 所以EA+EB移=EA移+EB移-2n 顯然,此時階碼和中多余了一個偏置量2n,應(yīng)將它減去。另外,階碼相加后有可能產(chǎn)生溢出,此時應(yīng)另作處理。,107,1.乘法步驟(續(xù)),尾數(shù)相乘 若MA、MB都不為0,則可進行尾數(shù)乘法,算法與定點數(shù)乘法算法相同。 尾數(shù)結(jié)果規(guī)格化 由于A、B均是規(guī)格化數(shù),所以尾數(shù)相乘后的結(jié)果一定落在下列范圍內(nèi): |MAMB|1 當(dāng) |MAMB|1時,乘積已是規(guī)格化數(shù),無須再進行規(guī)格化操作;當(dāng) |MAMB| 時,則需要左規(guī)一次。左規(guī)時調(diào)整階碼后如果發(fā)生階

53、碼下溢,則做機器零處理。,108,2.除法步驟,兩浮點數(shù)相除,其商的階碼應(yīng)為相除兩數(shù)的階碼之差,其商的尾數(shù)應(yīng)為相除兩數(shù)的尾數(shù)之商。即: AB=(MAMB) 尾數(shù)調(diào)整 為了保證商的尾數(shù)是一個定點小數(shù),首先需要檢測|MA|MB|。如果不小于,則MA右移一位,EA+1EA,稱為尾數(shù)調(diào)整。因為A、B都是規(guī)格化數(shù),所以最多調(diào)整一次。,109,2.除法步驟(續(xù)),階碼相減 兩浮點數(shù)的階碼相減,如果階碼用補碼表示,階碼相減之后無須校正;當(dāng)階碼用偏置值為2n的移碼表示時,階碼相減后要加上一個偏移量2n。階碼相減后,如有溢出,應(yīng)另作處理。,110,2.除法步驟(續(xù)),尾數(shù)相除 若MA、MB都不為0,則可進行尾數(shù)

54、除法。尾數(shù)除法的算法與前述定點數(shù)除法算法相同。因為開始時已進行了尾數(shù)調(diào)整,所以運算結(jié)果一定落在規(guī)格化范圍內(nèi),即 |MAMB|1,111,4.6.3 浮點運算器的實現(xiàn),浮點運算的階碼只有加減運算,尾數(shù)則有加、減、乘、除四種運算??梢姼↑c運算器主要由兩個定點運算部件組成,一個是階碼運算部件,用來完成階碼加、減,以及控制對階時小階的尾數(shù)右移次數(shù)和規(guī)格化時對階碼的調(diào)整;另一個是尾數(shù)運算部件,用來完成尾數(shù)的四則運算以及判斷尾數(shù)是否已規(guī)格化。此外,還需要有溢出判斷電路等。 現(xiàn)代計算機可把浮點運算部件做成任選件,或稱為協(xié)處理器。所謂協(xié)處理器是因為它只能協(xié)助主處理器工作,不能單獨工作。,112,4.7 十進制

55、整數(shù)的加法運算,一些通用計算機中設(shè)有十進制數(shù)據(jù)表示,可以直接對十進制整數(shù)進行算術(shù)運算。下面討論十進制整數(shù)的加法運算和十進制加法器。,113,4.7.1 一位十進制加法運算,1.8421碼加法運算 8421碼的加法規(guī)則: 兩個十進制數(shù)的8421碼相加時,按“逢二進一”的原則進行; 當(dāng)和9,無需校正; 當(dāng)和9,則+6校正; 在做+6校正的同時,將產(chǎn)生向上一位的進位。,114,8421碼的校正關(guān)系,115,校正舉例,0101 5,+ 10008,1101,+ 0110 6,1 0011 13,1001 9,+ 10008,1 0001,+ 0110 6,1 0111 17,116,2.余3碼加法運算

56、,余3碼的加法規(guī)則: 兩個十進制數(shù)的余3碼相加,按“逢二進一”的原則進行; 若其和沒有進位,則減3(即+1101)校正; 若其和有進位,則加3(即+0011)校正。,117,余3碼的校正關(guān)系,118,校正舉例,0110 3,+ 10005,1110,+ 1101 無進位,-3,+1101,1011 8,1001 6,+ 10005,1 0001,+ 0011 有進位,+3,1 0100 11,119,4.7.2 十進制加法器,1.一位8421碼加法器 校正函數(shù)=C4+S4S3+S4S2 向上一位的進位C4=校正函數(shù),120,一位8421碼加法器,圖4-21 一位8421碼加法器,1,121,2.一位余3碼加法器,C4=0,-3校正;C4=1,+3校正。 向上一位的進位C4=C4,122,一位余3碼加法器,圖4-22 一位余3碼加法器,123,4.7.3 多位十進制加法,對于多位十進制數(shù)加法可采用多個BCD碼加法器,每個BCD碼加法器就是前述的一個一位十進制加法器,可執(zhí)行兩個一位BCD數(shù)的加法。若n位BCD數(shù)相加,由從低位至高位采用行波式串行進位的n位十進制加法器完成。,124,4.8 邏輯運算與實現(xiàn),計算機在解題過程中,除了要做大量的算術(shù)運

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論