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

下載本文檔

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

文檔簡(jiǎn)介

1、 第二章第二章 運(yùn)算方法與運(yùn)算器運(yùn)算方法與運(yùn)算器 運(yùn)算方法和運(yùn)算器運(yùn)算方法和運(yùn)算器本章內(nèi)容:本章內(nèi)容: 2.1 2.1 數(shù)據(jù)與文字的表示方法數(shù)據(jù)與文字的表示方法 2.2 2.2 定點(diǎn)加法、減法運(yùn)算定點(diǎn)加法、減法運(yùn)算 2.3 2.3 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算 2.4 2.4 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算 2.5 2.5 定點(diǎn)運(yùn)算器的組成定點(diǎn)運(yùn)算器的組成 2.6 2.6 浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器 本章小結(jié)本章小結(jié)運(yùn)算方法和運(yùn)算器運(yùn)算方法和運(yùn)算器2.1 數(shù)據(jù)與文字的表示方法數(shù)據(jù)與文字的表示方法2.1.1 2.1.1 數(shù)據(jù)格式數(shù)據(jù)格式2.1.2 2.1.2 數(shù)的機(jī)器碼表示數(shù)的機(jī)器碼

2、表示2.1.3 2.1.3 字符與字符串的表示方法字符與字符串的表示方法2.1.4 2.1.4 漢字的表示方法漢字的表示方法2.1.5 2.1.5 校驗(yàn)碼校驗(yàn)碼 數(shù)據(jù)與文字的表示方法數(shù)據(jù)與文字的表示方法2.1.1 2.1.1 數(shù)據(jù)格式數(shù)據(jù)格式 計(jì)算機(jī)中常用的數(shù)據(jù)表示格式有兩種:計(jì)算機(jī)中常用的數(shù)據(jù)表示格式有兩種:(1)定點(diǎn)格式)定點(diǎn)格式(2)浮點(diǎn)格式)浮點(diǎn)格式 定點(diǎn)格式(定點(diǎn)格式(小數(shù)點(diǎn)位置小數(shù)點(diǎn)位置固定固定)容許的數(shù)值范圍有)容許的數(shù)值范圍有限,但要求的處理硬件比限,但要求的處理硬件比較簡(jiǎn)單較簡(jiǎn)單。 浮點(diǎn)格式浮點(diǎn)格式(小數(shù)點(diǎn)位置浮動(dòng)小數(shù)點(diǎn)位置浮動(dòng))容容許的數(shù)值范圍很大,但要求的處理許的數(shù)值范圍

3、很大,但要求的處理硬件比較復(fù)雜硬件比較復(fù)雜 。數(shù)據(jù)格式數(shù)據(jù)格式1. 1. 定點(diǎn)數(shù)的表示方法定點(diǎn)數(shù)的表示方法定點(diǎn)表示定點(diǎn)表示:約定機(jī)器中所有數(shù)據(jù)的小數(shù)點(diǎn)位置是按約按約定固定不變定固定不變的,小數(shù)點(diǎn)就不再使用記號(hào)“.”來(lái)表示。定點(diǎn)數(shù)據(jù)的形式:純小數(shù)純小數(shù)或純整數(shù)純整數(shù)。 (設(shè):(設(shè):定點(diǎn)數(shù)表示為定點(diǎn)數(shù)表示為0 01 12 2n n 其中:其中:0 0符號(hào)位,符號(hào)位,0 0代表正號(hào),代表正號(hào),1 1代表負(fù)號(hào))代表負(fù)號(hào))小數(shù)點(diǎn)的位置約定在符號(hào)小數(shù)點(diǎn)的位置約定在符號(hào)位位x x0 0的后面的后面(不顯示不顯示)小數(shù)點(diǎn)的位置約定在數(shù)值小數(shù)點(diǎn)的位置約定在數(shù)值位位x xn n的后面的后面(不顯示不顯示)定點(diǎn)數(shù)的

4、表示方法定點(diǎn)數(shù)的表示方法定點(diǎn)數(shù)例定點(diǎn)數(shù)例例:例:X=+1010110.純整數(shù):純整數(shù):X = 01010110.正數(shù),符號(hào)位取正數(shù),符號(hào)位取0Y= - 1101001.純整數(shù):純整數(shù):Y = 11101001.負(fù)數(shù),符號(hào)位取負(fù)數(shù),符號(hào)位取1X=+0.11011Y=-0.10101符號(hào)位取符號(hào)位取0純小數(shù):純小數(shù):X = 0.11011符號(hào)位取符號(hào)位取1純小數(shù):純小數(shù):X = 1.10101純整數(shù):純整數(shù):X = 01010110符號(hào)位取符號(hào)位取0純整數(shù):純整數(shù):Y = 11101001符號(hào)位取符號(hào)位取1符號(hào)位取符號(hào)位取0純小數(shù):純小數(shù):X = 0.11011符號(hào)位取符號(hào)位取1純小數(shù):純小數(shù):X

5、 = 1.10101注意到注意到: 無(wú)論是整數(shù)無(wú)論是整數(shù)或是小數(shù),或是小數(shù),在機(jī)器數(shù)的在機(jī)器數(shù)的表示中,都表示中,都不出現(xiàn)小數(shù)不出現(xiàn)小數(shù)點(diǎn)點(diǎn)“.”,.”,只只是約定其位是約定其位置。置。定點(diǎn)數(shù)例定點(diǎn)數(shù)例(012n 各位均為各位均為0時(shí)最??;各位均為時(shí)最??;各位均為1時(shí)最大時(shí)最大)純小數(shù)純小數(shù)的表示范圍:的表示范圍: 0|12n (2.1) 純整數(shù)純整數(shù)的表示范圍為的表示范圍為: 0|2n1 (2.2) 目前計(jì)算機(jī)中多采用定點(diǎn)純整數(shù)表示,因此將定點(diǎn)數(shù)目前計(jì)算機(jī)中多采用定點(diǎn)純整數(shù)表示,因此將定點(diǎn)數(shù)表示的運(yùn)算簡(jiǎn)稱為表示的運(yùn)算簡(jiǎn)稱為整數(shù)運(yùn)算整數(shù)運(yùn)算。 定點(diǎn)數(shù)的表示方法定點(diǎn)數(shù)的表示方法2、浮點(diǎn)數(shù)的表示方

6、法、浮點(diǎn)數(shù)的表示方法 例:例:156.78 =15.678101 = 1.5678102 = 0.15678103=MRE其中:其中:M為為尾數(shù)尾數(shù);R為為基數(shù)基數(shù);E為為階碼階碼(指數(shù))(指數(shù))。二進(jìn)制數(shù)二進(jìn)制數(shù)在定點(diǎn)計(jì)算機(jī)中,在定點(diǎn)計(jì)算機(jī)中,一般約定一般約定: 尾數(shù)尾數(shù)|M| x 01-x =1+ |x| 0 x -1對(duì)于對(duì)于定點(diǎn)整數(shù)定點(diǎn)整數(shù) x x = =1 122n n,則原碼的定義是,則原碼的定義是: :對(duì)于對(duì)于定點(diǎn)整數(shù)定點(diǎn)整數(shù),其原碼形式為:,其原碼形式為: 原原= =0 01 12 2n n, , 注意到注意到:原碼機(jī)器中:原碼機(jī)器中 “ “+0”+0”、“-0” -0” 有兩種

7、形式:有兩種形式:對(duì)于對(duì)于定點(diǎn)小數(shù)定點(diǎn)小數(shù):+0+0原原 = =0 0. .0000 -00000 -0原原 = =1 1. .00000000對(duì)于對(duì)于定點(diǎn)整數(shù)定點(diǎn)整數(shù):+0+0原原 = =0 000000000. . -0 -0原原 = =1 100000000. .數(shù)的原碼表示數(shù)的原碼表示 2n0 2n2n| 02n (2.8)符號(hào)符號(hào)數(shù)值數(shù)值一般情況下,對(duì)于一般情況下,對(duì)于定點(diǎn)小數(shù)定點(diǎn)小數(shù),其真值與原碼之間的轉(zhuǎn),其真值與原碼之間的轉(zhuǎn)換符合下面的規(guī)律:換符合下面的規(guī)律: x=+0 x=+0. .1 12 2n n 原原0 0. .1 12 2n n x=-0 x=-0. .1 12 2n

8、n 原原1 1. .1 12 2n n對(duì)于對(duì)于定點(diǎn)整數(shù)定點(diǎn)整數(shù),其真值與原碼之間的轉(zhuǎn)換符合下面的,其真值與原碼之間的轉(zhuǎn)換符合下面的規(guī)律:規(guī)律: x=+ x=+ 1 12 2n n 原原0 01 12 2n n . . x=- x=- 1 12 2n n 原原1 11 12 2n n . .數(shù)的原碼表示數(shù)的原碼表示 原碼表示法的主要特點(diǎn)是原碼表示法的主要特點(diǎn)是簡(jiǎn)單、易懂簡(jiǎn)單、易懂,但它的最大缺,但它的最大缺點(diǎn)是:由于數(shù)值部分采用絕對(duì)值表示,因而使得加減法點(diǎn)是:由于數(shù)值部分采用絕對(duì)值表示,因而使得加減法運(yùn)算比較復(fù)雜,而加減法運(yùn)算正是計(jì)算機(jī)中最常使用的運(yùn)算比較復(fù)雜,而加減法運(yùn)算正是計(jì)算機(jī)中最常使用的

9、運(yùn)算。所以,必須探討解決方法運(yùn)算。所以,必須探討解決方法補(bǔ)碼補(bǔ)碼則正是一種解則正是一種解決方法。決方法。數(shù)的原碼表示數(shù)的原碼表示2.2.補(bǔ)碼表示法補(bǔ)碼表示法 補(bǔ)碼的概念補(bǔ)碼的概念(以鐘表對(duì)時(shí)為例)以鐘表對(duì)時(shí)為例) 假設(shè)現(xiàn)在的標(biāo)準(zhǔn)時(shí)間為假設(shè)現(xiàn)在的標(biāo)準(zhǔn)時(shí)間為4 4點(diǎn)正;點(diǎn)正; 而有一只表已經(jīng)而有一只表已經(jīng)7 7點(diǎn)了,為點(diǎn)了,為了校準(zhǔn)時(shí)間,可以采用兩種方法:了校準(zhǔn)時(shí)間,可以采用兩種方法:(1)(1)倒撥倒撥3 3小時(shí)小時(shí) 7-3=47-3=4(2)(2)順撥順撥9 9小時(shí)小時(shí)7+9=12+4=0+4=47+9=12+4=0+4=4顯然:顯然: 7-3= 7+9 7-3= 7+9 (mod12)(mo

10、d12)即即 -3= +9 -3= +9 (mod12)(mod12)當(dāng)模數(shù)當(dāng)模數(shù)Mod=12Mod=12時(shí),時(shí), (-3)(-3)是是+9+9補(bǔ)碼。補(bǔ)碼。XX補(bǔ)補(bǔ)= =模數(shù)模數(shù)+ X+ X其中其中,模數(shù)模數(shù)= =基數(shù)基數(shù)n n, , n n為計(jì)算裝置的位數(shù)為計(jì)算裝置的位數(shù)( (字長(zhǎng)字長(zhǎng)),),模數(shù)也與零等值。模數(shù)也與零等值。 從這里可以得到一個(gè)啟示,就是從這里可以得到一個(gè)啟示,就是負(fù)數(shù)用補(bǔ)碼表示時(shí),可以把負(fù)數(shù)用補(bǔ)碼表示時(shí),可以把減法轉(zhuǎn)化為加法減法轉(zhuǎn)化為加法。 數(shù)的補(bǔ)碼表示數(shù)的補(bǔ)碼表示補(bǔ)碼的定義補(bǔ)碼的定義:1、定點(diǎn)小數(shù)、定點(diǎn)小數(shù)例如例如+0.1011,則,則補(bǔ)補(bǔ)0.1011;-0.1011,則

11、,則補(bǔ)補(bǔ)10+10.0000-0.1011 1.0101正數(shù)的補(bǔ)碼就是本身正數(shù)的補(bǔ)碼就是本身負(fù)數(shù)的補(bǔ)碼需作運(yùn)算負(fù)數(shù)的補(bǔ)碼需作運(yùn)算數(shù)的補(bǔ)碼表示數(shù)的補(bǔ)碼表示 x 1 x 0 2+x=2-|x| 0 x -1 (mod 2) 10.0000 - 0.1011 1.0101 根據(jù)補(bǔ)碼定義,求負(fù)數(shù)的補(bǔ)碼時(shí)需作一次減法運(yùn)算,這顯然是根據(jù)補(bǔ)碼定義,求負(fù)數(shù)的補(bǔ)碼時(shí)需作一次減法運(yùn)算,這顯然是不補(bǔ)碼方法的初衷。后面將介紹反碼表示法可以解決負(fù)數(shù)的求補(bǔ)不補(bǔ)碼方法的初衷。后面將介紹反碼表示法可以解決負(fù)數(shù)的求補(bǔ)問題。問題。2、定點(diǎn)整數(shù)、定點(diǎn)整數(shù)例:已知例:已知x=+10111,y=-11011, 求求 x補(bǔ)、補(bǔ)、y補(bǔ)補(bǔ)

12、(n=5)按定義:按定義:x補(bǔ)補(bǔ) =010111 y補(bǔ)補(bǔ) =25+1+y=1000000-11011=100101數(shù)的補(bǔ)碼表示數(shù)的補(bǔ)碼表示 x 2n x 0 2n+1+x= 2n+1 -|x| 0 x -2n(mod 2n+1) 1000000- 11011 100101注:上式注:上式機(jī)器數(shù)機(jī)器數(shù)的位數(shù)為的位數(shù)為n+1n+1數(shù)的補(bǔ)碼表示數(shù)的補(bǔ)碼表示注注:0 0的補(bǔ)碼只有一種形式的補(bǔ)碼只有一種形式 對(duì)于對(duì)于定點(diǎn)小數(shù)定點(diǎn)小數(shù): : 0補(bǔ)補(bǔ)0補(bǔ)補(bǔ)0.0000 對(duì)于對(duì)于定點(diǎn)整數(shù)定點(diǎn)整數(shù): : 0補(bǔ)補(bǔ)0補(bǔ)補(bǔ)00000 . 因此,補(bǔ)碼的表示范圍相對(duì)于原碼、反碼來(lái)因此,補(bǔ)碼的表示范圍相對(duì)于原碼、反碼來(lái)講多

13、一種,講多一種,定點(diǎn)小數(shù)定點(diǎn)小數(shù)可以表示可以表示-1,n+1位位定點(diǎn)整定點(diǎn)整數(shù)數(shù)可以表示可以表示-2n。3. 反碼表示法反碼表示法二進(jìn)制數(shù)求反二進(jìn)制數(shù)求反:就是二進(jìn)制的各位數(shù)碼:就是二進(jìn)制的各位數(shù)碼0 0變?yōu)樽優(yōu)? 1,1 1變?yōu)樽優(yōu)? 0。即:若即:若 x xi i =0=0,則,則 =1=1。 若若 x xi i =1=1,則,則 =0.=0.對(duì)對(duì)定點(diǎn)小數(shù)定點(diǎn)小數(shù),反碼的定義參見書(反碼的定義參見書(2.11)2.11)式。式。ix數(shù)的反碼表示數(shù)的反碼表示ix正數(shù)的反碼就是本身正數(shù)的反碼就是本身負(fù)數(shù)的反碼則是符號(hào)負(fù)數(shù)的反碼則是符號(hào)位為位為1,數(shù)值位求反。,數(shù)值位求反。 x 1 x 0( 2

14、- 2-n ) +x= ( 2- 2-n )_|x| 0 x -1 (2.11)由式(由式(2.112.11)可以得出:)可以得出:x反反+|x|=1.1111=10.00-0.001 = 2- 2-n 得出:得出: 反反(2(22 2n n) ) 0 x -1數(shù)的反碼表示數(shù)的反碼表示比較反碼與補(bǔ)碼的公式比較反碼與補(bǔ)碼的公式 反反(2(22 2n n) ) 補(bǔ)補(bǔ)2 2可得到:可得到:補(bǔ)補(bǔ)反反2n由此可知一個(gè)由反碼求補(bǔ)碼的重要公式,即:由此可知一個(gè)由反碼求補(bǔ)碼的重要公式,即: 一個(gè)一個(gè)負(fù)數(shù)負(fù)數(shù)的補(bǔ)碼,可以通過將該數(shù)的補(bǔ)碼,可以通過將該數(shù) 符號(hào)位置符號(hào)位置1 1,其余取反,然后在最末位(其余取反,

15、然后在最末位(2 2-n -n )上加)上加1 1 的方法直的方法直接獲得。接獲得。數(shù)的補(bǔ)碼與反碼關(guān)系數(shù)的補(bǔ)碼與反碼關(guān)系例:已知例:已知x=+0.1011,y=-0.1101, 求求 x補(bǔ)、補(bǔ)、y補(bǔ)補(bǔ)按定義:按定義:x補(bǔ)補(bǔ) =0.1011(注:注:正數(shù)的補(bǔ)碼就是該數(shù)本身正數(shù)的補(bǔ)碼就是該數(shù)本身) y補(bǔ)補(bǔ) =1.0010+0.0001=1.0011y反反2-n注意到:注意到:1、0的反碼不唯一:的反碼不唯一:0反反0.000; 0反反1.1112、比較反碼與補(bǔ)碼的公式:比較反碼與補(bǔ)碼的公式:反反(22n) 補(bǔ)補(bǔ)2可知:補(bǔ)碼與反碼的關(guān)系為:可知:補(bǔ)碼與反碼的關(guān)系為:補(bǔ)補(bǔ)反反2n數(shù)的補(bǔ)碼與反碼關(guān)系數(shù)的

16、補(bǔ)碼與反碼關(guān)系 上面的公式告訴我們,若要一個(gè)負(fù)數(shù)變補(bǔ)碼上面的公式告訴我們,若要一個(gè)負(fù)數(shù)變補(bǔ)碼, ,其方法是符號(hào)位置其方法是符號(hào)位置1,1,其余各位其余各位0 0變變1,11,1變變0,0,然后然后在最末位在最末位(2(2-n)-n)上加上加1 1。對(duì)定點(diǎn)整數(shù),反碼表示的定義為:對(duì)定點(diǎn)整數(shù),反碼表示的定義為: 也可以用也可以用同樣同樣的方法得出定點(diǎn)整數(shù)的補(bǔ)碼與反碼的方法得出定點(diǎn)整數(shù)的補(bǔ)碼與反碼的關(guān)系,找出利用反碼求定點(diǎn)整數(shù)補(bǔ)碼的方法。的關(guān)系,找出利用反碼求定點(diǎn)整數(shù)補(bǔ)碼的方法。 x 2n x 0 (2n+1-1)+x 0 x -2n (2.13)_數(shù)的補(bǔ)碼與反碼關(guān)系數(shù)的補(bǔ)碼與反碼關(guān)系 求一個(gè)數(shù)的補(bǔ)

17、碼的另一種有效的轉(zhuǎn)換方求一個(gè)數(shù)的補(bǔ)碼的另一種有效的轉(zhuǎn)換方法:法: 對(duì)于對(duì)于負(fù)數(shù)負(fù)數(shù),將原碼的符號(hào)位不變(或支,將原碼的符號(hào)位不變(或支將真值的符號(hào)位至將真值的符號(hào)位至1 1),數(shù)值部分由低位向高),數(shù)值部分由低位向高位轉(zhuǎn)換,對(duì)開始遇到的位轉(zhuǎn)換,對(duì)開始遇到的0 0和第一個(gè)和第一個(gè)1 1取其原碼,取其原碼,以后的各位均取反。以后的各位均取反。 例:例: y=-0.110100, 求求 y補(bǔ)補(bǔ) 解:解:y補(bǔ)補(bǔ)=1.001 100保持不變保持不變逐位取反逐位取反y反反=1.001011y補(bǔ)補(bǔ)=1.001011+0.000001 =1.001100 數(shù)的補(bǔ)碼與反碼關(guān)系數(shù)的補(bǔ)碼與反碼關(guān)系4.移碼表示法移碼

18、表示法 在計(jì)算機(jī)中,移碼通常用于表示浮點(diǎn)在計(jì)算機(jī)中,移碼通常用于表示浮點(diǎn)數(shù)的階碼。由于階碼一般取整數(shù),所以數(shù)的階碼。由于階碼一般取整數(shù),所以移碼通常只用于移碼通常只用于整數(shù)整數(shù)的表示。的表示。對(duì)定點(diǎn)整數(shù)對(duì)定點(diǎn)整數(shù), ,移碼的定義是:移碼的定義是: 移移2 2n n2 2n n2 2n n (n n為移碼數(shù)值部分的位數(shù)為移碼數(shù)值部分的位數(shù))移碼的表示方法移碼的表示方法例例:若階碼:若階碼數(shù)值數(shù)值部分為部分為5 5位位, ,以以表示真值,則表示真值,則 移移2 25 5 2 25 5 2 25 5 又例又例: 當(dāng)正數(shù)當(dāng)正數(shù)10101 10101 時(shí)時(shí), 移移1,101011,10101 當(dāng)負(fù)數(shù)當(dāng)負(fù)

19、數(shù)10101 10101 時(shí)時(shí), 移移2 25 52 25 510101101010,010110,01011。注意到注意到: 移碼中的移碼中的逗號(hào)逗號(hào)不是小數(shù)點(diǎn)不是小數(shù)點(diǎn), ,而是表示左邊一而是表示左邊一位是符號(hào)位。顯然位是符號(hào)位。顯然, ,移碼中符號(hào)位移碼中符號(hào)位0 0表示的規(guī)律與表示的規(guī)律與原碼、補(bǔ)碼、反碼相反。移碼的表示范圍和補(bǔ)碼一原碼、補(bǔ)碼、反碼相反。移碼的表示范圍和補(bǔ)碼一致,致,0 0只有一種表示方式,只是符號(hào)位正好相反。只有一種表示方式,只是符號(hào)位正好相反。移碼的表示方法移碼的表示方法機(jī)器碼表示法小結(jié):在數(shù)據(jù)的四種機(jī)器表示法中,在數(shù)據(jù)的四種機(jī)器表示法中,正數(shù)的原碼、反碼、補(bǔ)碼等于

20、真值,只有負(fù)數(shù)才分正數(shù)的原碼、反碼、補(bǔ)碼等于真值,只有負(fù)數(shù)才分別有不同的表示方法。別有不同的表示方法。補(bǔ)碼和移碼的補(bǔ)碼和移碼的0 0只有一種表示只有一種表示方法,因此其表示范圍相對(duì)于原碼和反碼多一種,方法,因此其表示范圍相對(duì)于原碼和反碼多一種,定點(diǎn)小數(shù)可表示定點(diǎn)小數(shù)可表示-1-1(移碼沒有小數(shù)形式),正數(shù)可(移碼沒有小數(shù)形式),正數(shù)可表示表示-2-2n n。移碼表示法主要用于表示浮點(diǎn)數(shù)的階碼,可以直接移碼表示法主要用于表示浮點(diǎn)數(shù)的階碼,可以直接比較大小。表示范圍和補(bǔ)碼相同,只有最高位相反。比較大小。表示范圍和補(bǔ)碼相同,只有最高位相反。機(jī)器碼表示法小結(jié)機(jī)器碼表示法小結(jié)由于補(bǔ)碼表示對(duì)加減法運(yùn)算十分

21、方便,因此目前機(jī)由于補(bǔ)碼表示對(duì)加減法運(yùn)算十分方便,因此目前機(jī)器中廣泛采用補(bǔ)碼表示法。在這類機(jī)器中數(shù)用補(bǔ)碼器中廣泛采用補(bǔ)碼表示法。在這類機(jī)器中數(shù)用補(bǔ)碼表示,補(bǔ)碼存儲(chǔ),補(bǔ)碼運(yùn)算。(也有些機(jī)器,數(shù)用表示,補(bǔ)碼存儲(chǔ),補(bǔ)碼運(yùn)算。(也有些機(jī)器,數(shù)用原碼進(jìn)行存儲(chǔ)和傳送,運(yùn)算時(shí)改用補(bǔ)碼。還有些機(jī)原碼進(jìn)行存儲(chǔ)和傳送,運(yùn)算時(shí)改用補(bǔ)碼。還有些機(jī)器在做加減法時(shí)用補(bǔ)碼運(yùn)算,在做乘除法時(shí)用原碼器在做加減法時(shí)用補(bǔ)碼運(yùn)算,在做乘除法時(shí)用原碼運(yùn)算)運(yùn)算)機(jī)器碼表示法小結(jié)機(jī)器碼表示法小結(jié) 例例3 3 以定點(diǎn)整數(shù)為例以定點(diǎn)整數(shù)為例, ,用數(shù)軸形式說明原碼、反碼、補(bǔ)碼表示用數(shù)軸形式說明原碼、反碼、補(bǔ)碼表示范圍和可能的數(shù)碼組合情況。范

22、圍和可能的數(shù)碼組合情況。 解解:原碼、反碼、補(bǔ)碼表示分別示于下圖。與原碼、反碼不同原碼、反碼、補(bǔ)碼表示分別示于下圖。與原碼、反碼不同, ,在補(bǔ)碼表示中在補(bǔ)碼表示中“0”0”只有一種形式只有一種形式, ,且用補(bǔ)碼表示負(fù)數(shù)時(shí)范圍可到且用補(bǔ)碼表示負(fù)數(shù)時(shí)范圍可到2 2n n 。機(jī)器碼表示法小結(jié)機(jī)器碼表示法小結(jié) 例例44將十進(jìn)制真值將十進(jìn)制真值( (127,127,1,0,1,0,1,1,127)127)列表表示成二進(jìn)制列表表示成二進(jìn)制數(shù)及原碼、反碼、補(bǔ)碼、移碼值。數(shù)及原碼、反碼、補(bǔ)碼、移碼值。 解解:二進(jìn)制真值及其諸碼值列于下表二進(jìn)制真值及其諸碼值列于下表, ,其中其中0 0在在 原原 反反中有中有兩

23、種表示。由表中數(shù)據(jù)可知兩種表示。由表中數(shù)據(jù)可知, ,補(bǔ)碼值與移碼值差別僅在于符號(hào)位不補(bǔ)碼值與移碼值差別僅在于符號(hào)位不同。同。機(jī)器碼表示法小結(jié)機(jī)器碼表示法小結(jié) 例例55 設(shè)機(jī)器字長(zhǎng)設(shè)機(jī)器字長(zhǎng)1616位位, ,定點(diǎn)表示定點(diǎn)表示, ,尾數(shù)尾數(shù)1515位位, ,數(shù)符數(shù)符1 1位位, ,問:?jiǎn)枺?1)(1)定點(diǎn)原碼整數(shù)表示時(shí)定點(diǎn)原碼整數(shù)表示時(shí), ,最大正數(shù)是多少最大正數(shù)是多少? ?最小負(fù)數(shù)是多少最小負(fù)數(shù)是多少? ?(2)(2)定點(diǎn)原碼小數(shù)表示時(shí)定點(diǎn)原碼小數(shù)表示時(shí), ,最大正數(shù)是多少最大正數(shù)是多少? ?最小負(fù)數(shù)是多少最小負(fù)數(shù)是多少? ? 解解:(1) (1) 定點(diǎn)原碼整數(shù)定點(diǎn)原碼整數(shù)表示表示最大正數(shù)值最大

24、正數(shù)值 (2(215151)1)1010( (32767)32767)10 10 =0 =0 111111111111111111111111111111 最小負(fù)數(shù)值最小負(fù)數(shù)值(2(215151)1)1010( (32767)32767)10 10 =1 =1 111111111111111111111111111111 (15個(gè)個(gè)1)機(jī)器碼表示法小結(jié)機(jī)器碼表示法小結(jié)(2) (2) 定點(diǎn)原碼小數(shù)定點(diǎn)原碼小數(shù)表示表示 最大正數(shù)值最大正數(shù)值(1(12 21515) )1010( (0.111.11)0.111.11)2 2 最小負(fù)數(shù)值最小負(fù)數(shù)值(1(12 21515) )1010( (0.111.

25、11)0.111.11)2 2 例例66假設(shè)由假設(shè)由S,E,MS,E,M三個(gè)域組成的一個(gè)三個(gè)域組成的一個(gè)3232位二進(jìn)制字所表示的非零位二進(jìn)制字所表示的非零規(guī)格化浮點(diǎn)數(shù)規(guī)格化浮點(diǎn)數(shù), ,真值表示為:真值表示為: (1)s(1.M)2E128問:它所表示的規(guī)格化的最大正數(shù)、最小正數(shù)、最大負(fù)數(shù)、最小問:它所表示的規(guī)格化的最大正數(shù)、最小正數(shù)、最大負(fù)數(shù)、最小負(fù)數(shù)是多少?負(fù)數(shù)是多少?解解: (1)最大正數(shù)最大正數(shù)11111111111111111111111111111110 1(12-23) 2127(2)最小正數(shù)最小正數(shù) 00000000000000000000000000000000 1.0 21

26、28機(jī)器碼表示法小結(jié)機(jī)器碼表示法小結(jié)(4)(4)最大負(fù)數(shù)最大負(fù)數(shù) 00000000000000000000000000000000 1.0 2128 11111111111111111111111111111111 1(1223) 2127 (3)最小負(fù)數(shù)最小負(fù)數(shù)機(jī)器碼表示法小結(jié)機(jī)器碼表示法小結(jié)2.1.3 字符與字符串的表示方法字符與字符串的表示方法1.1.字符的表示方法字符的表示方法 目前國(guó)際上普遍采用的字符系統(tǒng)是七單位的目前國(guó)際上普遍采用的字符系統(tǒng)是七單位的ASCIIASCII碼碼( (美國(guó)國(guó)家信息交換標(biāo)準(zhǔn)字符碼美國(guó)國(guó)家信息交換標(biāo)準(zhǔn)字符碼),),它包括它包括1010個(gè)十進(jìn)個(gè)十進(jìn)制數(shù)碼制數(shù)碼

27、,26,26個(gè)英文字母和一定數(shù)量的專用符號(hào)個(gè)英文字母和一定數(shù)量的專用符號(hào), ,如如$,%,$,%, ,等,共等,共128128個(gè)元素個(gè)元素, ,因此二進(jìn)制編碼需因此二進(jìn)制編碼需7 7位位, ,加一加一位偶校驗(yàn)位位偶校驗(yàn)位, ,共共8 8位一個(gè)字節(jié)。位一個(gè)字節(jié)。 ASCIIASCII碼規(guī)定碼規(guī)定8 8個(gè)二進(jìn)制位的最高一位為個(gè)二進(jìn)制位的最高一位為0 0,余下的,余下的7 7位可以給出位可以給出128128個(gè)編碼個(gè)編碼, ,表示表示128128個(gè)不同的字符。個(gè)不同的字符。字符和字符串的表示方法字符和字符串的表示方法表表2.1 ASCII字符編碼表字符編碼表0000010100111001011101

28、110000NULDELSP0Pp0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111DELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,Nn1111SIUS/?O_oDEL0-3位位4-6位位2. 字符串字符串字符串字符串:是指連續(xù)的一串字符:是指連續(xù)的一串字符,通常方式下通常方式下,它們依次占用主存中它們依次占用主存中連續(xù)的多個(gè)字節(jié)連續(xù)

29、的多個(gè)字節(jié),每個(gè)字節(jié)存一個(gè)字符。每個(gè)字節(jié)存一個(gè)字符。 例例 將字符串:將字符串:IFABTHENREAD(C)從高位字節(jié)到低位字節(jié)依次存在主存中。從高位字節(jié)到低位字節(jié)依次存在主存中。解解:設(shè):主存單元長(zhǎng)度由設(shè):主存單元長(zhǎng)度由4個(gè)字節(jié)組成。每個(gè)字節(jié)中存放相應(yīng)字符的個(gè)字節(jié)組成。每個(gè)字節(jié)中存放相應(yīng)字符的ASCII值,文字表達(dá)式中的空格值,文字表達(dá)式中的空格“”在主存中也占一個(gè)字節(jié)的位在主存中也占一個(gè)字節(jié)的位置。置。 因而每個(gè)字節(jié)分別存放十進(jìn)制的因而每個(gè)字節(jié)分別存放十進(jìn)制的73、70、32、65、62、66、32、84、72、69、78、32、82、69、65、68、40、67、41、32。 字符和字

30、符串的表示方法字符和字符串的表示方法IF空AB空THEN空READ(C)空主存各字節(jié)單元內(nèi)容主存各字節(jié)單元內(nèi)容字符和字符串的表示方法字符和字符串的表示方法2.1.4 2.1.4 漢字的表示方法漢字的表示方法1. 1. 漢字的輸入編碼漢字的輸入編碼包括:包括:數(shù)字碼數(shù)字碼、拼音碼拼音碼和和字形碼字形碼數(shù)字碼:數(shù)字碼:常用的是國(guó)標(biāo)區(qū)位碼常用的是國(guó)標(biāo)區(qū)位碼,用數(shù)字串代表一個(gè)漢字輸入。區(qū)位碼是用數(shù)字串代表一個(gè)漢字輸入。區(qū)位碼是將國(guó)家標(biāo)準(zhǔn)局公布的將國(guó)家標(biāo)準(zhǔn)局公布的6763個(gè)兩級(jí)漢字分為個(gè)兩級(jí)漢字分為94個(gè)個(gè)區(qū)區(qū),每個(gè)區(qū)分每個(gè)區(qū)分94位位,實(shí)際上實(shí)際上把漢字表示成二維數(shù)組把漢字表示成二維數(shù)組,每個(gè)漢字在數(shù)

31、組中的下標(biāo)就是每個(gè)漢字在數(shù)組中的下標(biāo)就是區(qū)位碼區(qū)位碼。區(qū)碼和。區(qū)碼和位碼各兩位十進(jìn)制數(shù)字位碼各兩位十進(jìn)制數(shù)字,因此輸入一個(gè)漢字需按鍵因此輸入一個(gè)漢字需按鍵四次四次。 數(shù)字編碼輸入的數(shù)字編碼輸入的優(yōu)點(diǎn)優(yōu)點(diǎn)是無(wú)重碼是無(wú)重碼,且輸入碼與內(nèi)部編碼的轉(zhuǎn)換比較方便且輸入碼與內(nèi)部編碼的轉(zhuǎn)換比較方便,。缺點(diǎn)缺點(diǎn)是代碼難以記憶。是代碼難以記憶。拼音碼:拼音碼:拼音碼是以漢字拼音為基礎(chǔ)的輸入方法。使用拼音碼是以漢字拼音為基礎(chǔ)的輸入方法。使用簡(jiǎn)單方便簡(jiǎn)單方便,但,但漢字同音字太多漢字同音字太多,輸入輸入重碼率很高重碼率很高,同音字選擇影響了輸入速度。同音字選擇影響了輸入速度。漢字的表示方法漢字的表示方法(漢字的輸入

32、編碼)(漢字的輸入編碼)字形碼:字形碼:字形編碼是用漢字的形狀來(lái)進(jìn)行的編碼(例:五筆字字形編碼是用漢字的形狀來(lái)進(jìn)行的編碼(例:五筆字型)。把漢字的筆劃部件用字母或數(shù)字進(jìn)行編碼型)。把漢字的筆劃部件用字母或數(shù)字進(jìn)行編碼,按筆劃的順序按筆劃的順序依次輸入依次輸入,就能表示一個(gè)漢字。就能表示一個(gè)漢字。 為了加快輸入速度為了加快輸入速度,在上述方法基礎(chǔ)上在上述方法基礎(chǔ)上,發(fā)展了詞組輸入發(fā)展了詞組輸入聯(lián)想聯(lián)想輸入等多種快速輸入方法。但是都利用了鍵盤進(jìn)行輸入等多種快速輸入方法。但是都利用了鍵盤進(jìn)行“手動(dòng)手動(dòng)”輸入。輸入。理想的輸入方式是利用語(yǔ)音或圖象識(shí)別技術(shù)理想的輸入方式是利用語(yǔ)音或圖象識(shí)別技術(shù)“自動(dòng)自動(dòng)

33、”將拼音或文將拼音或文本輸入到計(jì)算機(jī)內(nèi)本輸入到計(jì)算機(jī)內(nèi),使計(jì)算機(jī)能認(rèn)識(shí)漢字使計(jì)算機(jī)能認(rèn)識(shí)漢字,聽懂漢語(yǔ)聽懂漢語(yǔ),并將其自動(dòng)轉(zhuǎn)并將其自動(dòng)轉(zhuǎn)換為機(jī)內(nèi)代碼表示。目前這種理想已經(jīng)成為現(xiàn)實(shí)。換為機(jī)內(nèi)代碼表示。目前這種理想已經(jīng)成為現(xiàn)實(shí)。 漢字的表示方法漢字的表示方法(漢字的輸入編碼)(漢字的輸入編碼)2 .2 .漢字內(nèi)碼漢字內(nèi)碼 漢字內(nèi)碼漢字內(nèi)碼是用于漢字信息的存儲(chǔ)、交換、檢索等操是用于漢字信息的存儲(chǔ)、交換、檢索等操作的機(jī)內(nèi)代碼作的機(jī)內(nèi)代碼, ,一般采用兩個(gè)字節(jié)表示。英文字符的機(jī)一般采用兩個(gè)字節(jié)表示。英文字符的機(jī)內(nèi)代碼是七位的內(nèi)代碼是七位的ASCIIASCII碼碼, ,當(dāng)用一個(gè)字節(jié)表示時(shí)當(dāng)用一個(gè)字節(jié)表示時(shí)

34、, ,最高位最高位為為“0”0”。為了與英文字符能相互區(qū)別。為了與英文字符能相互區(qū)別, ,漢字機(jī)內(nèi)代碼漢字機(jī)內(nèi)代碼中兩個(gè)字節(jié)的最高位均規(guī)定為中兩個(gè)字節(jié)的最高位均規(guī)定為“1”1”。注意注意:有些系統(tǒng)中字節(jié)的最高位用于奇偶校驗(yàn)位,這種有些系統(tǒng)中字節(jié)的最高位用于奇偶校驗(yàn)位,這種情況下用三個(gè)字節(jié)表示漢字內(nèi)碼。情況下用三個(gè)字節(jié)表示漢字內(nèi)碼。漢字的表示方法漢字的表示方法(漢字的內(nèi)碼)(漢字的內(nèi)碼)3. 3. 漢字字模碼漢字字模碼字模碼字模碼是用點(diǎn)陣表示的漢字字形代碼是用點(diǎn)陣表示的漢字字形代碼, ,它是漢字的輸出形式它是漢字的輸出形式。例如:例如:字模碼字模碼漢字的表示方法漢字的表示方法(漢字字模碼)(漢字

35、字模碼)漢字的字模碼為:漢字的字模碼為:16位位 16位位=32字節(jié)字節(jié)注意到注意到:字模點(diǎn)陣只能用來(lái)構(gòu)成字模點(diǎn)陣只能用來(lái)構(gòu)成漢字庫(kù)漢字庫(kù), ,而不能用于機(jī)內(nèi)而不能用于機(jī)內(nèi)存儲(chǔ)。字庫(kù)中存儲(chǔ)了每個(gè)漢字的點(diǎn)陣代碼,用于存儲(chǔ)。字庫(kù)中存儲(chǔ)了每個(gè)漢字的點(diǎn)陣代碼,用于漢字的顯示輸出或打印輸出。當(dāng)顯示輸出或打印漢字的顯示輸出或打印輸出。當(dāng)顯示輸出或打印輸出時(shí)才檢索字庫(kù),輸出字模點(diǎn)陣,得到字形。輸出時(shí)才檢索字庫(kù),輸出字模點(diǎn)陣,得到字形。1.1.漢字的漢字的輸入編碼輸入編碼、漢字內(nèi)碼漢字內(nèi)碼、字模碼字模碼是計(jì)算機(jī)中是計(jì)算機(jī)中用于用于輸入輸入、內(nèi)部處理內(nèi)部處理、輸出三種輸出三種不同用途的編碼不同用途的編碼, ,不

36、要混為一談不要混為一談。漢字的表示方法漢字的表示方法(漢字字模碼)(漢字字模碼) 各種因素常常導(dǎo)致計(jì)算機(jī)在處理信息過程中出現(xiàn)錯(cuò)誤。為了防止錯(cuò)誤,可將信號(hào)采用專門的邏輯線路進(jìn)行編碼以檢測(cè)錯(cuò)誤,甚至校正錯(cuò)誤。2.1.5 2.1.5 校驗(yàn)碼校驗(yàn)碼最簡(jiǎn)單且應(yīng)用廣泛的檢錯(cuò)碼方法是奇偶校驗(yàn)法,即:采用一最簡(jiǎn)單且應(yīng)用廣泛的檢錯(cuò)碼方法是奇偶校驗(yàn)法,即:采用一位校驗(yàn)位的位校驗(yàn)位的奇校驗(yàn)奇校驗(yàn)或或偶校驗(yàn)的方法偶校驗(yàn)的方法。設(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,即即

37、 C0。同理同理,偶校驗(yàn)位定義為偶校驗(yàn)位定義為C0 1 n1 即中包含偶數(shù)個(gè)即中包含偶數(shù)個(gè)1時(shí)時(shí),才使才使C0。效驗(yàn)碼效驗(yàn)碼 假設(shè)一個(gè)字假設(shè)一個(gè)字從部件從部件 A A 傳送到部件傳送到部件 B B。在源點(diǎn)。在源點(diǎn) A,A,校驗(yàn)位校驗(yàn)位C C可可用上面公式算出來(lái)用上面公式算出來(lái), ,并合在一起將并合在一起將( (0 011n n1C)1C)送到送到B B,采用偶效驗(yàn)。假設(shè)在采用偶效驗(yàn)。假設(shè)在B B點(diǎn)真正接收到的是點(diǎn)真正接收到的是( ( 0 0 1 1 n n1 1C C ),),然后計(jì)算:然后計(jì)算: F F 0 0 1 1 n n1 1C C 若若F F1,1,意味著收到的信息有錯(cuò)意味著收到的信

38、息有錯(cuò), ,若若F F0,0,表明表明字傳送正確。字傳送正確。奇偶校驗(yàn)可提供奇數(shù)個(gè)錯(cuò)誤檢測(cè)奇偶校驗(yàn)可提供奇數(shù)個(gè)錯(cuò)誤檢測(cè), ,但無(wú)法檢測(cè)偶數(shù)個(gè)錯(cuò)誤但無(wú)法檢測(cè)偶數(shù)個(gè)錯(cuò)誤, ,更無(wú)更無(wú)法識(shí)別錯(cuò)誤信息的位置。(循環(huán)校驗(yàn)碼法識(shí)別錯(cuò)誤信息的位置。(循環(huán)校驗(yàn)碼CRCCRC可解決此問題)可解決此問題)效驗(yàn)碼效驗(yàn)碼例7 見書P30數(shù)據(jù)數(shù)據(jù)偶校驗(yàn)編碼偶校驗(yàn)編碼奇校驗(yàn)編碼奇校驗(yàn)編碼1 0 1 0 1 0 1 01 0 1 0 1 0 1 00 1 0 1 0 1 0 00 1 0 1 0 1 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 1 1 1 1 1 1 10 1 1 1 1 1 1

39、11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 - -0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - -0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 - -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - -1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 - -0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 - -0 0 0 0 0 0 0 0 0 0 0 0

40、0 0 0 0 - -0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 - -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - -效驗(yàn)碼效驗(yàn)碼解假如校驗(yàn)位后傳送的數(shù)碼為:數(shù)據(jù)數(shù)據(jù)偶校驗(yàn)編碼偶校驗(yàn)編碼奇校驗(yàn)編碼奇校驗(yàn)編碼1 0 1 0 1 0 1 01 0 1 0 1 0 1 00 1 0 1 0 1 0 00 1 0 1 0 1 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 1 1 1 1 1 1 10 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 0 1 0 1 0 1 0 1 0 1 0 1

41、 0 1 0 0 00 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 01 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 10 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 10 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 01 1 1 1 1

42、1 1 1 1 1 1 1 1 1 1 1 1 1效驗(yàn)碼效驗(yàn)碼2.2 定點(diǎn)加法減法運(yùn)算定點(diǎn)加法減法運(yùn)算 2.2.1 補(bǔ)碼加法補(bǔ)碼加法2.2.2 補(bǔ)碼減法補(bǔ)碼減法2.2.3 溢出概念與檢驗(yàn)方法溢出概念與檢驗(yàn)方法2.2.4 基本的二進(jìn)制加法、減法器基本的二進(jìn)制加法、減法器2.2.5 十進(jìn)制加法器十進(jìn)制加法器定點(diǎn)加減法運(yùn)算定點(diǎn)加減法運(yùn)算2.2.1 補(bǔ)碼加法補(bǔ)碼加法補(bǔ)碼加法的公式是:補(bǔ)碼加法的公式是:補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ) (mod 2) 現(xiàn)分四種情況來(lái)證明。假設(shè)采用定點(diǎn)小數(shù)表示現(xiàn)分四種情況來(lái)證明。假設(shè)采用定點(diǎn)小數(shù)表示, ,因此證明因此證明的先決條件是:的先決條件是:1, 1, 1, 1, 1 1。(1)0,0

43、,則則0。 相加兩數(shù)都是正數(shù)相加兩數(shù)都是正數(shù), ,故其和也一定是正數(shù)。正數(shù)的補(bǔ)碼和原故其和也一定是正數(shù)。正數(shù)的補(bǔ)碼和原碼是一樣的碼是一樣的, ,可得:可得:補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)(mod 2) 補(bǔ)碼的加法補(bǔ)碼的加法(2)(2)0,0,0,0,則則00或或000時(shí)時(shí),2 ,2 ( () 2,) 2,進(jìn)位進(jìn)位2 2必丟失必丟失, ,又因又因( ()0)0,所以:,所以: 補(bǔ)補(bǔ) 補(bǔ)補(bǔ) 補(bǔ)補(bǔ)(mod 2)(mod 2)當(dāng)當(dāng)00時(shí)時(shí),2 ,2 ( () 2,) 2,又因又因( ()0)0,所,所以:以: 補(bǔ)補(bǔ) 補(bǔ)補(bǔ)2 2( () ) 補(bǔ)補(bǔ)(mod 2)(mod 2)補(bǔ)碼的加法補(bǔ)碼的加法(3)(3)0,0,0,則則

44、00或或 00。這種情況和第這種情況和第2 2種情況一樣種情況一樣, ,把把和和的位置對(duì)調(diào)即得證。的位置對(duì)調(diào)即得證。 (4)(4)0,0,0,0,則則00。 相加兩數(shù)都是負(fù)數(shù)相加兩數(shù)都是負(fù)數(shù), ,則其和也一定是負(fù)數(shù)。則其和也一定是負(fù)數(shù)。 補(bǔ)補(bǔ)2 2, , 補(bǔ)補(bǔ)2 2 補(bǔ)補(bǔ) 補(bǔ)補(bǔ)2 22 22 2(2(2) )上式右邊分為上式右邊分為”2”2”和和(2(2) )兩部分兩部分. .既然既然( () )是是負(fù)數(shù)負(fù)數(shù), ,而其絕對(duì)值又小于而其絕對(duì)值又小于1,1,那么那么(2(2) )就一定是小于就一定是小于2 2而大于而大于1 1的數(shù)的數(shù), ,進(jìn)位進(jìn)位”2”2”必丟失必丟失. .又因又因( ()0,

45、)0所以:所以: 0.1101補(bǔ)碼的減法補(bǔ)碼的減法又例又例 +0.0110,+0.1110,求。求。解解:補(bǔ)補(bǔ)0.0110 補(bǔ)補(bǔ)0.1110 補(bǔ)補(bǔ)1.0010 補(bǔ)補(bǔ) 0.0110補(bǔ)補(bǔ) 1.0010 補(bǔ)補(bǔ) 1.1000 0所以:所以: -0.1000補(bǔ)碼的減法補(bǔ)碼的減法2.2.3 溢出概念與檢測(cè)方法溢出概念與檢測(cè)方法 以定點(diǎn)小數(shù)為例以定點(diǎn)小數(shù)為例: 在定點(diǎn)小數(shù)機(jī)器中在定點(diǎn)小數(shù)機(jī)器中, ,數(shù)的表示范圍為數(shù)的表示范圍為| |1. | x 0 4+x=4-|x| 0 x -2 (2.22)溢出概念與檢測(cè)方法溢出概念與檢測(cè)方法或用同余式表示:或用同余式表示:補(bǔ)補(bǔ)4(mod 4)下式也同樣成立:下式也同樣

46、成立: 補(bǔ)補(bǔ) 補(bǔ)補(bǔ) 補(bǔ)補(bǔ)(mod 4) 1. 兩個(gè)符號(hào)位都看作數(shù)碼一樣參加運(yùn)算兩個(gè)符號(hào)位都看作數(shù)碼一樣參加運(yùn)算 2.2.兩數(shù)進(jìn)行以兩數(shù)進(jìn)行以4位模的加法位模的加法, ,即最高符號(hào)位上產(chǎn)生的進(jìn)即最高符號(hào)位上產(chǎn)生的進(jìn)位要丟掉。位要丟掉。 采用變形補(bǔ)碼后,如果兩個(gè)數(shù)相加后,其結(jié)果的采用變形補(bǔ)碼后,如果兩個(gè)數(shù)相加后,其結(jié)果的符號(hào)位出現(xiàn)符號(hào)位出現(xiàn)“01”或或“10”兩種組合時(shí)兩種組合時(shí), ,表示發(fā)生溢出。表示發(fā)生溢出。這這是因?yàn)閮蓚€(gè)絕對(duì)值小于是因?yàn)閮蓚€(gè)絕對(duì)值小于1的數(shù)相加的數(shù)相加, ,其結(jié)果不會(huì)大于或其結(jié)果不會(huì)大于或等于等于2。所以,最高符號(hào)位所表示的是。所以,最高符號(hào)位所表示的是結(jié)果的正確符號(hào)結(jié)果的正

47、確符號(hào)。溢出概念與檢測(cè)方法溢出概念與檢測(cè)方法為了得到兩數(shù)變形補(bǔ)碼之和等于兩數(shù)之和的變形補(bǔ)碼為了得到兩數(shù)變形補(bǔ)碼之和等于兩數(shù)之和的變形補(bǔ)碼, ,樣必須:樣必須: 例例1414 0.1100.1100, 0, 0.1000,0.1000,求求。溢出概念與檢測(cè)方法溢出概念與檢測(cè)方法 解解 : 補(bǔ)補(bǔ)00.1100,補(bǔ)補(bǔ)00.1000 補(bǔ)補(bǔ) 00.1100 補(bǔ)補(bǔ) 00.1000 01.0100 兩個(gè)符號(hào)位出現(xiàn)兩個(gè)符號(hào)位出現(xiàn)“01”01”, ,表示已溢出表示已溢出, ,即結(jié)果即結(jié)果大于大于1 1。上溢上溢 又又例例 0.1100.1100, 0, 0.0001,0.0001,求求。溢出概念與檢測(cè)方法溢出概

48、念與檢測(cè)方法 解解 : 補(bǔ)補(bǔ)00.1100,補(bǔ)補(bǔ)00.1000 補(bǔ)補(bǔ) 00.1100 補(bǔ)補(bǔ) 00.0001 00.1101 兩個(gè)符號(hào)位兩個(gè)符號(hào)位 =“00”,=“00”,表示表示無(wú)溢出無(wú)溢出。 例例1515 0.1100, 0.1100, -0.1000,-0.1000,求求。溢出概念與檢測(cè)方法溢出概念與檢測(cè)方法 解解 : 補(bǔ)補(bǔ)11.0100,補(bǔ)補(bǔ)11.1000 補(bǔ)補(bǔ)11.0100補(bǔ)補(bǔ)11.1000 1010.1100.1100 兩個(gè)符號(hào)位出現(xiàn)兩個(gè)符號(hào)位出現(xiàn)“10”, ,表示已溢出表示已溢出, ,即結(jié)果即結(jié)果小于小于1。下溢下溢 又例又例 0.0100, 0.0100, -0.1000,-0.

49、1000,求求。溢出概念與檢測(cè)方法溢出概念與檢測(cè)方法 解解 : 補(bǔ)補(bǔ)11.1100,補(bǔ)補(bǔ)11.1000 補(bǔ)補(bǔ)11.1100補(bǔ)補(bǔ)11.1000 1111.0100.0100 兩個(gè)符號(hào)位出現(xiàn)兩個(gè)符號(hào)位出現(xiàn)“11”, ,表示表示無(wú)溢出無(wú)溢出。溢出概念與檢測(cè)方法溢出概念與檢測(cè)方法由此可以得出如下結(jié)論由此可以得出如下結(jié)論:1.1. 當(dāng)以模當(dāng)以模4 4補(bǔ)碼運(yùn)算補(bǔ)碼運(yùn)算, ,運(yùn)算結(jié)果的運(yùn)算結(jié)果的二符號(hào)位相異二符號(hào)位相異時(shí)時(shí), ,表示表示溢出溢出;相同相同時(shí)時(shí), ,表示表示未溢出未溢出。故溢出邏輯表故溢出邏輯表達(dá)式為達(dá)式為 V VS Sf f1 1S Sf f2 2, ,其中其中S Sf f1 1和和S Sf

50、 f2 2分別為最高符號(hào)分別為最高符號(hào)位和第二符號(hào)位。此邏輯表達(dá)式可用位和第二符號(hào)位。此邏輯表達(dá)式可用異或門異或門實(shí)現(xiàn)。實(shí)現(xiàn)。2. 2. 模模4 4補(bǔ)碼相加的結(jié)果補(bǔ)碼相加的結(jié)果, ,不論溢出與否不論溢出與否, ,最高符號(hào)位最高符號(hào)位始終指示正確的符號(hào)。始終指示正確的符號(hào)。 溢出概念與檢測(cè)方法溢出概念與檢測(cè)方法第二種溢出檢測(cè)方法第二種溢出檢測(cè)方法:采用采用“單符號(hào)位法單符號(hào)位法”。 從例從例1 1和和例例2 2中看到中看到:(1).:(1).當(dāng)最高有效位產(chǎn)生進(jìn)位而當(dāng)最高有效位產(chǎn)生進(jìn)位而符號(hào)位無(wú)進(jìn)位時(shí)符號(hào)位無(wú)進(jìn)位時(shí), ,產(chǎn)生產(chǎn)生上溢上溢;(2).(2).當(dāng)最高有效位無(wú)進(jìn)當(dāng)最高有效位無(wú)進(jìn)位而符號(hào)位有

51、進(jìn)位時(shí)位而符號(hào)位有進(jìn)位時(shí), ,產(chǎn)生產(chǎn)生下溢下溢。 故:故:溢出邏輯表達(dá)式為溢出邏輯表達(dá)式為: V VC Cr rC Co o其中其中: : C Cf f為符號(hào)位產(chǎn)生的進(jìn)位為符號(hào)位產(chǎn)生的進(jìn)位, ,C Co o為最高有效位產(chǎn)生的為最高有效位產(chǎn)生的進(jìn)位。(進(jìn)位。(顯然:此邏輯關(guān)系可用異或門方便地實(shí)現(xiàn)顯然:此邏輯關(guān)系可用異或門方便地實(shí)現(xiàn))。)。 在定點(diǎn)機(jī)中,當(dāng)運(yùn)算結(jié)果發(fā)生溢出時(shí)在定點(diǎn)機(jī)中,當(dāng)運(yùn)算結(jié)果發(fā)生溢出時(shí), ,機(jī)器通過邏機(jī)器通過邏輯電路自動(dòng)檢查出溢出故障輯電路自動(dòng)檢查出溢出故障, ,并進(jìn)行中斷處理并進(jìn)行中斷處理。 二進(jìn)制加法二進(jìn)制加法/減法器減法器2.2.4 2.2.4 基本的二進(jìn)制加法基本的二進(jìn)

52、制加法/ /減法器減法器 根據(jù)表根據(jù)表2.22.2所示的真值表所示的真值表, ,三個(gè)輸入端和兩個(gè)輸出端可按三個(gè)輸入端和兩個(gè)輸出端可按如下邏輯方程進(jìn)行聯(lián)系:如下邏輯方程進(jìn)行聯(lián)系: S Si iA Ai iBBi iCCi i C Ci i1 1A Ai iB Bi iB Bi iC Ci iC Ci iA Ai i1111110011101010100110110010100110000000C Ci i1 1S Si iC Ci iB Bi iA Ai i輸出輸入表表2.2 一位全加器真值表一位全加器真值表(2.23)二進(jìn)制加法二進(jìn)制加法/減法器減法器按表達(dá)式按表達(dá)式(2.23)組成的一位全加

53、器(組成的一位全加器(FA)示意圖)示意圖2.2(b)對(duì)一位全加器對(duì)一位全加器(FA)來(lái)說來(lái)說,Si的時(shí)間延遲為的時(shí)間延遲為6T(每級(jí)異或門延遲每級(jí)異或門延遲3T),Ci1的時(shí)間延遲為的時(shí)間延遲為5T,其中其中T被定義為相應(yīng)于單級(jí)邏輯被定義為相應(yīng)于單級(jí)邏輯電路的單位門延遲。電路的單位門延遲。T通常通常采用一個(gè)采用一個(gè)“與非與非”門或一個(gè)門或一個(gè)“或非或非”門的時(shí)間延遲來(lái)門的時(shí)間延遲來(lái)作為度量單位。作為度量單位。3T+3T3T+T+T二進(jìn)制加法二進(jìn)制加法/減法器減法器二進(jìn)制加法二進(jìn)制加法/減法器減法器延遲時(shí)間延遲時(shí)間t ta a為為: : 2T2T延遲時(shí)間延遲時(shí)間t ta a為為: : 3T3T

54、考慮溢出檢測(cè)時(shí)考慮溢出檢測(cè)時(shí),延遲時(shí)間延遲時(shí)間t ta a為為: : t ta ann2 2T T9 9T T (2(2n n9)9)T T當(dāng)不考慮溢出檢測(cè)時(shí)當(dāng)不考慮溢出檢測(cè)時(shí),有:,有: t ta a( (n-1)n-1)2 2T T9 9T T十進(jìn)制加法器十進(jìn)制加法器2.2.5 十進(jìn)制加法器十進(jìn)制加法器 十進(jìn)制加法器可由十進(jìn)制加法器可由BCD碼碼( (二二十進(jìn)制碼十進(jìn)制碼)來(lái)設(shè)來(lái)設(shè)計(jì)計(jì),它可以在二進(jìn)制加法器的基礎(chǔ)上加上適當(dāng)?shù)乃梢栽诙M(jìn)制加法器的基礎(chǔ)上加上適當(dāng)?shù)摹靶UU边壿媮?lái)實(shí)現(xiàn)邏輯來(lái)實(shí)現(xiàn),該校正邏輯可將二進(jìn)制的該校正邏輯可將二進(jìn)制的“和和”改變成所要求的十進(jìn)制格式。改變成所要求的十進(jìn)

55、制格式。 四位二進(jìn)制數(shù)表示十進(jìn)制數(shù)四位二進(jìn)制數(shù)表示十進(jìn)制數(shù)的一位(的一位(0-90-9),即數(shù)據(jù)范),即數(shù)據(jù)范圍:圍1001十進(jìn)制加法器十進(jìn)制加法器例:設(shè)例:設(shè) Xi= 0110= (6)10 Yi= 0111= (7)10 則:則:Si = Xi+ Yi= 0110+0111 = 1101= (13)10 十位數(shù):十位數(shù):1 個(gè)位數(shù):個(gè)位數(shù): 3 對(duì)對(duì)Si進(jìn)行進(jìn)行“加加6校正校正”后:后: Si = Si+6=1101+0110=1 0011 13 Si9的情況的情況:Si = 1010, 1011,1100,1101,1110,1111. 當(dāng)當(dāng)Si9時(shí),要求:

56、時(shí),要求: (1). 產(chǎn)生向高位的進(jìn)位信號(hào)產(chǎn)生向高位的進(jìn)位信號(hào)Ci+1 ; (2). 對(duì)對(duì)Si進(jìn)行進(jìn)行“+6”校正,得出本位的十進(jìn)制數(shù)值。校正,得出本位的十進(jìn)制數(shù)值。實(shí)現(xiàn):實(shí)現(xiàn):(6)10 +(7)10 進(jìn)位進(jìn)位十進(jìn)制加法器十進(jìn)制加法器該位的和該位的和十進(jìn)制加法的校正十進(jìn)制加法的校正十進(jìn)制加法器十進(jìn)制加法器設(shè)設(shè)Si代表這樣得到的代表這樣得到的4位二進(jìn)制數(shù)和位二進(jìn)制數(shù)和,Ci1為輸出為輸出進(jìn)位進(jìn)位,而而Si代表正確的代表正確的BCD和和,Ci1代表正確的進(jìn)位代表正確的進(jìn)位,那么:那么: 當(dāng)當(dāng)iiCi10時(shí)時(shí), SiSi 當(dāng)當(dāng)XiYiCi10時(shí)時(shí), SiSi6顯然顯然,對(duì)于十進(jìn)制加對(duì)于十進(jìn)制加法來(lái)

57、說,法來(lái)說,當(dāng)當(dāng)Ci11或或Si10時(shí)時(shí),應(yīng)當(dāng)有:輸出進(jìn)位應(yīng)當(dāng)有:輸出進(jìn)位Ci11。十進(jìn)制加法器十進(jìn)制加法器和大于和大于9?和有進(jìn)位和有進(jìn)位校正:校正:Ci10時(shí):時(shí):+ +0; Ci11時(shí):時(shí):+ +6;2.3 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算 2.3.1 原碼并行乘法原碼并行乘法2.3.2 補(bǔ)碼并行乘法補(bǔ)碼并行乘法定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算2.3.1 原碼乘法原碼乘法1.1.人工算法與機(jī)器算法的同異性人工算法與機(jī)器算法的同異性 在定點(diǎn)計(jì)算機(jī)中在定點(diǎn)計(jì)算機(jī)中,兩個(gè)原碼表示的數(shù)相乘的運(yùn)算規(guī)則是兩個(gè)原碼表示的數(shù)相乘的運(yùn)算規(guī)則是:乘積的符號(hào)位由兩數(shù)的符號(hào)位按異或運(yùn)算得到乘積的符號(hào)位由兩數(shù)的符號(hào)位按異或運(yùn)算得

58、到,而乘積的數(shù)而乘積的數(shù)值部分則是兩個(gè)正數(shù)相乘之積值部分則是兩個(gè)正數(shù)相乘之積。 設(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 則乘積則乘積: 原原(ff)(0.n110)(0.n110) (2.26) 式中式中,f為被乘數(shù)符號(hào)為被乘數(shù)符號(hào),f為乘數(shù)符號(hào)。為乘數(shù)符號(hào)。 原碼乘法運(yùn)算原碼乘法運(yùn)算乘積符號(hào)的運(yùn)算法則是:乘積符號(hào)的運(yùn)算法則是:同號(hào)相乘為正同號(hào)相乘為正, ,異號(hào)異號(hào)相乘為負(fù)。由于被乘數(shù)和乘數(shù)的符號(hào)組合只相乘為負(fù)。由于被乘數(shù)和乘數(shù)的符號(hào)組合只有四種情況有四種情況( (f f

59、f f00,01,10,11),00,01,10,11),因此積因此積的符號(hào)可按的符號(hào)可按“異或異或”( (按位加按位加) )運(yùn)算得到。運(yùn)算得到。數(shù)值部分的運(yùn)算方法與普通的十進(jìn)制小數(shù)數(shù)值部分的運(yùn)算方法與普通的十進(jìn)制小數(shù)乘法類似乘法類似, ,不過對(duì)于用二進(jìn)制表達(dá)式的數(shù)來(lái)不過對(duì)于用二進(jìn)制表達(dá)式的數(shù)來(lái)說說, ,其乘法規(guī)則更為簡(jiǎn)單一些。其乘法規(guī)則更為簡(jiǎn)單一些。設(shè)設(shè)0.1101,0.1101,0.1011.0.1011.讓我們先用習(xí)讓我們先用習(xí)慣方法求其乘積慣方法求其乘積, ,觀察其過程觀察其過程: :原碼乘法運(yùn)算原碼乘法運(yùn)算 0. 1 1 0 1 (x)X 0. 1 0 1 1 (y) 1 1 0 1

60、 1 1 0 1 0 0 0 0+ 1 1 0 1 0. 1 0 0 0 1 1 1 1 (z) 運(yùn)算的過程與十進(jìn)制乘法相似運(yùn)算的過程與十進(jìn)制乘法相似: : 從乘數(shù)從乘數(shù)的最低的最低位開始位開始, ,若這一位為若這一位為“1”,1”,則將被乘數(shù)則將被乘數(shù)寫下;若寫下;若這一位為這一位為“0”,0”,則寫下全則寫下全0 0。然后再逐次完成對(duì)乘。然后再逐次完成對(duì)乘數(shù)各高位的乘法運(yùn)算數(shù)各高位的乘法運(yùn)算, ,其規(guī)則同上。不過高一位其規(guī)則同上。不過高一位乘數(shù)的權(quán)比低一位乘數(shù)的權(quán)大一級(jí)(乘數(shù)的權(quán)比低一位乘數(shù)的權(quán)大一級(jí)(2 21 1=2=2),因此),因此被乘數(shù)被乘數(shù)要左移一位。以此類推要左移一位。以此類推, ,直

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論