第2章 運(yùn)算方法與運(yùn)算器_第1頁
第2章 運(yùn)算方法與運(yùn)算器_第2頁
第2章 運(yùn)算方法與運(yùn)算器_第3頁
第2章 運(yùn)算方法與運(yùn)算器_第4頁
第2章 運(yùn)算方法與運(yùn)算器_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、本章首先講述數(shù)據(jù)與文字的表示方法,然后講述定點(diǎn)運(yùn)算方法、本章首先講述數(shù)據(jù)與文字的表示方法,然后講述定點(diǎn)運(yùn)算方法、定點(diǎn)運(yùn)算器的組成,最后講述浮點(diǎn)運(yùn)算方法及浮點(diǎn)運(yùn)算器的組定點(diǎn)運(yùn)算器的組成,最后講述浮點(diǎn)運(yùn)算方法及浮點(diǎn)運(yùn)算器的組成。成。本章包括以下六小結(jié)內(nèi)容:本章包括以下六小結(jié)內(nèi)容: 2.1 數(shù)據(jù)與文字的表示方法數(shù)據(jù)與文字的表示方法 2.2 定點(diǎn)加法、減法運(yùn)算定點(diǎn)加法、減法運(yùn)算 2.3 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算 2.4 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算 2.5 定點(diǎn)運(yùn)算器的組成定點(diǎn)運(yùn)算器的組成 2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 計(jì)算機(jī)中常用的數(shù)據(jù)表示格式有兩種計(jì)算機(jī)中常用的數(shù)據(jù)表示格式

2、有兩種: 定點(diǎn)格式、浮點(diǎn)格式。定點(diǎn)格式、浮點(diǎn)格式。定點(diǎn)表示法:定點(diǎn)表示法:約定機(jī)器中數(shù)據(jù)的小數(shù)點(diǎn)位置是固定不變的。約定機(jī)器中數(shù)據(jù)的小數(shù)點(diǎn)位置是固定不變的。定點(diǎn)數(shù)定點(diǎn)數(shù)x0 x1x2xn 在定點(diǎn)機(jī)中表示如下:在定點(diǎn)機(jī)中表示如下:(0: 符號(hào)位,符號(hào)位,0代表正號(hào),代表正號(hào),1代表負(fù)號(hào)代表負(fù)號(hào))約定為純小數(shù)時(shí),其表示范圍為約定為純小數(shù)時(shí),其表示范圍為:0|12n 約定為純整數(shù)時(shí),表示范圍為約定為純整數(shù)時(shí),表示范圍為:0|2n -1浮點(diǎn)表示法浮點(diǎn)表示法: 把一個(gè)數(shù)的有效數(shù)字和數(shù)的范圍在計(jì)算機(jī)的一個(gè)把一個(gè)數(shù)的有效數(shù)字和數(shù)的范圍在計(jì)算機(jī)的一個(gè)存儲(chǔ)單元中分別予以表示,這種把數(shù)的范圍和精度分別表示的存儲(chǔ)單元

3、中分別予以表示,這種把數(shù)的范圍和精度分別表示的方法,數(shù)的小數(shù)點(diǎn)位置隨比例因子的不同而在一定范圍內(nèi)自由方法,數(shù)的小數(shù)點(diǎn)位置隨比例因子的不同而在一定范圍內(nèi)自由浮動(dòng),故稱為浮點(diǎn)數(shù)。浮動(dòng),故稱為浮點(diǎn)數(shù)。 在計(jì)算機(jī)中一個(gè)任意進(jìn)制數(shù)在計(jì)算機(jī)中一個(gè)任意進(jìn)制數(shù) 可以寫成可以寫成 :e.m m :尾數(shù),是一個(gè)純小數(shù)。:尾數(shù),是一個(gè)純小數(shù)。 e :浮點(diǎn)的指數(shù),是一個(gè)整數(shù)。:浮點(diǎn)的指數(shù),是一個(gè)整數(shù)。 R :基數(shù),對于二進(jìn)記數(shù)制的機(jī)器,常為:基數(shù),對于二進(jìn)記數(shù)制的機(jī)器,常為2,8或或16。一個(gè)機(jī)器浮點(diǎn)數(shù)由一個(gè)機(jī)器浮點(diǎn)數(shù)由階碼階碼和和尾數(shù)尾數(shù)及其及其符號(hào)位符號(hào)位組成組成 IEEE754標(biāo)準(zhǔn)(標(biāo)準(zhǔn)(32位)位):浮點(diǎn)數(shù)的

4、符號(hào)位,:浮點(diǎn)數(shù)的符號(hào)位,1 位,位,0表示正數(shù),表示正數(shù),1表示負(fù)數(shù)。表示負(fù)數(shù)。:尾數(shù),:尾數(shù),23位,用小數(shù)表示,小數(shù)點(diǎn)放在尾數(shù)域的最前面。位,用小數(shù)表示,小數(shù)點(diǎn)放在尾數(shù)域的最前面。:階碼,:階碼,8 位階符采用隱含方式,即采用移碼方式來表示正負(fù)指數(shù)。位階符采用隱含方式,即采用移碼方式來表示正負(fù)指數(shù)。l移碼方法對兩個(gè)指數(shù)大小的比較和對階操作都比較方便,因?yàn)殡A碼移碼方法對兩個(gè)指數(shù)大小的比較和對階操作都比較方便,因?yàn)殡A碼域值大者其指數(shù)值也大。域值大者其指數(shù)值也大。l采用這種方式時(shí),將浮點(diǎn)數(shù)的指數(shù)真值采用這種方式時(shí),將浮點(diǎn)數(shù)的指數(shù)真值e 變成階碼變成階碼 時(shí),應(yīng)將指數(shù)時(shí),應(yīng)將指數(shù) e 加上一個(gè)固

5、定的偏移值加上一個(gè)固定的偏移值127(01111111),即,即 e127. IEEE754標(biāo)準(zhǔn)(標(biāo)準(zhǔn)(64位)位)示例:按單精度示例:按單精度IEEE754 (32位)標(biāo)準(zhǔn)格式表示十進(jìn)制數(shù)位)標(biāo)準(zhǔn)格式表示十進(jìn)制數(shù)-0.75-0.75表示成表示成-3/4 即二進(jìn)制的即二進(jìn)制的-0.11 在在IEEE754 規(guī)格化表示規(guī)格化表示 為為 -1.12-1 根據(jù)根據(jù)IEEE單精度表示公式為單精度表示公式為 (-1)S1.M2 E -127所以這個(gè)數(shù)表示為所以這個(gè)數(shù)表示為 (-1)1 * 1.1 * 2(126-127) = (-1)1*(1+0.1000 0000 0000 0000 0000 000

6、)*2(126-127) = (-1)1*(1+0.1000 0000 0000 0000 0000 000)*2(126-127) 即即1 01111110 10000000000000000000000 十進(jìn)制數(shù)串的表示方法十進(jìn)制數(shù)串的表示方法:字符串形式字符串形式:一個(gè)字節(jié)存放一個(gè)十進(jìn)制的數(shù)位或符號(hào)位。:一個(gè)字節(jié)存放一個(gè)十進(jìn)制的數(shù)位或符號(hào)位。壓縮的十進(jìn)制數(shù)串形式壓縮的十進(jìn)制數(shù)串形式:一個(gè)字節(jié)存放兩個(gè)十進(jìn)制數(shù)位。:一個(gè)字節(jié)存放兩個(gè)十進(jìn)制數(shù)位。123C012D把符號(hào)位和數(shù)字位一起編碼來表示相應(yīng)的數(shù)的各種表示方法。把符號(hào)位和數(shù)字位一起編碼來表示相應(yīng)的數(shù)的各種表示方法。為了區(qū)別一般書寫表示的數(shù)和

7、機(jī)器中這些編碼表示的數(shù),通常為了區(qū)別一般書寫表示的數(shù)和機(jī)器中這些編碼表示的數(shù),通常將前者稱為將前者稱為真值真值,后者稱為,后者稱為機(jī)器數(shù)或機(jī)器碼機(jī)器數(shù)或機(jī)器碼。定點(diǎn)小數(shù)定點(diǎn)小數(shù)原碼表示法原碼表示法 :若若定點(diǎn)小數(shù)定點(diǎn)小數(shù)的原碼形式為的原碼形式為012n,原碼定義:,原碼定義:例如,例如,+0.1001,則,則 原原0.1001- 0.1001,則,則 原原1.1001 對于對于0,原碼有,原碼有“+0”、“-0”之分,故有兩種形式:之分,故有兩種形式:+0原原=0.000.0- 0原原=1.000.0 原原 10 11| 01定點(diǎn)整數(shù)定點(diǎn)整數(shù)原碼表示法原碼表示法 :若若定點(diǎn)整數(shù)定點(diǎn)整數(shù)的原碼形

8、式為的原碼形式為012n,原碼定義:,原碼定義:例如,例如,+1001,則,則 原原0 1001- 1001,則,則 原原1 1001 對于對于0,原碼有,原碼有“+0”、“-0”之分,故有兩種形式:之分,故有兩種形式:+0原原=0 000.0- 0原原=1 000.0 原原 2n0 2n2n| 02n補(bǔ)碼的概念補(bǔ)碼的概念假設(shè)現(xiàn)在的標(biāo)準(zhǔn)時(shí)間為假設(shè)現(xiàn)在的標(biāo)準(zhǔn)時(shí)間為 4 點(diǎn)點(diǎn); 表上時(shí)間表上時(shí)間: 7點(diǎn)點(diǎn)。兩種方法:兩種方法: 退退 7-4=3 格;格; 前撥前撥12-3=9格。格。4點(diǎn)正點(diǎn)正減減3和加和加9是等價(jià)的,是等價(jià)的,稱稱 9是是(-3)對對12的補(bǔ)碼,的補(bǔ)碼,即即: -3 +9(mod

9、 12)作用:變減法為加法作用:變減法為加法 7-3(mod 12)= 7+9(mod 12)定點(diǎn)小數(shù):包括符號(hào)位在內(nèi),其絕對值均小定點(diǎn)小數(shù):包括符號(hào)位在內(nèi),其絕對值均小2:求模求模2補(bǔ)碼。補(bǔ)碼。n位定點(diǎn)整數(shù):包括符號(hào)位在內(nèi),其絕對值均小位定點(diǎn)整數(shù):包括符號(hào)位在內(nèi),其絕對值均小2n+1 :求模求模2n+1補(bǔ)碼。補(bǔ)碼。定點(diǎn)小數(shù)定點(diǎn)小數(shù)補(bǔ)碼表示法補(bǔ)碼表示法 :若若定點(diǎn)小數(shù)定點(diǎn)小數(shù)的補(bǔ)碼形式為的補(bǔ)碼形式為01 n-1n ,補(bǔ)碼定義:,補(bǔ)碼定義:例如例如: x+0.1011,補(bǔ)補(bǔ)0.1011 x- 0.1011,補(bǔ)補(bǔ)10+10.0000-0.10111.0101對于對于0,補(bǔ)碼只有一種形式:,補(bǔ)碼只有

10、一種形式:+0補(bǔ)補(bǔ)= - 0補(bǔ)補(bǔ)=0.00.0 (mod 2)補(bǔ)補(bǔ) 10 2 2| 01定點(diǎn)整數(shù)定點(diǎn)整數(shù)補(bǔ)碼表示法補(bǔ)碼表示法 :若若定點(diǎn)整數(shù)定點(diǎn)整數(shù)的補(bǔ)碼形式為的補(bǔ)碼形式為nn-1 10,補(bǔ)碼定義:,補(bǔ)碼定義:例如,例如,+1001,則,則 補(bǔ)補(bǔ)0 1001- 1001,則,則 補(bǔ)補(bǔ)1 0111 對于對于0,補(bǔ)碼只有一種形式:,補(bǔ)碼只有一種形式: +0補(bǔ)補(bǔ)=- 0補(bǔ)補(bǔ)=0 000.0 (mod 2n+1) 補(bǔ)補(bǔ) 2n 0 2n+1 2n+1 | 0 2n反碼表示法反碼表示法 所謂反碼,就是二進(jìn)制的各位數(shù)碼所謂反碼,就是二進(jìn)制的各位數(shù)碼0變?yōu)樽優(yōu)?,1變?yōu)樽優(yōu)?。定點(diǎn)小數(shù)定點(diǎn)小數(shù)反碼表示法反碼表

11、示法 :若若定點(diǎn)小數(shù)定點(diǎn)小數(shù)的補(bǔ)碼形式為的補(bǔ)碼形式為01 n-1n ,反碼定義:,反碼定義:例如例如: x+0.1011,反反0.1011 x- 0.1011,反反1.1111-0.10111.0100對于對于0,反碼有,反碼有“+0”、“-0”之分,故有兩種形式:之分,故有兩種形式:+0反反=0.00.0- 0反反=1.11.1 反反 10 (2-2-n ) 01定點(diǎn)整數(shù)定點(diǎn)整數(shù)反碼表示法反碼表示法 :若若定點(diǎn)整數(shù)定點(diǎn)整數(shù)的反碼形式為的反碼形式為nn-1 10 ,反碼定義:,反碼定義:例如,例如,+1001,則,則 反反0 1001- 1001,則,則 反反1 0110 對于整數(shù)對于整數(shù)0,

12、反碼有,反碼有“+0”、“-0”之分,故有兩種形式:之分,故有兩種形式:+0反反=0 000.0- 0反反=1 111.1 反反 2n 0 (2n+11) 02n反碼與補(bǔ)碼的關(guān)系反碼與補(bǔ)碼的關(guān)系比較反碼與補(bǔ)碼的公式(定點(diǎn)小數(shù))比較反碼與補(bǔ)碼的公式(定點(diǎn)小數(shù)):反反(22n)補(bǔ)補(bǔ)2可得到可得到 補(bǔ)補(bǔ)反反2n通過反碼求補(bǔ)碼通過反碼求補(bǔ)碼:若求一個(gè)負(fù)數(shù)的補(bǔ)碼,其方法是符號(hào)位置若求一個(gè)負(fù)數(shù)的補(bǔ)碼,其方法是符號(hào)位置1,其余各位,其余各位 0 變變1, 1 變變 0(即按位取反),然后在最末位(即按位取反),然后在最末位(2-n)上加上加1。移碼表示法移碼表示法 移碼通常用于表示浮點(diǎn)數(shù)的階碼(移碼通常用于

13、表示浮點(diǎn)數(shù)的階碼(n位的整數(shù))。位的整數(shù))。定點(diǎn)整數(shù)定點(diǎn)整數(shù)移碼表示法移碼表示法 :若若定點(diǎn)整數(shù)定點(diǎn)整數(shù)的移碼形式為的移碼形式為nn-1 10 ,移碼定義:,移碼定義: 移移 2n 2n 2n例如,例如,+1001,則,則 移移1 1001- 1001,則,則 移移0 0111 參照:參照:+1001,則,則 補(bǔ)補(bǔ)0 1001 - 1001,則,則 補(bǔ)補(bǔ)1 0111 移碼和補(bǔ)碼間存在什么關(guān)系?移碼和補(bǔ)碼間存在什么關(guān)系?對于對于0,移碼只有一種形式:,移碼只有一種形式: 0移移=1 000.0 小結(jié):小結(jié):上述的數(shù)據(jù)四種機(jī)器表示法中,移碼表示法主要用于表示浮點(diǎn)上述的數(shù)據(jù)四種機(jī)器表示法中,移碼表示

14、法主要用于表示浮點(diǎn)數(shù)的階碼。由于補(bǔ)碼表示對加減法運(yùn)算十分方便,因此目前機(jī)數(shù)的階碼。由于補(bǔ)碼表示對加減法運(yùn)算十分方便,因此目前機(jī)器中廣泛采用補(bǔ)碼表示法。在這類機(jī)器中,數(shù)用補(bǔ)碼表示,補(bǔ)器中廣泛采用補(bǔ)碼表示法。在這類機(jī)器中,數(shù)用補(bǔ)碼表示,補(bǔ)碼存儲(chǔ),補(bǔ)碼運(yùn)算。也有些機(jī)器,用原碼進(jìn)行存儲(chǔ)和傳送,運(yùn)碼存儲(chǔ),補(bǔ)碼運(yùn)算。也有些機(jī)器,用原碼進(jìn)行存儲(chǔ)和傳送,運(yùn)算時(shí)改用補(bǔ)碼。有些機(jī)器,在做加減法時(shí)用補(bǔ)碼運(yùn)算,在做乘算時(shí)改用補(bǔ)碼。有些機(jī)器,在做加減法時(shí)用補(bǔ)碼運(yùn)算,在做乘除法時(shí)用原碼運(yùn)算。除法時(shí)用原碼運(yùn)算。字符的表示方法字符的表示方法 目前國際上普遍采用的字符系統(tǒng)是七單位的目前國際上普遍采用的字符系統(tǒng)是七單位的ASCI

15、I碼碼(美國美國國家信息交換標(biāo)準(zhǔn)字符碼國家信息交換標(biāo)準(zhǔn)字符碼),它包括它包括10個(gè)十進(jìn)制數(shù)碼個(gè)十進(jìn)制數(shù)碼,26個(gè)英個(gè)英文字母和一定數(shù)量的專用符號(hào)文字母和一定數(shù)量的專用符號(hào),如如$,%,等,等,共共128個(gè)個(gè)。因此二進(jìn)制編碼需因此二進(jìn)制編碼需7位,加一位偶校驗(yàn)位位,加一位偶校驗(yàn)位,共共8位一個(gè)字節(jié)。位一個(gè)字節(jié)。字符串字符串 字符串是指連續(xù)的一串字符字符串是指連續(xù)的一串字符,通常方式下,它們占用主存中通常方式下,它們占用主存中連續(xù)的連續(xù)的多個(gè)字節(jié),每個(gè)字節(jié)存一個(gè)字符。多個(gè)字節(jié),每個(gè)字節(jié)存一個(gè)字符。當(dāng)主存字由當(dāng)主存字由2個(gè)或個(gè)或4個(gè)字節(jié)組成時(shí)個(gè)字節(jié)組成時(shí),在同一個(gè)主存字中,既可在同一個(gè)主存字中,既可

16、按從低位字節(jié)向高位字節(jié)的順序存放字符串的內(nèi)容,也可按從低位字節(jié)向高位字節(jié)的順序存放字符串的內(nèi)容,也可按從高位字節(jié)向低位字節(jié)的次序順序存放字符串的內(nèi)容。按從高位字節(jié)向低位字節(jié)的次序順序存放字符串的內(nèi)容。漢字的漢字的輸入編碼輸入編碼 為了能直接使用西文標(biāo)準(zhǔn)鍵盤把漢字輸入到計(jì)算機(jī)為了能直接使用西文標(biāo)準(zhǔn)鍵盤把漢字輸入到計(jì)算機(jī),就必須為就必須為漢字設(shè)計(jì)相應(yīng)的輸入編碼方法。當(dāng)前采用的方法主要有以下三漢字設(shè)計(jì)相應(yīng)的輸入編碼方法。當(dāng)前采用的方法主要有以下三類類: 數(shù)字編碼數(shù)字編碼: 常用的是常用的是國標(biāo)區(qū)位碼國標(biāo)區(qū)位碼,用數(shù)字串代表一個(gè)漢字輸用數(shù)字串代表一個(gè)漢字輸入。區(qū)位碼是將國家標(biāo)準(zhǔn)局公布的入。區(qū)位碼是將國

17、家標(biāo)準(zhǔn)局公布的6763個(gè)兩級(jí)漢字分為個(gè)兩級(jí)漢字分為94個(gè)區(qū)個(gè)區(qū),每個(gè)區(qū)分每個(gè)區(qū)分94位位,實(shí)際上把漢字表示成二維數(shù)組實(shí)際上把漢字表示成二維數(shù)組,每個(gè)漢字每個(gè)漢字在數(shù)組中的下標(biāo)就是區(qū)位碼。區(qū)碼和位碼各兩位十進(jìn)制數(shù)在數(shù)組中的下標(biāo)就是區(qū)位碼。區(qū)碼和位碼各兩位十進(jìn)制數(shù)字字,因此輸入一個(gè)漢字需按鍵四次。因此輸入一個(gè)漢字需按鍵四次。拼音碼拼音碼: 拼音碼是以漢字拼音為基礎(chǔ)的輸入方法。使用簡單拼音碼是以漢字拼音為基礎(chǔ)的輸入方法。使用簡單方便,但漢字同音字太多方便,但漢字同音字太多,輸入重碼率很高輸入重碼率很高,同音字選擇影響同音字選擇影響了輸入速度。了輸入速度。字形編碼字形編碼: 字形編碼是用漢字的形狀來進(jìn)

18、行的編碼。把漢字字形編碼是用漢字的形狀來進(jìn)行的編碼。把漢字的筆劃部件用字母或數(shù)字進(jìn)行編碼的筆劃部件用字母或數(shù)字進(jìn)行編碼,按筆劃的順序依次輸入按筆劃的順序依次輸入,就能表示一個(gè)漢字。就能表示一個(gè)漢字。漢字內(nèi)碼漢字內(nèi)碼 漢字內(nèi)碼漢字內(nèi)碼是用于漢字信息的存儲(chǔ)、交換、檢索等操作的機(jī)是用于漢字信息的存儲(chǔ)、交換、檢索等操作的機(jī)內(nèi)代碼內(nèi)代碼,一般采用兩個(gè)字節(jié)表示。一般采用兩個(gè)字節(jié)表示。英文字符的機(jī)內(nèi)代碼是七位的英文字符的機(jī)內(nèi)代碼是七位的ASCII碼碼,當(dāng)用一個(gè)字節(jié)表示當(dāng)用一個(gè)字節(jié)表示時(shí)時(shí),最高位為最高位為“0”。為了與英文字符能相互區(qū)別。為了與英文字符能相互區(qū)別,漢字機(jī)內(nèi)代漢字機(jī)內(nèi)代碼中兩個(gè)字節(jié)的碼中兩個(gè)字

19、節(jié)的最高位均規(guī)定為最高位均規(guī)定為“1”。有些系統(tǒng)中字節(jié)的最高位用于奇偶校驗(yàn)位,這種情況下用有些系統(tǒng)中字節(jié)的最高位用于奇偶校驗(yàn)位,這種情況下用三個(gè)字節(jié)表示漢字內(nèi)碼。三個(gè)字節(jié)表示漢字內(nèi)碼。 漢字漢字字模碼字模碼 字模碼字模碼是用點(diǎn)陣表示的是用點(diǎn)陣表示的漢字字形代碼漢字字形代碼,是漢字的輸出形式。是漢字的輸出形式。漢字的輸入編碼、漢字內(nèi)碼、字模碼是計(jì)算機(jī)中用于輸入、漢字的輸入編碼、漢字內(nèi)碼、字模碼是計(jì)算機(jī)中用于輸入、內(nèi)部處理、輸出三種不同用途的編碼內(nèi)部處理、輸出三種不同用途的編碼,不要混為一談。不要混為一談。圖圖2.1漢字的字模點(diǎn)陣及編碼漢字的字模點(diǎn)陣及編碼為了防止計(jì)算機(jī)在處理信息過程中出現(xiàn)錯(cuò)誤,采

20、用專門的邏輯為了防止計(jì)算機(jī)在處理信息過程中出現(xiàn)錯(cuò)誤,采用專門的邏輯線路對信號(hào)進(jìn)行編碼以檢測錯(cuò)誤線路對信號(hào)進(jìn)行編碼以檢測錯(cuò)誤,甚至校正錯(cuò)誤。甚至校正錯(cuò)誤。通常的方法是通常的方法是,在每個(gè)字上添加一些校驗(yàn)位在每個(gè)字上添加一些校驗(yàn)位,用來確定字中出現(xiàn)用來確定字中出現(xiàn)錯(cuò)誤的位置。最簡單且應(yīng)用廣泛的檢錯(cuò)碼是采用一位校驗(yàn)位的錯(cuò)誤的位置。最簡單且應(yīng)用廣泛的檢錯(cuò)碼是采用一位校驗(yàn)位的奇校驗(yàn)或偶校驗(yàn)。奇校驗(yàn)或偶校驗(yàn)。 奇校驗(yàn)奇校驗(yàn)(包括校驗(yàn)位在內(nèi),有奇數(shù)個(gè)(包括校驗(yàn)位在內(nèi),有奇數(shù)個(gè)“1”)設(shè)設(shè)(01n1)是一個(gè)是一個(gè)n位字位字,則則奇校驗(yàn)位奇校驗(yàn)位定義為定義為:C0 1 n1 式中式中 代表按位加代表按位加, 當(dāng)

21、當(dāng)中包含有偶數(shù)個(gè)中包含有偶數(shù)個(gè)1時(shí)時(shí),C1。 偶校驗(yàn)偶校驗(yàn)(包括校驗(yàn)位在內(nèi),有偶數(shù)個(gè)(包括校驗(yàn)位在內(nèi),有偶數(shù)個(gè)“1”)設(shè)設(shè)(01n1)是一個(gè)是一個(gè)n位字位字,則則偶校驗(yàn)位偶校驗(yàn)位定義為定義為:C0 1 n1 式中式中 代表按位加代表按位加, 當(dāng)當(dāng)中包含有奇數(shù)個(gè)中包含有奇數(shù)個(gè)1時(shí)時(shí),C1。 奇、偶校驗(yàn)示例奇、偶校驗(yàn)示例最低一位為校驗(yàn)位最低一位為校驗(yàn)位,其余高其余高8位為數(shù)據(jù)位位為數(shù)據(jù)位數(shù)據(jù)數(shù)據(jù)偶校驗(yàn)編碼偶校驗(yàn)編碼奇校驗(yàn)編碼奇校驗(yàn)編碼1 0 1 0 1 0 1 00 1 0 1 0 1 0 00 0 0 0 0 0 0 00 1 1 1 1 1 1 11 1 1 1 1 1 1 11 0 1 0

22、1 0 1 0 00 1 0 1 0 1 0 0 10 0 0 0 0 0 0 0 00 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 01 0 1 0 1 0 1 0 10 1 0 1 0 1 0 0 00 0 0 0 0 0 0 0 10 1 1 1 1 1 1 1 01 1 1 1 1 1 1 1 1補(bǔ)碼加法的公式補(bǔ)碼加法的公式(定點(diǎn)小數(shù)):(定點(diǎn)小數(shù)):補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ) (mod 2)前提條件:前提條件:1, 1, 1, 1, 1 1。證明證明(針對:(針對:0,0 ) 補(bǔ)補(bǔ),補(bǔ)補(bǔ)2 補(bǔ)補(bǔ)補(bǔ)補(bǔ)22() 當(dāng)當(dāng)0: 2 () 2,進(jìn)位進(jìn)位2必丟失,又因必丟失,又因( () )

23、0, 故故補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)(mod 2)當(dāng)當(dāng)0: 2 () 2,又因又因( () )0, 故故補(bǔ)補(bǔ)補(bǔ)補(bǔ)2()補(bǔ)補(bǔ)(mod 2)補(bǔ)碼加法示例補(bǔ)碼加法示例例例8 0.1001, 0.0101,求求。解解: 補(bǔ)補(bǔ)0.1001補(bǔ)補(bǔ)0.0101 補(bǔ)補(bǔ)0.1110 例例9 0.1011, 0.0101,求求。解解: 補(bǔ)補(bǔ)0.1011補(bǔ)補(bǔ)1.1011補(bǔ)補(bǔ) 10.0110 任意兩數(shù)的補(bǔ)碼之和等于該兩數(shù)之和的補(bǔ)碼任意兩數(shù)的補(bǔ)碼之和等于該兩數(shù)之和的補(bǔ)碼.這是補(bǔ)碼加法的這是補(bǔ)碼加法的理論基礎(chǔ)理論基礎(chǔ),其結(jié)論也適用于定點(diǎn)整數(shù)其結(jié)論也適用于定點(diǎn)整數(shù)補(bǔ)碼加法的特點(diǎn)補(bǔ)碼加法的特點(diǎn),一是符號(hào)位要作為數(shù)的一部分一起參加運(yùn)算一是符號(hào)

24、位要作為數(shù)的一部分一起參加運(yùn)算,二是要在模二是要在模2的意義下相加的意義下相加,即超過即超過2的進(jìn)位要丟掉。的進(jìn)位要丟掉。補(bǔ)碼減法的公式補(bǔ)碼減法的公式補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ) 證明證明: 只要證明只要證明補(bǔ)補(bǔ)補(bǔ)補(bǔ),上式即得證。證明如下:上式即得證。證明如下:補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)(mod 2)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ) (1)補(bǔ)補(bǔ)()補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ) 補(bǔ)補(bǔ)補(bǔ)補(bǔ) (2)將式將式(1)與與(2)相加相加, ,得得補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ) 補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ) 補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)0故故 補(bǔ)補(bǔ)補(bǔ)補(bǔ) (mod 2) 證畢證畢 補(bǔ)碼減法公式另證:補(bǔ)碼減法公式另證:當(dāng)當(dāng) y0 時(shí):時(shí):( 0 )補(bǔ)補(bǔ) 2+(-y) 2 y補(bǔ)補(bǔ) y 2 y (mod

25、2)當(dāng)當(dāng) y0 時(shí):時(shí): ( 0 )補(bǔ)補(bǔ) y補(bǔ)補(bǔ) ( 2y ) 2 ( 2y ) (mod 2) y從從補(bǔ)補(bǔ)求求補(bǔ)補(bǔ)的法則的法則: 對對補(bǔ)補(bǔ)包括符號(hào)位包括符號(hào)位“求反且最末位加求反且最末位加1”,可得到可得到補(bǔ)補(bǔ)。寫成運(yùn)算表達(dá)式,則為寫成運(yùn)算表達(dá)式,則為:補(bǔ)補(bǔ)補(bǔ)補(bǔ)2n 其中,符號(hào)其中,符號(hào)表示對表示對補(bǔ)補(bǔ)作包括符號(hào)位在內(nèi)的求反操作,作包括符號(hào)位在內(nèi)的求反操作,+ +2 n表示最末位的表示最末位的1 證明(定點(diǎn)小數(shù)):證明(定點(diǎn)小數(shù)):補(bǔ)補(bǔ) 補(bǔ)補(bǔ) 2 補(bǔ)補(bǔ)(mod 2) 2 2n 補(bǔ)補(bǔ)2n (全(全“1”) 補(bǔ)補(bǔ)2n注:任一二進(jìn)制串減等長全注:任一二進(jìn)制串減等長全“1”,結(jié)果是該串的按位取反。,

26、結(jié)果是該串的按位取反。在定點(diǎn)小數(shù)機(jī)器中在定點(diǎn)小數(shù)機(jī)器中,數(shù)的表示范圍為數(shù)的表示范圍為|1. 在運(yùn)算過程中如出在運(yùn)算過程中如出現(xiàn)大于現(xiàn)大于1的現(xiàn)象的現(xiàn)象,稱為稱為“溢出溢出”。例例12 0.1011, , 0.1001,求求。解解:補(bǔ)補(bǔ)0.1011 補(bǔ)補(bǔ)0.1001 補(bǔ)補(bǔ)0.10110.1011 補(bǔ)補(bǔ)0.10010.1001 補(bǔ)補(bǔ)1.0100 1.0100 兩個(gè)正數(shù)相加的結(jié)果成為負(fù)數(shù)兩個(gè)正數(shù)相加的結(jié)果成為負(fù)數(shù), ,這顯然是錯(cuò)誤的。這顯然是錯(cuò)誤的。例例13 0.1101, , 0.1011,求求。 解解: 補(bǔ)補(bǔ)1.0011 1.0011 補(bǔ)補(bǔ)1.01011.0101 補(bǔ)補(bǔ) 1.00111.0011

27、 補(bǔ)補(bǔ)1.0101 1.0101 補(bǔ)補(bǔ)0.10000.1000兩個(gè)負(fù)數(shù)相加的結(jié)果成為正數(shù)兩個(gè)負(fù)數(shù)相加的結(jié)果成為正數(shù), ,這同樣是錯(cuò)誤的。這同樣是錯(cuò)誤的。 兩個(gè)正數(shù)相加兩個(gè)正數(shù)相加,結(jié)果大于機(jī)器所能表示的最大正數(shù)結(jié)果大于機(jī)器所能表示的最大正數(shù),稱為稱為上溢上溢。兩個(gè)負(fù)數(shù)相加兩個(gè)負(fù)數(shù)相加,結(jié)果小于機(jī)器所能表示的最小負(fù)數(shù)結(jié)果小于機(jī)器所能表示的最小負(fù)數(shù),稱為稱為下溢下溢。為了判斷為了判斷“溢出溢出”是否發(fā)生是否發(fā)生,可采用兩種檢測的方法。第一種可采用兩種檢測的方法。第一種方法是采用雙符號(hào)位法方法是采用雙符號(hào)位法,這稱為這稱為“變形補(bǔ)碼變形補(bǔ)碼”或或“模模4補(bǔ)碼補(bǔ)碼”,從從而可使模而可使模2補(bǔ)碼所能表示

28、的數(shù)的范圍擴(kuò)大一倍。補(bǔ)碼所能表示的數(shù)的范圍擴(kuò)大一倍。變形補(bǔ)碼定義為變形補(bǔ)碼定義為 :或用同余式表示為:或用同余式表示為:補(bǔ)補(bǔ)4(mod 4)變形補(bǔ)碼的加法公式同樣成立:變形補(bǔ)碼的加法公式同樣成立:補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ) (mod 4) 補(bǔ)補(bǔ) 204 02 采用變形補(bǔ)碼后,如果兩個(gè)數(shù)相加后,采用變形補(bǔ)碼后,如果兩個(gè)數(shù)相加后,其結(jié)果的符號(hào)位出現(xiàn)其結(jié)果的符號(hào)位出現(xiàn)“01”或或“10”兩種組合時(shí)兩種組合時(shí),表示發(fā)生溢出表示發(fā)生溢出。 例例14 0.1100, 0, 0.1000,求求。解解: 補(bǔ)補(bǔ)00.1100,補(bǔ)補(bǔ)00.1000 補(bǔ)補(bǔ) 00.110000.1100 補(bǔ)補(bǔ) 00.100000.1000 01.0

29、10001.0100兩個(gè)符號(hào)位出現(xiàn)兩個(gè)符號(hào)位出現(xiàn)“01”,”,表示已溢出表示已溢出, ,即結(jié)果大于即結(jié)果大于1。 例例1515 0.1100, 0.1100, -0.1000,-0.1000,求。求。 解解: 補(bǔ)補(bǔ)11.0100,11.0100, 補(bǔ)補(bǔ)11.100011.1000 補(bǔ)補(bǔ)11.010011.0100 補(bǔ)補(bǔ)11.100011.1000 10.110010.1100兩個(gè)符號(hào)位出現(xiàn)兩個(gè)符號(hào)位出現(xiàn)“10”,10”,表示已溢出表示已溢出, ,即結(jié)果小于即結(jié)果小于1 1。雙符號(hào)位檢測法雙符號(hào)位檢測法當(dāng)以模當(dāng)以模4補(bǔ)碼運(yùn)算補(bǔ)碼運(yùn)算,運(yùn)算結(jié)果的二符號(hào)位相異時(shí)運(yùn)算結(jié)果的二符號(hào)位相異時(shí),表示溢出;表

30、示溢出;相同時(shí)相同時(shí),表示未溢出。故溢出邏輯表達(dá)式為:表示未溢出。故溢出邏輯表達(dá)式為: VSf1 Sf2其中,其中,Sf1和和Sf2分別為最高符號(hào)位和第二符號(hào)位。此邏輯表分別為最高符號(hào)位和第二符號(hào)位。此邏輯表達(dá)式可用異或門實(shí)現(xiàn)。達(dá)式可用異或門實(shí)現(xiàn)。模模4補(bǔ)碼相加的結(jié)果,不論溢出與否,最高符號(hào)位始終指示補(bǔ)碼相加的結(jié)果,不論溢出與否,最高符號(hào)位始終指示正確的符號(hào)。正確的符號(hào)。單符號(hào)位檢測法單符號(hào)位檢測法當(dāng)最高有效位產(chǎn)生進(jìn)位而符號(hào)位無進(jìn)位時(shí),產(chǎn)生上溢;當(dāng)當(dāng)最高有效位產(chǎn)生進(jìn)位而符號(hào)位無進(jìn)位時(shí),產(chǎn)生上溢;當(dāng)最高有效位無進(jìn)位而符號(hào)位有進(jìn)位時(shí)最高有效位無進(jìn)位而符號(hào)位有進(jìn)位時(shí),產(chǎn)生下溢。產(chǎn)生下溢。溢出邏輯表達(dá)

31、式溢出邏輯表達(dá)式:VCf Co,其中其中Cf為符號(hào)位產(chǎn)生的進(jìn)位,為符號(hào)位產(chǎn)生的進(jìn)位,Co為最高有效位產(chǎn)生的進(jìn)位。為最高有效位產(chǎn)生的進(jìn)位。此邏輯表達(dá)式也可用異或門實(shí)現(xiàn)。此邏輯表達(dá)式也可用異或門實(shí)現(xiàn)。在定點(diǎn)機(jī)中,當(dāng)運(yùn)算結(jié)果發(fā)生溢出時(shí),機(jī)器通過邏輯電路自動(dòng)在定點(diǎn)機(jī)中,當(dāng)運(yùn)算結(jié)果發(fā)生溢出時(shí),機(jī)器通過邏輯電路自動(dòng)檢查出溢出,并進(jìn)行中斷處理。檢查出溢出,并進(jìn)行中斷處理。一位二進(jìn)制全加器一位二進(jìn)制全加器兩個(gè)二進(jìn)制數(shù)字兩個(gè)二進(jìn)制數(shù)字Ai,Bi和一個(gè)進(jìn)位輸入和一個(gè)進(jìn)位輸入Ci相加相加,產(chǎn)生一個(gè)和輸產(chǎn)生一個(gè)和輸出出Si,以及一個(gè)進(jìn)位輸出以及一個(gè)進(jìn)位輸出Ci1。SiAi Bi Ci Ci1AiBi(BiAi) Ci

32、Ci1AiBi(Bi Ai) Ci AiBi (Bi Ai) Ci FAAi BiCi Ci+1 Si 2.3a.swf行波進(jìn)位(串行進(jìn)位)補(bǔ)碼加行波進(jìn)位(串行進(jìn)位)補(bǔ)碼加/減法器減法器n個(gè)全加器級(jí)連可得個(gè)全加器級(jí)連可得n位的加法器位的加法器增加減數(shù)的求補(bǔ)線路、溢出檢測線路、及加增加減數(shù)的求補(bǔ)線路、溢出檢測線路、及加/減方式控制線,減方式控制線,可得串行進(jìn)位補(bǔ)碼加法可得串行進(jìn)位補(bǔ)碼加法/減法器減法器 An-1 Bn-1An-2 Bn-2A0 B0S0Sn-1Sn-22.3b.swf延時(shí)計(jì)算延時(shí)計(jì)算常見邏輯門延時(shí):常見邏輯門延時(shí):l與非、或非、非:與非、或非、非:Tl與、或:與、或:2Tl異或、

33、異或非:異或、異或非:3T一位全加器的延時(shí)計(jì)算一位全加器的延時(shí)計(jì)算l進(jìn)位進(jìn)位Ci+1輸出穩(wěn)定延時(shí):輸出穩(wěn)定延時(shí):tac3T+1T+1T 5Tl本位和本位和Si輸出穩(wěn)定延時(shí):輸出穩(wěn)定延時(shí):tas3T+3T 6Tn位串行進(jìn)位補(bǔ)碼加法位串行進(jìn)位補(bǔ)碼加法/減法器延時(shí)減法器延時(shí)ta為:為: ta3T+3T+n2T3T(2n9)T ta意味著加法器的輸入端輸入加數(shù)和被加數(shù)后意味著加法器的輸入端輸入加數(shù)和被加數(shù)后,在最壞情況在最壞情況下加法器輸出端得到穩(wěn)定的求和輸出所需的最長時(shí)間。下加法器輸出端得到穩(wěn)定的求和輸出所需的最長時(shí)間。無溢出檢測邏輯時(shí):無溢出檢測邏輯時(shí): ta3T+3T+( n-1 )2T3T(2

34、n7)T十進(jìn)制加法器可由十進(jìn)制加法器可由BCD碼碼(二十進(jìn)制碼二十進(jìn)制碼)來設(shè)計(jì)來設(shè)計(jì),它可以在二進(jìn)它可以在二進(jìn)制加法器的基礎(chǔ)上加上適當(dāng)?shù)闹萍臃ㄆ鞯幕A(chǔ)上加上適當(dāng)?shù)摹靶UU边壿媮韺?shí)現(xiàn)邏輯來實(shí)現(xiàn),該校正邏該校正邏輯可將二進(jìn)制的輯可將二進(jìn)制的“和和”改變成所要求的十進(jìn)制格式。改變成所要求的十進(jìn)制格式。 n位位BCD碼行波式進(jìn)位加法器的一般結(jié)構(gòu)如圖碼行波式進(jìn)位加法器的一般結(jié)構(gòu)如圖, 它由它由n級(jí)組成級(jí)組成,每每一級(jí)將一對一級(jí)將一對4位的位的BCD數(shù)字相加數(shù)字相加,并通過一位進(jìn)位線與其相鄰級(jí)并通過一位進(jìn)位線與其相鄰級(jí)連接。連接。一位一位BCD碼加法單元碼加法單元圖中圖中Si代表這樣得到的代表這樣得

35、到的4位二進(jìn)制數(shù)和位二進(jìn)制數(shù)和,Ci1為輸出進(jìn)位為輸出進(jìn)位,而而Si代代表正確的表正確的BCD和和,Ci1代表正確的進(jìn)位。代表正確的進(jìn)位。Ci1原碼乘法原碼乘法設(shè)設(shè)n位被乘數(shù)和乘數(shù)用定點(diǎn)整數(shù)表示位被乘數(shù)和乘數(shù)用定點(diǎn)整數(shù)表示(定點(diǎn)小數(shù)也同樣適用定點(diǎn)小數(shù)也同樣適用)被乘數(shù)被乘數(shù) 原原f n110 乘數(shù)乘數(shù) 原原f n110則乘積為則乘積為 原原(f f) 22n(0.n110)(0.n110) 式中式中,f為被乘數(shù)符號(hào)為被乘數(shù)符號(hào),f為乘數(shù)符號(hào)。為乘數(shù)符號(hào)。 示例:示例:不帶符號(hào)的陣列乘法器不帶符號(hào)的陣列乘法器 設(shè)有兩個(gè)不帶符號(hào)的二進(jìn)制整數(shù):設(shè)有兩個(gè)不帶符號(hào)的二進(jìn)制整數(shù):Aam1a1a0Bbn1b

36、1b0在二進(jìn)制乘法中在二進(jìn)制乘法中,被乘數(shù)被乘數(shù)A與乘數(shù)與乘數(shù)B相乘相乘,產(chǎn)生產(chǎn)生mn位乘積位乘積P:Ppmn1p1p0 P =AB=a ai ib bj j:部分積部分積mn位不帶符號(hào)的陣列乘法器邏輯圖位不帶符號(hào)的陣列乘法器邏輯圖 圖中陣列乘法器的輸入,是用圖中陣列乘法器的輸入,是用mn個(gè)個(gè)“與與”門并行地產(chǎn)生門并行地產(chǎn)生 mn個(gè)個(gè)“部分積部分積” aibj | 0 i m1 和和 0 j n1 5位位5位陣列乘法器的邏輯電路圖位陣列乘法器的邏輯電路圖 延時(shí)計(jì)算延時(shí)計(jì)算乘法器要實(shí)現(xiàn)乘法器要實(shí)現(xiàn)n位位n位時(shí)位時(shí), 需要需要n(n1)個(gè)全加器和個(gè)全加器和n2個(gè)個(gè)“與與”門門 最長的延時(shí)路徑為:沿

37、著矩陣最長的延時(shí)路徑為:沿著矩陣p4垂直線和最下面一行。垂直線和最下面一行。陣列乘法器總的延時(shí):陣列乘法器總的延時(shí):tmTa+(n1) Ts (n1) Tf T +(n1) 6T(n1) 2T (8n7) T 其中:其中: Ta 為計(jì)算部分積的與門延時(shí);為計(jì)算部分積的與門延時(shí); Ts 為為FA本位和延時(shí);本位和延時(shí); Tf 為為FA行波進(jìn)位延時(shí)(假定用二級(jí)與或邏輯實(shí)現(xiàn)行波進(jìn)位延時(shí)(假定用二級(jí)與或邏輯實(shí)現(xiàn)FA的的進(jìn)位鏈功能,則進(jìn)位鏈功能,則Tf =2T)。)。由補(bǔ)碼還原為真值由補(bǔ)碼還原為真值設(shè)機(jī)器碼為設(shè)機(jī)器碼為x補(bǔ)補(bǔ)=x0 x1 x2 xn (定點(diǎn)小數(shù),(定點(diǎn)小數(shù),x0是符號(hào)位)是符號(hào)位)則則:

38、 證明:證明: (針對(針對x0)|x| = -x = -x補(bǔ)補(bǔ) = x補(bǔ)補(bǔ)+2-n (教材教材32頁結(jié)論頁結(jié)論) 證畢證畢真值真值 x 0. x1 x2 xn x0 = 0- 0. x1 x2 xn + 2-n x0 = 1還原法則另證(針對還原法則另證(針對 x0)設(shè)設(shè)xm為真值為真值x的第一位(的第一位(右右左左)值為值為1的數(shù)碼,即真值具的數(shù)碼,即真值具有以下形式:有以下形式:x= - 0. x1 x2 xm-1 10 0則則x反反=1. x1 x2 xm-1 01 1x補(bǔ)補(bǔ)=1. x1 x2 xm-1 10 0對對x補(bǔ)補(bǔ)采用補(bǔ)碼還原法則得:采用補(bǔ)碼還原法則得:x= x補(bǔ)補(bǔ)+2-n =

39、 - 0. x1 x2 xm-1 01 1 + 01 1 + 2-n = - 0. x1 x2 xm-1 10 0 10 0 = x = x 證畢證畢在證明過程中,得到一種更直觀求補(bǔ)的方法:在證明過程中,得到一種更直觀求補(bǔ)的方法:xm及其后不變,前面各位按位取反即可及其后不變,前面各位按位取反即可例如:例如:- 0.1101101000 求補(bǔ)求補(bǔ)1.0010011000對對2求補(bǔ)器電路求補(bǔ)器電路 下面的求補(bǔ)電路即是上述掃描求補(bǔ)方法的一種硬件實(shí)現(xiàn)。下面的求補(bǔ)電路即是上述掃描求補(bǔ)方法的一種硬件實(shí)現(xiàn)。邏輯表達(dá)式:邏輯表達(dá)式:邏輯電路圖邏輯電路圖:C00, Ci+1aiCiai*aiECi ,0in-

40、1帶符號(hào)的陣列乘法器(符號(hào)求補(bǔ)陣列乘法器)帶符號(hào)的陣列乘法器(符號(hào)求補(bǔ)陣列乘法器) 設(shè)設(shè)A=anan-1a1a0和和B=bnbn-1b1b0均為用定點(diǎn)表示的均為用定點(diǎn)表示的(n1)位帶符號(hào)整數(shù)。位帶符號(hào)整數(shù)。 2n位真值乘積位真值乘積: ABPp2n1p1p0 p2nanbn P2n為符號(hào)位。為符號(hào)位。 (n1)(n1)位帶求補(bǔ)器的陣列乘法器邏輯方框圖位帶求補(bǔ)器的陣列乘法器邏輯方框圖 補(bǔ)碼與真值得轉(zhuǎn)換公式補(bǔ)碼與真值得轉(zhuǎn)換公式 設(shè)設(shè)N補(bǔ)補(bǔ)anan1 a1a0 , 這里這里an是符號(hào)位。補(bǔ)碼數(shù)是符號(hào)位。補(bǔ)碼數(shù)N補(bǔ)補(bǔ)和真值和真值N的關(guān)系可以表示成:的關(guān)系可以表示成: n11(1ai)2i 當(dāng)當(dāng)an

41、1 (N補(bǔ)補(bǔ)為負(fù)為負(fù))時(shí)時(shí)i0 n1ai2i 當(dāng)當(dāng)an 0 (N補(bǔ)補(bǔ)為正為正)時(shí)時(shí) i0Nan-1 an-1 a1 a0 an=0( an-1 an-1 a1 a0 +1) an=0N上式可進(jìn)一步化簡為:上式可進(jìn)一步化簡為:統(tǒng)一表式為:統(tǒng)一表式為:結(jié)論:結(jié)論:在計(jì)算一補(bǔ)碼對應(yīng)的真值時(shí),符號(hào)位在計(jì)算一補(bǔ)碼對應(yīng)的真值時(shí),符號(hào)位an同其他數(shù)值位一同其他數(shù)值位一樣,有自已對應(yīng)的權(quán)值,與其他位權(quán)值相比較,正好相差一負(fù)樣,有自已對應(yīng)的權(quán)值,與其他位權(quán)值相比較,正好相差一負(fù)號(hào),故稱其為負(fù)權(quán)。號(hào),故稱其為負(fù)權(quán)。 n1ai2i 當(dāng)當(dāng) an 0 時(shí)時(shí) i0N n12n ai2i 當(dāng)當(dāng) an 1 時(shí)時(shí) i0N n1

42、 an (2n ) ai2i i0補(bǔ)碼直接乘法:補(bǔ)碼直接乘法:例例20 設(shè)設(shè)A補(bǔ)補(bǔ)(01101)2,B補(bǔ)補(bǔ)(11011)2 ,求求AB補(bǔ)補(bǔ)? 解:解:驗(yàn):驗(yàn):一般化的全加器形式一般化的全加器形式: 對于以對于以2 2類全加器:類全加器:x(-20)+y(-20)+z20 =c(-21)+s20對于以對于以1 1類全加器:類全加器:x 20+y20+z(-20 ) =c21+s(-20)5位乘位乘5位的直接補(bǔ)碼乘法矩陣的一般形式位的直接補(bǔ)碼乘法矩陣的一般形式:對應(yīng)的對應(yīng)的5位乘位乘5位的直接補(bǔ)碼陣列乘法器邏輯原理圖位的直接補(bǔ)碼陣列乘法器邏輯原理圖直接補(bǔ)碼陣列乘法器直接補(bǔ)碼陣列乘法器 兩個(gè)原碼表示

43、的數(shù)相除時(shí)兩個(gè)原碼表示的數(shù)相除時(shí),商的符號(hào)由兩數(shù)的符號(hào)按位相加求商的符號(hào)由兩數(shù)的符號(hào)按位相加求得得,商的數(shù)值部分由兩數(shù)的數(shù)值部分相除求得。商的數(shù)值部分由兩數(shù)的數(shù)值部分相除求得。設(shè)有設(shè)有n位定點(diǎn)小數(shù)位定點(diǎn)小數(shù)(定點(diǎn)整數(shù)也同樣適用定點(diǎn)整數(shù)也同樣適用):被除數(shù)被除數(shù),其原碼為其原碼為原原f .n110除數(shù)除數(shù),其原碼為其原碼為原原f .n110 則有商則有商q/,其原碼為其原碼為 :q原原(ff f)+)+(0.n110/0.n110)設(shè)被除數(shù)設(shè)被除數(shù)0.1001,除數(shù)除數(shù)0.1011,模仿十進(jìn)制除法運(yùn)算模仿十進(jìn)制除法運(yùn)算,以手以手算方法算方法(即即“右移上商法右移上商法”)求求的過程如下的過程如下

44、:得得的商的商q0.1101,余數(shù)為余數(shù)為r0.00000001。 恢復(fù)余數(shù)法恢復(fù)余數(shù)法 :事實(shí)上事實(shí)上,機(jī)器的運(yùn)算過程和人畢竟不同機(jī)器的運(yùn)算過程和人畢竟不同,人會(huì)心算人會(huì)心算,一看就知道夠一看就知道夠不夠減。但機(jī)器卻不會(huì)心算不夠減。但機(jī)器卻不會(huì)心算,必須先作減法必須先作減法,若余數(shù)為正若余數(shù)為正,才知道才知道夠減;若余數(shù)為負(fù)夠減;若余數(shù)為負(fù),才知道不夠減。不夠減時(shí)必須恢復(fù)原來的才知道不夠減。不夠減時(shí)必須恢復(fù)原來的余數(shù)余數(shù),以便再繼續(xù)往下運(yùn)算。這種方法稱為以便再繼續(xù)往下運(yùn)算。這種方法稱為恢復(fù)余數(shù)法恢復(fù)余數(shù)法?;謴?fù)余數(shù)法示例恢復(fù)余數(shù)法示例 0.1001 x 0.1001 x-) 0.1011 -

45、) 0.1011 減減y y* *2 20 0 -0.0010 r -0.0010 r0 0 0,0,商上商上0 0 (x-yx-y* *2 20 0 0 0 0 商上商上1 1-) 0.001011 -) 0.001011 減減y y* *2 2-2-2 0.0000110 r 0.0000110 r2 2= r= r1 1-y-y* *2 2-2-2 0 0 商上商上1 1-) 0.0001011 -) 0.0001011 減減y y* *2 2-3-3 -0.0000101 r -0.0000101 r3 3 0,0,商上商上0 0 (r r2 2-y-y* *2 2-3-3 0 0 0

46、 商上商上1 1得:得:商商 q q 0.11010.1101余數(shù)余數(shù) r r 0.000000010.00000001 加減交替法加減交替法(不恢復(fù)余數(shù)法)(不恢復(fù)余數(shù)法) :由于要恢復(fù)余數(shù)由于要恢復(fù)余數(shù),使除法進(jìn)行過程的步數(shù)不固定使除法進(jìn)行過程的步數(shù)不固定,因此控制比較因此控制比較復(fù)雜。實(shí)際中常用復(fù)雜。實(shí)際中常用不恢復(fù)余數(shù)法不恢復(fù)余數(shù)法,又稱又稱加減交替法加減交替法。其特點(diǎn)是。其特點(diǎn)是運(yùn)算過程中如出現(xiàn)不夠減運(yùn)算過程中如出現(xiàn)不夠減,則不必恢復(fù)余數(shù)則不必恢復(fù)余數(shù),根據(jù)余數(shù)符號(hào)根據(jù)余數(shù)符號(hào),可以可以繼續(xù)往下運(yùn)算繼續(xù)往下運(yùn)算,因此步數(shù)固定因此步數(shù)固定,控制簡單。控制簡單??疾焐鲜隹疾焐鲜龌謴?fù)余數(shù)法

47、恢復(fù)余數(shù)法示例,可得示例,可得加減交替法加減交替法: x-yx-y* *2 20 0 = r = r0 0 0 : 0 : r r1 1= r= r0 0-y-y* *2 2-1-1 = r = r0 0 + y+ y* *2 20 0 - y - y* *2 2-1-1 = r = r0 0 + y+ y* *2 2-1-1 r r2 2-y-y* *2 2-3-3 = r = r3 3 0 : 0 : r r4 4= r= r3 3-y-y* *2 2-4-4 = r = r3 3 + y+ y* *2 2-3-3 - y - y* *2 2-4-4 = r = r3 3 + y+ y*

48、*2 2-4-41. 可控加法可控加法/減法減法(CAS)單元單元 2. 2. 不恢復(fù)余數(shù)的陣列除法器不恢復(fù)余數(shù)的陣列除法器 0.0.1 12 23 34 45 56 6 0.0.1 12 23 30.q0.q1 1 q q2 2 q q3 30.0 0 00.0 0 0 r r4 4 r r5 5 r r6 6 n n1 14 4 關(guān)于每一行的符號(hào)位進(jìn)位、商取值、控制方式關(guān)于每一行的符號(hào)位進(jìn)位、商取值、控制方式P取值的說明:取值的說明:對于二個(gè)符號(hào)相異的補(bǔ)碼相加,有以下特征:對于二個(gè)符號(hào)相異的補(bǔ)碼相加,有以下特征:和為負(fù)數(shù)和為負(fù)數(shù)符號(hào)位無進(jìn)位(對應(yīng)商位取值符號(hào)位無進(jìn)位(對應(yīng)商位取值0););

49、和為正數(shù)和為正數(shù)符號(hào)位有進(jìn)位(對應(yīng)商位取值符號(hào)位有進(jìn)位(對應(yīng)商位取值1););對于陣列除法器:對于陣列除法器:記第記第 i 行的部分余數(shù)為行的部分余數(shù)為RiRi =0:符號(hào)進(jìn)位符號(hào)進(jìn)位1商上商上1 ( qi = 1 )下一行為減法運(yùn)算(即下一行為減法運(yùn)算(即P=1 -第第i行的進(jìn)位)行的進(jìn)位)例例20 0.101001, 0.111, 求求。 計(jì)算機(jī)中的邏輯運(yùn)算計(jì)算機(jī)中的邏輯運(yùn)算,主要是指邏輯非、邏輯加、邏輯乘、邏主要是指邏輯非、邏輯加、邏輯乘、邏輯異四種基本運(yùn)算。輯異四種基本運(yùn)算。邏輯非運(yùn)算邏輯非運(yùn)算例例21 101001011, 211110000, 求求1 , 2解解: 11011010

50、0 200001111 邏輯加邏輯加(邏輯或邏輯或)運(yùn)算運(yùn)算 例例22 10100001,10011011, 求求。解解: 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 即即 10111011邏輯乘邏輯乘(邏輯與邏輯與)運(yùn)算運(yùn)算 例例23 10111001,11110011,求求。解解: 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 1 即即 10110001邏輯異邏輯異(按位加按位加 )運(yùn)算運(yùn)算 例例2 24 10101011,11001100,求求 。解解:1 0 1 0 1 0 1 1 1 1

51、 0 0 1 1 0 0 0 1 1 0 0 1 1 1 即即 01100111基本思想基本思想 ALU的邏輯結(jié)構(gòu)原理框圖的邏輯結(jié)構(gòu)原理框圖 :FiXi Yi CniCni1XiYiYiCniCniXi對于對于4位一片的位一片的ALU,i0,1,2,3。n代表若干片代表若干片ALU組成更大字組成更大字長的運(yùn)算器時(shí)每片電路的進(jìn)位輸入長的運(yùn)算器時(shí)每片電路的進(jìn)位輸入,例如當(dāng)例如當(dāng)4片組成片組成16位字長的位字長的運(yùn)算器時(shí)運(yùn)算器時(shí),n0,4,8,12。Xi,Yi與控制參數(shù)和輸入量的關(guān)系與控制參數(shù)和輸入量的關(guān)系 ALU的某一位邏輯表達(dá)式的某一位邏輯表達(dá)式 S0 S1 Yi S2 S3 Xi 000110

52、11AiAiBiAiBi0000110111AiBiAiBiAi FiYi Xi Cn+i Cni1YiXiCni串行進(jìn)位四位算術(shù)串行進(jìn)位四位算術(shù)/邏輯運(yùn)算單元邏輯運(yùn)算單元 FiYi Xi Cn+i Cni1YiXiCni F3 F2 F1 F0 A3 B3 A2 B2 A1 B1 A0 B0四位片片內(nèi)先行進(jìn)位(并行進(jìn)位)四位片片內(nèi)先行進(jìn)位(并行進(jìn)位)第第0位向第位向第1位的進(jìn)位公式為位的進(jìn)位公式為Cn1Y0X0Cn其中其中Cn是向第是向第0位(末位)的進(jìn)位。位(末位)的進(jìn)位。第第1位向第位向第2位的進(jìn)位公式為位的進(jìn)位公式為Cn2Y1X1Cn1Y1Y0X1X0X1Cn第第2位向第位向第3位的進(jìn)

53、位公式為位的進(jìn)位公式為Cn3Y2X2Cn2Y2Y1X2Y0X1X2X0X1X2Cn第第3位的進(jìn)位輸出(即整個(gè)位的進(jìn)位輸出(即整個(gè)4位運(yùn)算進(jìn)位輸出)公式為位運(yùn)算進(jìn)位輸出)公式為Cn4Y3X3Cn3Y3Y2X3Y1X2X3Y0X1X2X3X0X1X2X3Cn設(shè)設(shè)GY3Y2X3Y1X2X3Y0X1X2X3PX0X1X2X3則則 Cn4GPCn稱稱 G 為進(jìn)位發(fā)生輸出為進(jìn)位發(fā)生輸出,P 為進(jìn)位輸送輸出為進(jìn)位輸送輸出。4位算術(shù)位算術(shù)/邏輯運(yùn)算單元邏輯運(yùn)算單元(ALU) -74181ALU 74181ALU邏輯電路圖邏輯電路圖 74181ALU方框圖方框圖算術(shù)邏輯運(yùn)算的實(shí)現(xiàn)算術(shù)邏輯運(yùn)算的實(shí)現(xiàn) 先行進(jìn)位部件

54、先行進(jìn)位部件74182CLA的進(jìn)位邏輯的進(jìn)位邏輯假設(shè)假設(shè)4片(組)片(組)74181的先行進(jìn)位輸出依次為的先行進(jìn)位輸出依次為P0 G0 P1 G1 P2 G2 P3 G3 , 先行進(jìn)位部件先行進(jìn)位部件74182CLA所提供的進(jìn)位邏輯關(guān)系如下:所提供的進(jìn)位邏輯關(guān)系如下:CnG0P0CnCnG1P1CnG1G0P1P0P1CnCnG2P2CnG2G1P2G0P1P2P0P1P2CnCn4 G3P3Cn G3G2P3G1P1P2G0P1P2P3P0P1P2P3Cn G*P*Cn其中其中P*P0P1P2P3G*G3G2P3G1P1P2G0P1P2P3G G* * 稱為稱為成組進(jìn)位發(fā)生輸出成組進(jìn)位發(fā)生輸

55、出, ,P P* * 稱為稱為成組進(jìn)位傳送輸出成組進(jìn)位傳送輸出。先行進(jìn)位部件先行進(jìn)位部件74182CLA邏輯電路圖邏輯電路圖 兩級(jí)先行進(jìn)位的兩級(jí)先行進(jìn)位的ALU 使用八個(gè)使用八個(gè)74181ALU和兩個(gè)和兩個(gè)74182CLA器件。對一個(gè)器件。對一個(gè)16位位ALU來說來說, CLA部件構(gòu)成了第二級(jí)的先行進(jìn)位邏輯部件構(gòu)成了第二級(jí)的先行進(jìn)位邏輯, 即實(shí)現(xiàn)四個(gè)小即實(shí)現(xiàn)四個(gè)小組(位片)之間的先行進(jìn)位組(位片)之間的先行進(jìn)位, 從而使全字長從而使全字長ALU的運(yùn)算時(shí)間大的運(yùn)算時(shí)間大大縮短。大縮短。根據(jù)總線所在位置根據(jù)總線所在位置,總線分為總線分為內(nèi)部總線內(nèi)部總線和和外部總線外部總線兩類。兩類。內(nèi)部總線是指內(nèi)

56、部總線是指CPU內(nèi)各部件的連線內(nèi)各部件的連線, 外部總線是指系統(tǒng)總線外部總線是指系統(tǒng)總線, 即即CPU與存儲(chǔ)器、與存儲(chǔ)器、I/O系統(tǒng)之間的系統(tǒng)之間的連線。連線。按邏輯結(jié)構(gòu)來分按邏輯結(jié)構(gòu)來分, 總線可分為單向傳送總線和雙向傳送總線??偩€可分為單向傳送總線和雙向傳送總線。單向總線單向總線,就是信息只能向一個(gè)方向傳送。就是信息只能向一個(gè)方向傳送。雙向總線雙向總線,就是信息可以分兩個(gè)方向傳送就是信息可以分兩個(gè)方向傳送,既可以發(fā)送數(shù)據(jù)既可以發(fā)送數(shù)據(jù),也也可以接收數(shù)據(jù)??梢越邮諗?shù)據(jù)??偨Y(jié)邏輯結(jié)構(gòu)示例總結(jié)邏輯結(jié)構(gòu)示例單總線結(jié)構(gòu)的運(yùn)算器單總線結(jié)構(gòu)的運(yùn)算器所有部件都接到同一總線上所有部件都接到同一總線上,所以數(shù)

57、據(jù)可以在任何兩個(gè)寄存器所以數(shù)據(jù)可以在任何兩個(gè)寄存器之間之間,或者在任一個(gè)寄存器和或者在任一個(gè)寄存器和ALU之間傳送。之間傳送。雙總線結(jié)構(gòu)的運(yùn)算器雙總線結(jié)構(gòu)的運(yùn)算器在這種結(jié)構(gòu)中在這種結(jié)構(gòu)中,兩個(gè)操作數(shù)同時(shí)加到兩個(gè)操作數(shù)同時(shí)加到ALU進(jìn)行運(yùn)算進(jìn)行運(yùn)算,只需一次操只需一次操作控制作控制,而且馬上就可以得到運(yùn)算結(jié)果。而且馬上就可以得到運(yùn)算結(jié)果。三總線結(jié)構(gòu)的運(yùn)算器三總線結(jié)構(gòu)的運(yùn)算器在三總線結(jié)構(gòu)中在三總線結(jié)構(gòu)中,ALU的兩個(gè)輸入端分別由兩條總線供給的兩個(gè)輸入端分別由兩條總線供給,而而ALU的輸出則與第三條總線相連。這樣的輸出則與第三條總線相連。這樣,算術(shù)邏輯操作就可以算術(shù)邏輯操作就可以在一步的控制之內(nèi)完成

58、。在一步的控制之內(nèi)完成。浮點(diǎn)加法、減法運(yùn)算規(guī)則浮點(diǎn)加法、減法運(yùn)算規(guī)則設(shè)有兩個(gè)浮點(diǎn)數(shù)設(shè)有兩個(gè)浮點(diǎn)數(shù)和和,它們分別為它們分別為2ExM2EyM其中其中E和和E分別為數(shù)分別為數(shù)和和的階碼的階碼,M和和M為數(shù)為數(shù)和和的尾數(shù)。的尾數(shù)。兩浮點(diǎn)數(shù)進(jìn)行加法和減法的運(yùn)算規(guī)則是:兩浮點(diǎn)數(shù)進(jìn)行加法和減法的運(yùn)算規(guī)則是:(M2EEM)2E,EE完成浮點(diǎn)加減運(yùn)算的操作過程大體分為四步:完成浮點(diǎn)加減運(yùn)算的操作過程大體分為四步:1. 0 操作數(shù)的檢查;操作數(shù)的檢查;2. 比較階碼大小并完成對階;比較階碼大小并完成對階;3. 尾數(shù)進(jìn)行加或減運(yùn)算;尾數(shù)進(jìn)行加或減運(yùn)算;4. 結(jié)果規(guī)格化并進(jìn)行舍入處理。結(jié)果規(guī)格化并進(jìn)行舍入處理。 浮

59、點(diǎn)加減運(yùn)算的操作流程浮點(diǎn)加減運(yùn)算的操作流程 浮點(diǎn)加減運(yùn)算示例浮點(diǎn)加減運(yùn)算示例 例例 設(shè)設(shè)20100.11011011,2100(0.10101100), 求求。解解:為了便于直觀理解為了便于直觀理解,假設(shè)兩數(shù)均以補(bǔ)碼表示假設(shè)兩數(shù)均以補(bǔ)碼表示,階碼采用雙符號(hào)位階碼采用雙符號(hào)位,尾數(shù)采用單符號(hào)位尾數(shù)采用單符號(hào)位,則它們的浮點(diǎn)表示分別為則它們的浮點(diǎn)表示分別為浮浮00 010,0.11011011浮浮00 100,1.01010100求階差并對階求階差并對階EEEE補(bǔ)補(bǔ)E補(bǔ)補(bǔ)00 01011 10011 110 即即E E 為為2,2,的階碼小的階碼小, ,應(yīng)使應(yīng)使M M右移兩位右移兩位, ,E E加

60、加2,2, 浮浮0000 100,0.00110110(11) 100,0.00110110(11) 其中其中(11)(11)表示表示M M右移右移2 2位后移出的最低兩位數(shù)位后移出的最低兩位數(shù)。求階差并對階求階差并對階尾數(shù)求和尾數(shù)求和 規(guī)格化處理規(guī)格化處理 尾數(shù)運(yùn)算結(jié)果的符號(hào)位與最高數(shù)值位同值尾數(shù)運(yùn)算結(jié)果的符號(hào)位與最高數(shù)值位同值,應(yīng)執(zhí)行左規(guī)處理應(yīng)執(zhí)行左規(guī)處理,結(jié)果為結(jié)果為1.00010101(10),階碼為階碼為 00 011。 舍入處理舍入處理 (采用(采用0舍舍1入法入法 )判溢出判溢出階碼符號(hào)位為階碼符號(hào)位為00,不溢出不溢出,故得最終結(jié)果為故得最終結(jié)果為 0. 0 0 1 1 0 1

溫馨提示

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

最新文檔

評論

0/150

提交評論