計(jì)算機(jī)組成原理課件第二章_第1頁(yè)
計(jì)算機(jī)組成原理課件第二章_第2頁(yè)
計(jì)算機(jī)組成原理課件第二章_第3頁(yè)
計(jì)算機(jī)組成原理課件第二章_第4頁(yè)
計(jì)算機(jī)組成原理課件第二章_第5頁(yè)
已閱讀5頁(yè),還剩124頁(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、2.3 定點(diǎn)數(shù)乘除法運(yùn)算定點(diǎn)數(shù)乘除法運(yùn)算2.2 定點(diǎn)數(shù)加減法運(yùn)算定點(diǎn)數(shù)加減法運(yùn)算2.1 數(shù)據(jù)與文字的編碼數(shù)據(jù)與文字的編碼2.4 邏輯運(yùn)算邏輯運(yùn)算2.5 定點(diǎn)運(yùn)算器的組成和結(jié)構(gòu)定點(diǎn)運(yùn)算器的組成和結(jié)構(gòu)2.6 浮點(diǎn)數(shù)運(yùn)算和浮點(diǎn)運(yùn)算器浮點(diǎn)數(shù)運(yùn)算和浮點(diǎn)運(yùn)算器l一、進(jìn)位計(jì)數(shù)制一、進(jìn)位計(jì)數(shù)制l按進(jìn)位的方式計(jì)數(shù)。l基數(shù):計(jì)數(shù)制中用到的數(shù)碼的個(gè)數(shù),等于每個(gè)數(shù)位中所允許的最大數(shù)碼值加1。用R表示。l位權(quán):以基數(shù)為底的指數(shù),指數(shù)的冪是數(shù)位的序號(hào)。l對(duì)一個(gè)數(shù)S,其基數(shù)為R,則:1 -n-miiim-m-1 -1 -00112-n2-n1 -n1 -nm-2-1 -0122-n1 -nRK )RKRKRKRKRKRK(

2、 )KK.KKKKK(K)(RS進(jìn)位制二進(jìn)制八進(jìn)制十進(jìn)制十六進(jìn)制規(guī)則逢二進(jìn)一逢八進(jìn)一逢十進(jìn)一逢十六進(jìn)一基數(shù)R=2R=8R=10R=16基本符號(hào)0,10,1,2,70,1,2,90,1,.,9,A,.,F權(quán)2i8i10i16i形式表示BODH 例2-1 將(11011.11)2轉(zhuǎn)換為十進(jìn)制數(shù) 解: (11011.11) 2 =124+123+022+121+120+12-1+12-2 =(27.75)101 - n-miiim-m-1 -1 -00112 - n2 - n1 - n1 - nm-2 -1 -0122 - n1 - nRK )RKRKRKRKRKRK( )KK.KKKKK(K)(R

3、S例2-2 將(732.6)8轉(zhuǎn)換為十進(jìn)制數(shù) 解: (732.6)8 =782+381+280+68-1 =(474.75)10例2-3 將(A5C.B2)16轉(zhuǎn)換為十進(jìn)制數(shù) 解: (A5C.B2)16 =10162+5161+12160+1116-1+216-2 =(2652.6953125)10l任一十進(jìn)制數(shù)N,N=N整+N小。將這兩部分分開轉(zhuǎn)換整數(shù)部分的轉(zhuǎn)換:采用“除2求余法”,轉(zhuǎn)換方法為:連續(xù)用2除,求得余數(shù)(1或0)分別為K0、K1、K2、,直到商為0,所有余數(shù)排列Kn-1Kn-2K2K1K0 即為所轉(zhuǎn)換的二進(jìn)制整數(shù)部分。小數(shù)部分的轉(zhuǎn)換:采用“乘2取整法”。轉(zhuǎn)換方法為:連續(xù)用2乘,依

4、次求得各整數(shù)位(0或1)K-1、K-2、K-m,直到乘積的小數(shù)部分為0。在小數(shù)轉(zhuǎn)換過程中,出現(xiàn)Fi恒不為0時(shí),可按精度要求確定二進(jìn)制小數(shù)的位數(shù)。 例2-4 求(43)10的二進(jìn)制表示 解: 除以2 商Qi 余數(shù)Ki 43/221 K0=1 21/210 K1=1 10/2 5 K2=0 5/2 2 K3=1 2/2 1 K4=0 1/2 0 K5=1 (43)10=(101011)2例2-5 求(0.6875)10的二進(jìn)制值解: 乘以2小數(shù)Fi整數(shù)Ki 0.687520.3750K-1=1 0.375020.7500K-2=0 0.750020.5000K-3=1 0.500020.0000K

5、-4=1 (0.6875)10=(0.1011)2l將十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)、十六進(jìn)制數(shù)時(shí),使用的方法與十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的方法基本相同,只是求整數(shù)部分時(shí)是用商除以8或16,取其余數(shù);小數(shù)部分改用乘以8或16,取其整數(shù)即可。二進(jìn)制轉(zhuǎn)化成八(十六)進(jìn)制l整數(shù)部分:從右向左按三(四)位分組,不足補(bǔ)零l小數(shù)部分:從左向右按三(四)位分組,不足補(bǔ)零例例2-9(001 011 010 110.101 011 100) 2= (1326.534.) 8 1 3 2 6 5 3 4例例2-10(0101 1101.0101 1010) 2= (5D.5A) 16 5 D 5 Al八(十六)進(jìn)制轉(zhuǎn)化成二進(jìn)

6、制一位八進(jìn)制數(shù)對(duì)應(yīng)三位二進(jìn)制數(shù)一位十六進(jìn)制數(shù)對(duì)應(yīng)四位二進(jìn)制數(shù)l例2-11 (247.63)8= (010 100 111.110 011)2l例2-12 (F5A.6B) 16= (1111 0101 1010 0110.0110 1011) 2計(jì)算機(jī)數(shù)值數(shù)據(jù)的表示計(jì)算機(jī)數(shù)值數(shù)據(jù)的表示機(jī)器數(shù)機(jī)器數(shù)數(shù)在計(jì)算機(jī)中的二進(jìn)制表示形式。又分:數(shù)在計(jì)算機(jī)中的二進(jìn)制表示形式。又分:無符號(hào)數(shù)無符號(hào)數(shù):沒有符號(hào)位全部數(shù)碼位都表示數(shù)值。:沒有符號(hào)位全部數(shù)碼位都表示數(shù)值。8 8位無符號(hào)整數(shù)的范圍位無符號(hào)整數(shù)的范圍: :從從8 8位全位全0 08 8位全位全1 1,即,即0 02 28 8- -1=2551=255,

7、共有,共有256256個(gè)數(shù)。個(gè)數(shù)。8 8位無符號(hào)小數(shù)的范圍位無符號(hào)小數(shù)的范圍: :從從8 8位全位全0 08 8位全位全1 1,即,即0 01-1-2 2-8-8,共有,共有256256個(gè)數(shù)。個(gè)數(shù)。帶符號(hào)數(shù)帶符號(hào)數(shù):用最高一位數(shù)符表示符號(hào),:用最高一位數(shù)符表示符號(hào),0 0表示正號(hào),表示正號(hào),1 1表示負(fù)號(hào);其余位表示數(shù)值位。表示負(fù)號(hào);其余位表示數(shù)值位。一、無符號(hào)數(shù)一、無符號(hào)數(shù)寄存器的位數(shù)寄存器的位數(shù)反映無符號(hào)數(shù)的表示范圍反映無符號(hào)數(shù)的表示范圍 8 位位 0 25516 位位 0 65535帶符號(hào)的數(shù)帶符號(hào)的數(shù) 符號(hào)數(shù)字化的數(shù)符號(hào)數(shù)字化的數(shù)+ 0.10110 1011小數(shù)點(diǎn)的位置小數(shù)點(diǎn)的位置+

8、11000 1100小數(shù)點(diǎn)的位置小數(shù)點(diǎn)的位置 11001 1100小數(shù)點(diǎn)的位置小數(shù)點(diǎn)的位置 0.10111 1011小數(shù)點(diǎn)的位置小數(shù)點(diǎn)的位置真值真值 機(jī)器數(shù)機(jī)器數(shù)1. 機(jī)器數(shù)與真值機(jī)器數(shù)與真值二、有符號(hào)數(shù)二、有符號(hào)數(shù)數(shù)值位如為純小數(shù),則此機(jī)器數(shù)稱為定點(diǎn)小數(shù),如為數(shù)值位如為純小數(shù),則此機(jī)器數(shù)稱為定點(diǎn)小數(shù),如為純整數(shù),則此機(jī)器數(shù)稱為定點(diǎn)整數(shù)。純整數(shù),則此機(jī)器數(shù)稱為定點(diǎn)整數(shù)。真值真值 帶符號(hào)的機(jī)器數(shù)對(duì)應(yīng)的數(shù)值,符號(hào)用+、-號(hào)表示。例如8位定點(diǎn)整數(shù)00100001B和10100011B的真值分別為:00100001B=+0100001B=+33D10100011B=-0100011B=-35D定點(diǎn)數(shù)的

9、表示方法n定點(diǎn)表示定點(diǎn)表示:約定機(jī)器中所有數(shù)據(jù)的小數(shù)點(diǎn)位置是固約定機(jī)器中所有數(shù)據(jù)的小數(shù)點(diǎn)位置是固定不變的。通常將數(shù)據(jù)表示成定不變的。通常將數(shù)據(jù)表示成純小數(shù)純小數(shù)或或純整數(shù)純整數(shù)n定點(diǎn)數(shù)定點(diǎn)數(shù)xx0 x1x2xn 在定點(diǎn)機(jī)中表示如下在定點(diǎn)機(jī)中表示如下(x0表示表示符號(hào)位,符號(hào)位,0代表正號(hào),代表正號(hào),1代表負(fù)號(hào)代表負(fù)號(hào))定點(diǎn)整數(shù)的小數(shù)點(diǎn)位置定點(diǎn)小數(shù)的小數(shù)點(diǎn)位置例:例: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

10、=-0.10101符號(hào)位取符號(hào)位取0純小數(shù):純小數(shù):X = 0.11011符號(hào)位取符號(hào)位取1純小數(shù):純小數(shù):X = 1.10101 (原碼)(原碼)計(jì)算機(jī)表示帶符號(hào)數(shù)的編碼方法有四種:計(jì)算機(jī)表示帶符號(hào)數(shù)的編碼方法有四種:原碼、反碼原碼、反碼、補(bǔ)碼、移碼、補(bǔ)碼、移碼。約定整數(shù)符號(hào)位與數(shù)制位之間用逗號(hào)隔開約定整數(shù)符號(hào)位與數(shù)制位之間用逗號(hào)隔開 小數(shù)符號(hào)位與數(shù)制位之間用小數(shù)點(diǎn)隔開小數(shù)符號(hào)位與數(shù)制位之間用小數(shù)點(diǎn)隔開2. 原碼表示法原碼表示法帶符號(hào)的絕對(duì)值表示帶符號(hào)的絕對(duì)值表示(1) 定義定義整數(shù)整數(shù)x 為真值為真值n 為整數(shù)的位數(shù)為整數(shù)的位數(shù)如如x = +1110 x原原 = 0 , 1110 x原原

11、= 24 + 1110 = 1 , 1110 x = 1110 x原原 = 0,x 2n x 02n x 0 x 2n用用 逗號(hào)逗號(hào) 將符號(hào)位將符號(hào)位和數(shù)值部分隔開和數(shù)值部分隔開小數(shù)小數(shù)x 為真值為真值如如x = + 0.1101x原原 = 0 . 1101 x = 0.1101x原原 = 1 ( 0.1101) = 1 . 1101 x 1 x 0 x原原 = 1 x 0 x 1x = 0.1000000 x原原 = 1 ( 0.1000000) = 1 . 1000000 x = + 0.1000000 x原原 = 0 . 1000000用用 小數(shù)點(diǎn)小數(shù)點(diǎn) 將符號(hào)將符號(hào)位和數(shù)值部分隔開位和

12、數(shù)值部分隔開用用 小數(shù)點(diǎn)小數(shù)點(diǎn) 將符號(hào)將符號(hào)位和數(shù)值部分隔開位和數(shù)值部分隔開(2) 舉例舉例例例 1 已知已知 x原原 = 1.0011 求求 x解解:例例 2 已知已知 x原原 = 1,1100 求求 x解解:x = 1 x原原 = 1 1.0011 = 0.0011x = 24 x原原 = 10000 1,1100 = 1100 0.00111100由定義得由定義得由定義得由定義得例例 4 求求 x = 0 的原碼的原碼解解: 設(shè)設(shè) x = + 0.0000例例 3 已知已知 x原原 = 0.1101 求求 x解:解: x = + 0.1101同理,對(duì)于整數(shù)同理,對(duì)于整數(shù)+ 0 原原 =

13、0,0000+ 0.0000原原 = 0.0000 x = 0.0000 0.0000原原 = 1.0000 0 原原 = 1,0000 + 0原原 0原原 根據(jù)根據(jù) 定義定義 x原原 = 0.1101原碼的特點(diǎn):原碼的特點(diǎn):簡(jiǎn)單、直觀簡(jiǎn)單、直觀但是用原碼作加法時(shí),會(huì)出現(xiàn)如下問題:但是用原碼作加法時(shí),會(huì)出現(xiàn)如下問題:能否能否 只作加法只作加法 ? 找到一個(gè)與負(fù)數(shù)等價(jià)的正數(shù)找到一個(gè)與負(fù)數(shù)等價(jià)的正數(shù) 來代替這個(gè)負(fù)數(shù)來代替這個(gè)負(fù)數(shù)就可使就可使 減減 加加加法加法 正正 正正加加加法加法 正正 負(fù)負(fù)加法加法 負(fù)負(fù) 正正加法加法 負(fù)負(fù) 負(fù)負(fù)減減減減加加 要求要求 數(shù)數(shù)1 數(shù)數(shù)2 實(shí)際操作實(shí)際操作 結(jié)果符

14、號(hào)結(jié)果符號(hào)正正可正可負(fù)可正可負(fù)可正可負(fù)可正可負(fù)負(fù)負(fù)- 123(1) 補(bǔ)的概念補(bǔ)的概念 時(shí)鐘時(shí)鐘逆時(shí)針逆時(shí)針- 363順時(shí)針順時(shí)針+ 9 6153. 補(bǔ)碼表示法補(bǔ)碼表示法可見可見 3 可用可用 + 9 代替代替記作記作 3 + 9 (mod 12)同理同理 4 + 8 (mod 12) 5 + 7 (mod 12) 時(shí)鐘以時(shí)鐘以 12為模為模減法減法 加法加法稱稱 + 9 是是 3 以以 12 為模的為模的 補(bǔ)數(shù)補(bǔ)數(shù)結(jié)論結(jié)論 一個(gè)負(fù)數(shù)加上一個(gè)負(fù)數(shù)加上 “模?!?即得該負(fù)數(shù)的補(bǔ)數(shù)即得該負(fù)數(shù)的補(bǔ)數(shù) 一個(gè)正數(shù)和一個(gè)負(fù)數(shù)互為補(bǔ)數(shù)時(shí)一個(gè)正數(shù)和一個(gè)負(fù)數(shù)互為補(bǔ)數(shù)時(shí) 它們絕對(duì)值之和即為它們絕對(duì)值之和即為 模模

15、數(shù)數(shù) 計(jì)數(shù)器計(jì)數(shù)器(模(模 16) 101110110000+ 0101 1011100001011 0000 ?可見可見 1011 可用可用 + 0101 代替代替同理同理 011 0.1001自然去掉自然去掉記作記作 1011(mod 24) + 0101(mod 23) + 101 (mod 2) + 1.0111 + 0101(mod24) 1011(mod24)(2) 正數(shù)的補(bǔ)數(shù)即為其本身正數(shù)的補(bǔ)數(shù)即為其本身 + 10000+ 10000兩個(gè)互為補(bǔ)數(shù)的數(shù)兩個(gè)互為補(bǔ)數(shù)的數(shù)+ 0101+ 10101分別加上模分別加上模結(jié)果仍互為補(bǔ)數(shù)結(jié)果仍互為補(bǔ)數(shù) + 0101 + 0101 + 0101

16、24+1 10111,0101用用 逗號(hào)逗號(hào) 將符號(hào)位將符號(hào)位和數(shù)值部分隔開和數(shù)值部分隔開丟掉丟掉 10110 , 1 ,?1011(mod24)可見可見?+ 01010101010110110101+(mod24+1)100000=(3) 補(bǔ)碼定義補(bǔ)碼定義整數(shù)整數(shù)x 為真值為真值n 為整數(shù)的位數(shù)為整數(shù)的位數(shù)x補(bǔ)補(bǔ) = 0,x 2n x 02n+1 + x 0 x 2n(mod 2n+1)如如x = +1010 x補(bǔ)補(bǔ) = 27+1 +( 1011000 )=x補(bǔ)補(bǔ) = 0,1010 x = 10110001,0101000用用 逗號(hào)逗號(hào) 將符號(hào)位將符號(hào)位和數(shù)值部分隔開和數(shù)值部分隔開10110

17、00100000000小數(shù)小數(shù)x 為真值為真值x = + 0.1110 x補(bǔ)補(bǔ) = x 1 x 02 + x 0 x 1(mod 2)如如x補(bǔ)補(bǔ) = 0.1110 x = 0.11000001.0100000 x補(bǔ)補(bǔ) = 2 + ( 0.1100000 )=用用 小數(shù)點(diǎn)小數(shù)點(diǎn) 將符號(hào)位將符號(hào)位和數(shù)值部分隔開和數(shù)值部分隔開0.110000010.0000000(4) 求補(bǔ)碼的快捷方式求補(bǔ)碼的快捷方式= 100000= 1,011010101 + 1= 1,0110 又又x原原 = 1,1010則則x補(bǔ)補(bǔ) = 24+1 1010= 11111 + 1 1010= 1111110101010當(dāng)真值為

18、當(dāng)真值為 負(fù)負(fù) 時(shí),時(shí),補(bǔ)碼補(bǔ)碼 可用可用 原碼除符號(hào)位外原碼除符號(hào)位外每位取反,末位加每位取反,末位加 1 求得求得+ 1設(shè)設(shè) x = 1010 時(shí)時(shí)(5) 舉例舉例解:解:x = + 0.0001解:由定義得解:由定義得x = x補(bǔ)補(bǔ) 2 = 1.0001 10.0000 x原原 = 1.1111例例 6 已知已知 x補(bǔ)補(bǔ) = 1.0001求求 xx補(bǔ)補(bǔ) x原原 ?由定義得由定義得例例 5 已知已知 x補(bǔ)補(bǔ) = 0.0001求求 x x = 0.1111 = 0.1111 例例 7解:解:x = x補(bǔ)補(bǔ) 24+1 = 1,1110 100000 x原原 = 1,0010當(dāng)真值為當(dāng)真值為 負(fù)

19、負(fù) 時(shí),時(shí),原碼原碼 可用可用 補(bǔ)碼除符號(hào)位外補(bǔ)碼除符號(hào)位外每位取反,末位加每位取反,末位加 1 求得求得x補(bǔ)補(bǔ) x原原 ? x = 0010= 0010求求 x已知已知 x補(bǔ)補(bǔ) = 1,1110由定義得由定義得真值真值0, 10001101, 01110100.11101.00100.00000.00001.00000,10001101,10001100.11101.11100.00001.0000不能表示不能表示練習(xí)練習(xí)求下列真值的補(bǔ)碼求下列真值的補(bǔ)碼 1補(bǔ)補(bǔ) = 2 + x = 10.0000 1.0000 = 1.0000+ 0補(bǔ)補(bǔ) = 0補(bǔ)補(bǔ)由小數(shù)補(bǔ)碼定義由小數(shù)補(bǔ)碼定義= 10001

20、10 x補(bǔ)補(bǔ) x原原x = +70 x = 0.1110 x = 0.0000 x = 70 x = 0.1110 x = 0.0000 x = 1.0000= 1000110 x補(bǔ)補(bǔ) = x 1 x 02+ x 0 x 1(mod 2)4. 反碼表示法反碼表示法(1) 定義定義整數(shù)整數(shù)x反反 = 0,x 2n x 0( 2n+1 1) + x 0 x 2n(mod 2n+1 1)如如x = +1101x反反 = 0,1101 = 1,0010 x = 1101x反反 = (24+1 1) 1101 = 11111 1101用用 逗號(hào)逗號(hào) 將符號(hào)位將符號(hào)位和數(shù)值部分隔開和數(shù)值部分隔開x 為真值

21、為真值n 為整數(shù)的位數(shù)為整數(shù)的位數(shù)小數(shù)小數(shù)x = + 0.1101x反反 = 0.1101x = 0.1010 x反反 = (2 2-4) 0.1010= 1.1111 0.1010= 1.0101如如x反反 = x 1 x 0( 2 2-n) + x 0 x 1(mod 2 2-n)用用 小數(shù)點(diǎn)小數(shù)點(diǎn) 將符號(hào)位將符號(hào)位和數(shù)值部分隔開和數(shù)值部分隔開x 為真值為真值n 為小數(shù)的位數(shù)為小數(shù)的位數(shù)(2) 舉例舉例例例 10 求求 0 的反碼的反碼設(shè)設(shè) x = + 0.0000+0.0000反反= 0.0000解:解:同理,對(duì)于整數(shù)同理,對(duì)于整數(shù)+0反反= 0,0000例例9 已知已知 x反反 = 1

22、,1110 求求 x例例8 已知已知 x反反 = 0,1110 求求 x解:解:由定義得由定義得 x = + 1110解:解:= 1,1110 11111= 0001由定義得由定義得x = x反反 (24+1 1)x = 0.0000 0.0000反反= 1.1111 0反反= 1,1111 + 0反反 0反反 三種機(jī)器數(shù)的小結(jié)三種機(jī)器數(shù)的小結(jié) 對(duì)于對(duì)于正數(shù)正數(shù),原碼原碼 = 補(bǔ)碼補(bǔ)碼 = 反碼反碼 對(duì)于對(duì)于負(fù)數(shù)負(fù)數(shù) ,符號(hào)位為符號(hào)位為 1,其其 數(shù)值部分?jǐn)?shù)值部分原碼除符號(hào)位外每位取反末位加原碼除符號(hào)位外每位取反末位加 1 補(bǔ)碼補(bǔ)碼原碼除符號(hào)位外每位取反原碼除符號(hào)位外每位取反 反碼反碼 最高位

23、最高位為為符號(hào)位符號(hào)位,(整數(shù)),(整數(shù))“.”(小數(shù))將數(shù)值部分和符號(hào)位隔開(小數(shù))將數(shù)值部分和符號(hào)位隔開例例11 000000000000000100000010011111111000000010000001111111011111111011111111128129-0-1-128-127-127-126二進(jìn)制代碼二進(jìn)制代碼 無符號(hào)數(shù)無符號(hào)數(shù)對(duì)應(yīng)的真值對(duì)應(yīng)的真值原碼對(duì)應(yīng)原碼對(duì)應(yīng) 的真值的真值補(bǔ)碼對(duì)應(yīng)補(bǔ)碼對(duì)應(yīng) 的真值的真值反碼對(duì)應(yīng)反碼對(duì)應(yīng) 的真值的真值012127253254255-125-126-127-3-2-1-2-1-0+0+1+2+127+0+1+2+127+0+1+2+127

24、+0 設(shè)機(jī)器數(shù)字長(zhǎng)為設(shè)機(jī)器數(shù)字長(zhǎng)為 8 位(其中位為符號(hào)位)位(其中位為符號(hào)位)對(duì)于整數(shù),當(dāng)其分別代表無符號(hào)數(shù)、原碼、補(bǔ)碼和對(duì)于整數(shù),當(dāng)其分別代表無符號(hào)數(shù)、原碼、補(bǔ)碼和反碼時(shí),對(duì)應(yīng)的真值范圍各為多少?反碼時(shí),對(duì)應(yīng)的真值范圍各為多少?例例12 解:解:已知已知 y補(bǔ)補(bǔ) 求求 y補(bǔ)補(bǔ) y補(bǔ)補(bǔ) = 0. y1 y2 yny = 0. y1 y2 yny = 0. y1 y2 yn y補(bǔ)補(bǔ) = 1.y1 y2 yn + 2-n y補(bǔ)補(bǔ) = 1. y1 y2 yn y原原 = 1. y1 y2 yn + 2-n y = (0. y1 y2 yn + 2-n) y = 0. y1 y2 yn + 2-n

25、y補(bǔ)補(bǔ) = 0. y1 y2 yn + 2-n設(shè)設(shè) y補(bǔ)補(bǔ) = y0. y1 y2 yn每位取反,每位取反,即得即得 y補(bǔ)補(bǔ)y補(bǔ)補(bǔ)連同符號(hào)位在內(nèi),連同符號(hào)位在內(nèi),末位加末位加 1每位取反,每位取反,即得即得 y補(bǔ)補(bǔ)y補(bǔ)補(bǔ)連同符號(hào)位在內(nèi),連同符號(hào)位在內(nèi),末位加末位加 15. 移碼表示法移碼表示法補(bǔ)碼表示很難直接判斷其真值大小補(bǔ)碼表示很難直接判斷其真值大小如如 十進(jìn)制十進(jìn)制x = +21x = 21x = +31x = 31x + 25+10101 + 100000+11111 + 10000010101 + 10000011111 + 100000大大大大錯(cuò)錯(cuò)錯(cuò)錯(cuò)大大大大正確正確正確正確0,10

26、1011,010110,111111,00001+10101 10101+11111 11111= 110101= 001011= 111111= 000001二進(jìn)制二進(jìn)制補(bǔ)碼補(bǔ)碼(1) 移碼定義移碼定義x 為真值,為真值,n 為為 整數(shù)的位數(shù)整數(shù)的位數(shù)移碼在數(shù)軸上的表示移碼在數(shù)軸上的表示x移碼移碼2n+112n2n 12n00真值真值如如x = 10100 x移移 = 25 + 10100用用 逗號(hào)逗號(hào) 將符號(hào)位將符號(hào)位和數(shù)值部分隔開和數(shù)值部分隔開x = 10100 x移移 = 25 10100 x移移 = 2n + x(2nx 2n)= 1,10100= 0,01100(2) 移碼和補(bǔ)碼的

27、比較移碼和補(bǔ)碼的比較設(shè)設(shè) x = +1100100 x移移 = 27 + 1100100 x補(bǔ)補(bǔ) = 0,1100100設(shè)設(shè) x = 1100100 x移移 = 27 1100100 x補(bǔ)補(bǔ) = 1,0011100補(bǔ)碼與移碼只差一個(gè)符號(hào)位補(bǔ)碼與移碼只差一個(gè)符號(hào)位= 1,1100100= 0,00111001001- 1 0 0 0 0 0- 1 1 1 1 1- 1 1 1 1 0- 0 0 0 0 1 0 0 0 0 0+ 0 0 0 0 1+ 0 0 0 1 0+ 1 1 1 1 0+ 1 1 1 1 1真值真值 x ( n = 5 )x補(bǔ)補(bǔ)x移移x 移移對(duì)應(yīng)的對(duì)應(yīng)的十進(jìn)制整數(shù)十進(jìn)制整數(shù)(

28、3) 真值、補(bǔ)碼和移碼的對(duì)照表真值、補(bǔ)碼和移碼的對(duì)照表0123132333462630 0 0 0 0 00 0 0 0 1 00 0 0 0 0 10 1 1 1 1 11 0 0 0 0 01 0 0 0 0 11 0 0 0 1 01 1 1 1 1 01 1 1 1 1 10 1 1 1 1 10 1 1 1 1 00 0 0 0 1 00 0 0 0 0 10 0 0 0 0 01 1 1 1 1 11 0 0 0 1 01 0 0 0 0 11 0 0 0 0 0- 1 0 0 0 0 0 0 0 0 0 0+ 1 1 1 1 10 0 0 0 0 01 1 1 1 1 10 0

29、0 0 0 01 0 0 0 0 0 當(dāng)當(dāng) x = 0 時(shí)時(shí) +0移移 = 25 + 0 當(dāng)當(dāng) n = 5 時(shí)時(shí)可見,可見,最小真值的移碼為全最小真值的移碼為全 0(4) 移碼的特點(diǎn)移碼的特點(diǎn)用移碼表示浮點(diǎn)數(shù)的階碼用移碼表示浮點(diǎn)數(shù)的階碼能方便地判斷浮點(diǎn)數(shù)的階碼大小能方便地判斷浮點(diǎn)數(shù)的階碼大小= 1,00000= 1,00000= 000000 0移移 = 25 0 +0移移 = 0移移 100000移移= 25 100000最小的真值為最小的真值為 25= 100000N = (-1)sMRE浮點(diǎn)數(shù)的一般形式浮點(diǎn)數(shù)的一般形式M尾數(shù)尾數(shù)E 階碼階碼 R基數(shù)(基值)基數(shù)(基值)M 定點(diǎn)小數(shù),用原碼

30、或補(bǔ)碼表示定點(diǎn)小數(shù),用原碼或補(bǔ)碼表示E 定點(diǎn)整數(shù)、用移碼或補(bǔ)碼定點(diǎn)整數(shù)、用移碼或補(bǔ)碼表示表示S為數(shù)據(jù)的符號(hào)位為數(shù)據(jù)的符號(hào)位0為正數(shù),為正數(shù),1為負(fù)數(shù)為負(fù)數(shù)l目的:字長(zhǎng)固定的情況下提高表示精度的措施: 1 增加尾數(shù)位數(shù)(但數(shù)值范圍減?。?2 采用浮點(diǎn)規(guī)格化形式l規(guī)格化方法:調(diào)整階碼使尾數(shù)滿足下列關(guān)系:尾數(shù)為原碼表示時(shí),無論正負(fù)應(yīng)滿足1/2|d |1 即:小數(shù)點(diǎn)后的第一位數(shù)一定要為1。正數(shù)的尾數(shù)應(yīng)為0.1x.x負(fù)數(shù)的尾數(shù)應(yīng)為1.1x.x尾數(shù)用補(bǔ)碼表示時(shí),小數(shù)最高位應(yīng)與數(shù)符符號(hào)位相反。正數(shù)應(yīng)滿足 1/2d d -1,即 1.0 x.x1. 求X=256.5 的第一種浮點(diǎn)表示格式 X=(256. 5)

31、10 =+(100000000.1)2 =+(0.1000000001 x 2+9 )2 8位階碼為:(+9)補(bǔ)=0000 1001 24位尾數(shù)為:(+0.10 0000 0001)補(bǔ) =0.100 0000 0010 0000 0000 0000 所求256.5的浮點(diǎn)表示格式為: 0000 1001 0100 0000 0010 0000 0000 0000 用16進(jìn)制表示此結(jié)果則為:(09402000)16 Y=-(256. 5)10 =-(100000000.1)2 =-0.1000000001 x2+9 8位階碼為:(+9)補(bǔ)=0000 1001 24位尾數(shù)為:(-0.10 0000

32、0001)補(bǔ) =1.011 1111 1110 0000 0000 0000 所求-256.5的浮點(diǎn)表示格式為: 0000 1001 1011 1111 1110 0000 0000 0000 用16進(jìn)制表示此結(jié)果則為:(09BFE000)162. 求Y= -256.5 的第一種浮點(diǎn)表示格式l 定點(diǎn)數(shù)的溢出根據(jù)數(shù)值本身判斷l(xiāng) 浮點(diǎn)數(shù)的溢出根據(jù)規(guī)格化后的階碼判斷上溢浮點(diǎn)數(shù)階碼大于機(jī)器最大階碼 中斷下溢浮點(diǎn)數(shù)階碼小于機(jī)器最小階碼 零處理IEEE 754 標(biāo)準(zhǔn)標(biāo)準(zhǔn)短實(shí)數(shù)(單精度)短實(shí)數(shù)(單精度)長(zhǎng)實(shí)數(shù)(雙精度)長(zhǎng)實(shí)數(shù)(雙精度)臨時(shí)實(shí)數(shù)臨時(shí)實(shí)數(shù)符號(hào)位符號(hào)位 S 階碼階碼 尾數(shù)尾數(shù) 總位數(shù)總位數(shù)1 8

33、23 321 11 52 641 15 64 80S 階碼(含階符)階碼(含階符) 尾尾 數(shù)數(shù)數(shù)符數(shù)符小數(shù)點(diǎn)位置小數(shù)點(diǎn)位置尾數(shù)尾數(shù)一般一般為規(guī)格化表示(有非規(guī)格化數(shù))為規(guī)格化表示(有非規(guī)格化數(shù))規(guī)格化數(shù)非規(guī)格化數(shù)非 “0” 的有效位最高位為的有效位最高位為 “1”(隱含)(隱含)l單精度 31 30 23 22 0 符號(hào)位 階 碼 尾數(shù)有效位 1 l雙精度 63 62 52 51 0 符號(hào)位 階 碼 尾數(shù)有效位 1 l 1為隱藏位 l根據(jù)根據(jù)IEEE 754標(biāo)準(zhǔn),符號(hào)位也是標(biāo)準(zhǔn),符號(hào)位也是“0”代表代表正數(shù);正數(shù);“1”代表負(fù)數(shù)。代表負(fù)數(shù)。l階碼用移碼表示,尾數(shù)規(guī)格化形式,但格式階碼用移碼表示

34、,尾數(shù)規(guī)格化形式,但格式如下:如下:1.XXXX。由于最高位總是。由于最高位總是1,因此,因此省略,稱隱藏位省略,稱隱藏位(臨時(shí)實(shí)數(shù)則不隱藏臨時(shí)實(shí)數(shù)則不隱藏)。l尾數(shù)比規(guī)格化表示大一倍,而階碼部分則比尾數(shù)比規(guī)格化表示大一倍,而階碼部分則比一般小一般小1。l尾數(shù)與通常意義的尾數(shù)的含義不一致,為了尾數(shù)與通常意義的尾數(shù)的含義不一致,為了區(qū)別,區(qū)別,754 中的尾數(shù)稱為有效數(shù)。中的尾數(shù)稱為有效數(shù)。l1、將十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù):整數(shù)部分用、將十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù):整數(shù)部分用2來來除,小數(shù)部分用除,小數(shù)部分用2來乘;來乘;l2、規(guī)格化二進(jìn)制數(shù):改變階碼,、規(guī)格化二進(jìn)制數(shù):改變階碼,使小數(shù)點(diǎn)前面僅使小數(shù)

35、點(diǎn)前面僅有第一位有效數(shù)字有第一位有效數(shù)字;l3、計(jì)算階碼:、計(jì)算階碼:短型浮點(diǎn)數(shù)的階碼加上偏移量短型浮點(diǎn)數(shù)的階碼加上偏移量7FH(127)長(zhǎng)型浮點(diǎn)數(shù)的階碼加上偏移量長(zhǎng)型浮點(diǎn)數(shù)的階碼加上偏移量3FFH擴(kuò)展型浮點(diǎn)數(shù)的階碼加上偏移量擴(kuò)展型浮點(diǎn)數(shù)的階碼加上偏移量3FFFHl4、以浮點(diǎn)數(shù)據(jù)格式存儲(chǔ)。把數(shù)值的符號(hào)位、階碼、以浮點(diǎn)數(shù)據(jù)格式存儲(chǔ)。把數(shù)值的符號(hào)位、階碼和尾數(shù)合在一起就得到了該數(shù)的浮點(diǎn)存儲(chǔ)形式。和尾數(shù)合在一起就得到了該數(shù)的浮點(diǎn)存儲(chǔ)形式。例例1 把十進(jìn)制數(shù)把十進(jìn)制數(shù)100.25轉(zhuǎn)換成轉(zhuǎn)換成IEEE 754短實(shí)型數(shù)短實(shí)型數(shù)解:解:1、進(jìn)制轉(zhuǎn)換:、進(jìn)制轉(zhuǎn)換:100.25 1100100.01B2、規(guī)格化

36、:、規(guī)格化:1100100.01 1.1001000123、計(jì)算階碼:、計(jì)算階碼: 110 + 01111111(127)100001014、有效數(shù)(尾數(shù))的符號(hào)位:、有效數(shù)(尾數(shù))的符號(hào)位:0 階碼:階碼:10000101 尾數(shù):尾數(shù):1001 0001 0000 0000 0000 000綜合上述可得:綜合上述可得:100.25的浮點(diǎn)形式為:的浮點(diǎn)形式為:0 10000101 10010001000000000000000例例2 把如下把如下IEEE 754浮點(diǎn)數(shù)轉(zhuǎn)換成十進(jìn)制數(shù):浮點(diǎn)數(shù)轉(zhuǎn)換成十進(jìn)制數(shù): 1100000111001001000000000000解:解:1、浮點(diǎn)數(shù)、浮點(diǎn)數(shù)110

37、0000111001001000000000000分割分割成三部分成三部分符號(hào)位:符號(hào)位:1階碼:階碼:10000011尾數(shù):尾數(shù):1001001000000000000 2、還原階碼:、還原階碼: 10000011 01111111(127)1003、該浮點(diǎn)數(shù)的規(guī)格化形式:、該浮點(diǎn)數(shù)的規(guī)格化形式:1.100100124 (其中前面的其中前面的“1.”從隱含位而來從隱含位而來)4、該浮點(diǎn)數(shù)的非規(guī)格化形式:、該浮點(diǎn)數(shù)的非規(guī)格化形式: 11001.0015、該浮點(diǎn)數(shù)的十進(jìn)制數(shù)為、該浮點(diǎn)數(shù)的十進(jìn)制數(shù)為 -25.125l解:178.125=10110010.001B =1.0110010001x27

38、指數(shù)E=7+127=134=10000110B 127是單精度浮點(diǎn)數(shù)應(yīng)加的指數(shù)偏移量,其完整的浮點(diǎn)數(shù)形式為 : 0 10000110 011 0010 0010 0000 0000 0000 = 43322000H例:將下面Pentium機(jī)中的單精度浮點(diǎn)數(shù)表示成十進(jìn)制真值是多少?0011 ,1111,0101,1000,0000,0000,0000,0000數(shù)符:S=(-1) 0=1 (正號(hào))階碼: E=(01111110)2-127=126-127= -1尾數(shù): D=(1.1011)2X= 1.1011x2-1= (0.11011)2=0.84375一、字符編碼一、字符編碼1.1.ASCII

39、 碼字符是非數(shù)值型數(shù)據(jù),在計(jì)算機(jī)內(nèi)用二進(jìn)制編碼形式表示。當(dāng)前西文字符常用的編碼是ASCII 碼,它用7位二進(jìn)制編碼表示128個(gè)字符,通常,在計(jì)算機(jī)內(nèi)部,每一個(gè)ASCII用一個(gè)字節(jié)(8位二進(jìn)制)來表示。ASCII碼:American Standard Code for Information Interchangel標(biāo)準(zhǔn)ASCII碼用7位二進(jìn)制編碼,有128個(gè)l不可顯示的控制字符:前32個(gè)和最后一個(gè)編碼回車CR:0DH 換行LF:0AH 響鈴BEL:07Hl可顯示和打印的字符:20H后的94個(gè)編碼數(shù)碼09:30H39H大寫字母AZ:41H5AH小寫字母az:61H7AH空格:20Hl擴(kuò)展ASCI

40、I碼:最高D7位為1,表達(dá)制表符號(hào)二、漢字編碼二、漢字編碼在計(jì)算機(jī)內(nèi)部,漢字也用二進(jìn)制編碼來表示。在漢字處理的不同階段,所用的漢字編碼方案有所不同。漢字輸入碼:漢字輸入碼:用于鍵盤輸入,拼音、五筆、自然碼等。漢字內(nèi)部碼:漢字內(nèi)部碼:機(jī)內(nèi)碼,供計(jì)算機(jī)內(nèi)部存儲(chǔ)、處理、傳輸用的代碼。每個(gè)碼用兩個(gè)字節(jié)表示,每個(gè)字節(jié)的最高位為1,以區(qū)別于ASCII 碼。漢字交換碼:漢字交換碼:用于不同計(jì)算機(jī)漢字系統(tǒng)之間或漢字系統(tǒng)與通信系統(tǒng)之間進(jìn)行漢字交換。漢字字形碼:漢字字形碼:也稱字模。用于點(diǎn)陣形式輸出時(shí)描述漢字字形的編碼。點(diǎn)陣越大,描述的字形越細(xì)致美觀,但其字形碼所占字節(jié)數(shù)也越多。如1616點(diǎn)陣,要用32個(gè)字節(jié),而

41、2424點(diǎn)陣則要用72個(gè)字節(jié)。l漢字交換碼是不同的漢字處理系統(tǒng)之間交換信漢字交換碼是不同的漢字處理系統(tǒng)之間交換信息用的編碼息用的編碼l漢字也是一種字符漢字也是一種字符l1981年我國(guó)制定了年我國(guó)制定了信息交換用漢字編碼字符信息交換用漢字編碼字符集基本集集基本集GB2312-80國(guó)家標(biāo)準(zhǔn)(簡(jiǎn)稱國(guó)家標(biāo)準(zhǔn)(簡(jiǎn)稱國(guó)標(biāo)國(guó)標(biāo)碼碼)。每個(gè)漢字的二進(jìn)制編碼用兩個(gè)字節(jié)表示。)。每個(gè)漢字的二進(jìn)制編碼用兩個(gè)字節(jié)表示。共收錄一級(jí)漢字共收錄一級(jí)漢字3755個(gè),二級(jí)漢字個(gè),二級(jí)漢字3008個(gè),各個(gè),各種符號(hào)種符號(hào)682個(gè),共計(jì)個(gè),共計(jì)7445個(gè)個(gè)l漢字內(nèi)碼漢字內(nèi)碼是用于漢字信息的存儲(chǔ)、檢索等操作的是用于漢字信息的存儲(chǔ)、檢

42、索等操作的機(jī)內(nèi)機(jī)內(nèi)代碼代碼,一般采用兩個(gè)字節(jié)表示,一般采用兩個(gè)字節(jié)表示l漢字內(nèi)碼有多種方案,常以國(guó)標(biāo)碼為基礎(chǔ)的編碼漢字內(nèi)碼有多種方案,常以國(guó)標(biāo)碼為基礎(chǔ)的編碼l例如,將國(guó)標(biāo)碼兩字節(jié)的最高位置例如,將國(guó)標(biāo)碼兩字節(jié)的最高位置1后形成后形成l漢字漢字“啊啊”的國(guó)標(biāo)碼的國(guó)標(biāo)碼 3021H (0011 0000 0010 0001)l對(duì)應(yīng)的漢字內(nèi)碼對(duì)應(yīng)的漢字內(nèi)碼 B0A1H (1011 0000 1010 0001)字模碼字模碼漢字的字模碼為:漢字的字模碼為:16位位 16位位=32字節(jié)字節(jié)漢字字模點(diǎn)陣及編碼漢字字模點(diǎn)陣及編碼漢字的輸入編碼、交換碼、漢字內(nèi)碼、字模碼是計(jì)算機(jī)中用于輸入、內(nèi)部處理、交換、輸出

43、四種不同用途的編碼。 顯示輸出顯示輸出打印輸出打印輸出機(jī)內(nèi)碼向字形碼轉(zhuǎn)換機(jī)內(nèi)碼向字形碼轉(zhuǎn)換機(jī)內(nèi)碼機(jī)內(nèi)碼輸入碼向機(jī)內(nèi)碼轉(zhuǎn)換輸入碼向機(jī)內(nèi)碼轉(zhuǎn)換字符代碼化(輸入)字符代碼化(輸入)&三、十進(jìn)制編碼&人們習(xí)慣于用十進(jìn)制表示數(shù)據(jù),而計(jì)算機(jī)則采用二進(jìn)制表示和處理數(shù)據(jù)。所以向計(jì)算機(jī)輸入數(shù)據(jù)時(shí),需要進(jìn)行十進(jìn)制數(shù)到二進(jìn)制數(shù)的轉(zhuǎn)換;輸出數(shù)據(jù)時(shí),則要進(jìn)行二進(jìn)制數(shù)到十進(jìn)制數(shù)的轉(zhuǎn)換處理。在數(shù)據(jù)量較小的情況下,這樣的轉(zhuǎn)換對(duì)機(jī)器運(yùn)行效率的影響不是很大。但是,在某些應(yīng)用領(lǐng)域,運(yùn)算簡(jiǎn)單而數(shù)據(jù)量很大,進(jìn)行這些轉(zhuǎn)換所占用的時(shí)間比例比較大。所以為了提高機(jī)器的運(yùn)行效率,計(jì)算機(jī)可以用十進(jìn)制來表示和處理數(shù)據(jù)。&一個(gè)

44、十進(jìn)制數(shù)位是用若干位二進(jìn)制編碼表示。用四位二進(jìn)制代碼的不同組合來表示一個(gè)十進(jìn)制數(shù)碼的編碼方法,稱為二十進(jìn)制編碼,也稱BCD碼(Binary Coded Decimal)。 常用這種編碼作為十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的中間過渡。即先將一個(gè)十進(jìn)制數(shù)用BCD碼來表示,再把它們送入機(jī)器, 計(jì)算機(jī)通過標(biāo)準(zhǔn)子程序使其轉(zhuǎn)換成純二進(jìn)制數(shù)。 l對(duì)于有權(quán)碼,將每位的數(shù)碼與相應(yīng)的位權(quán)相乘,再求和,就可以得到它所代表的十進(jìn)制數(shù)值。l編碼方法:8421碼,2421碼、5211碼、4311碼和84-2-1碼( 四位二進(jìn)制位的位權(quán)分別為8、4、-2、-1)等。其最方便使用的共同特點(diǎn)為: 對(duì)于2421碼、5211碼、4311碼,

45、任何兩個(gè)十進(jìn)制數(shù)位,采用這三種編碼的任何一種編碼,它們相加之和等于或大于10時(shí),其結(jié)果的最高位向左產(chǎn)生進(jìn)位,小于10時(shí)則不產(chǎn)生進(jìn)位。這一特點(diǎn)有利于實(shí)現(xiàn)“逢十進(jìn)位”的計(jì)數(shù)和加法規(guī)則。無權(quán)碼中,用的較多的是余3碼(Excess-3 code) 余3碼是在8421碼的基礎(chǔ)上,把每個(gè)代碼都加上0011而形成的。數(shù)據(jù)在機(jī)內(nèi)加工、傳送過程中可能產(chǎn)生錯(cuò)誤,為避免和減少這類錯(cuò)誤,一方面是盡量提高計(jì)算機(jī)硬件本身的可靠性,如精選各種電路,改進(jìn)生產(chǎn)工藝與測(cè)試手段;另一方面是對(duì)數(shù)據(jù)進(jìn)行編碼,即采用帶有某種特征能力的編碼方法,通過少量的附加電路,使之能發(fā)現(xiàn)錯(cuò)誤,甚至能準(zhǔn)確地指出出錯(cuò)位置,進(jìn)而提供自動(dòng)糾錯(cuò)的能力。數(shù)據(jù)校驗(yàn)

46、碼即是一種常用的檢錯(cuò)、糾錯(cuò)的數(shù)據(jù)編碼。1.1.奇偶校驗(yàn)碼是一種最簡(jiǎn)單最常用的校驗(yàn)碼。原理:原理:在 k 位數(shù)據(jù)碼之外增加 1 位校驗(yàn)位,使 K+1 位碼字中取值為 1 的位數(shù)總保持為 偶數(shù)(偶校驗(yàn))或 奇數(shù)(奇校驗(yàn)),若有奇數(shù)位出錯(cuò),則校驗(yàn)碼的奇偶特性將改變,從而發(fā)現(xiàn)出錯(cuò)。缺點(diǎn)是只能校驗(yàn)奇數(shù)位出錯(cuò),并且只能發(fā)現(xiàn)錯(cuò)誤不能定位錯(cuò)誤,即不能糾錯(cuò)。例如: 偶校驗(yàn) 奇校驗(yàn) 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 原有數(shù)據(jù)位 兩個(gè)新的校驗(yàn)碼 校驗(yàn)位校驗(yàn)位2.2.海明碼能檢測(cè)出兩個(gè)錯(cuò)誤,并能糾正一個(gè)錯(cuò)誤3.3.循環(huán)冗余校驗(yàn)碼簡(jiǎn)稱CRC碼

47、,是一種具有很強(qiáng)檢錯(cuò)、糾錯(cuò)能力的校驗(yàn)碼。循環(huán)冗余校驗(yàn)碼是用信息碼字除以給定的生成多項(xiàng)式G(X),將所得余數(shù)拼接在信息位后形成CRC碼發(fā)送。接收端收到CRC碼后再除以同樣的生成多項(xiàng)式,結(jié)果余數(shù)為0表示無錯(cuò),否則表示出錯(cuò)。2.2定點(diǎn)數(shù)加減法運(yùn)算定點(diǎn)數(shù)加減法運(yùn)算2.2.1. 補(bǔ)碼加減運(yùn)算補(bǔ)碼加減運(yùn)算(1) 加法加法 (2) 減法減法 整數(shù)整數(shù) A補(bǔ)補(bǔ) + B補(bǔ)補(bǔ)= A+B補(bǔ)補(bǔ)(mod 2n+1)小數(shù)小數(shù) A補(bǔ)補(bǔ) + B補(bǔ)補(bǔ)= A+B補(bǔ)補(bǔ)(mod 2)AB = A+(B )整數(shù)整數(shù) A B補(bǔ)補(bǔ)= A+(B )補(bǔ)補(bǔ)= A補(bǔ)補(bǔ) + B補(bǔ)補(bǔ)(mod 2n+1)小數(shù)小數(shù) A B補(bǔ)補(bǔ)= A+(B )補(bǔ)補(bǔ)(mod

48、 2)連同符號(hào)位一起相加,符號(hào)位產(chǎn)生的進(jìn)位自然丟掉連同符號(hào)位一起相加,符號(hào)位產(chǎn)生的進(jìn)位自然丟掉= A補(bǔ)補(bǔ) + B補(bǔ)補(bǔ)2. 舉例舉例解:解:A補(bǔ)補(bǔ)B補(bǔ)補(bǔ)A補(bǔ)補(bǔ) + B補(bǔ)補(bǔ)+= 0 . 1 0 1 1= 1 . 1 0 1 1= 1 0 . 0 1 1 0 = A + B補(bǔ)補(bǔ)驗(yàn)證驗(yàn)證例例 1設(shè)設(shè) A = 0.1011,B = 0.0101求求 A + B補(bǔ)補(bǔ)0.1011 0.01010.0110 A + B = 0 . 0 1 1 0A補(bǔ)補(bǔ)B補(bǔ)補(bǔ)A補(bǔ)補(bǔ) + B補(bǔ)補(bǔ)+= 1 , 0 1 1 1= 1 , 1 0 1 1= 1 1 , 0 0 1 0= A + B補(bǔ)補(bǔ)驗(yàn)證驗(yàn)證 1001 1110 01

49、01+例例 2設(shè)設(shè) A = 9,B = 5 求求 A+B補(bǔ)補(bǔ)解:解: A + B = 1110例例 3設(shè)機(jī)器數(shù)字長(zhǎng)為設(shè)機(jī)器數(shù)字長(zhǎng)為 8 位(含位(含 1 位符號(hào)位)位符號(hào)位)且且 A = 15, B = 24,用補(bǔ)碼求用補(bǔ)碼求 A B解:解:A = 15 = 0001111B = 24 = 0011000A補(bǔ)補(bǔ) + B補(bǔ)補(bǔ)+A補(bǔ)補(bǔ)= 0, 0001111 B補(bǔ)補(bǔ)= 1, 1101000= 1, 1110111= A B補(bǔ)補(bǔ)B補(bǔ)補(bǔ) = 0, 0011000練習(xí)練習(xí) 1設(shè)設(shè) x = y = ,用補(bǔ)碼求,用補(bǔ)碼求 x+y9161116x + y = 0.1100 =1216練習(xí)練習(xí) 2 設(shè)機(jī)器數(shù)字長(zhǎng)

50、為設(shè)機(jī)器數(shù)字長(zhǎng)為 8 位(含位(含 1 位符號(hào)位)位符號(hào)位) 且且 A = 97,B = +41,用補(bǔ)碼求用補(bǔ)碼求 A BA B = + 1110110 = + 118 A B = 1001 = 9錯(cuò)錯(cuò)錯(cuò)錯(cuò)2.2.2. 溢出的檢測(cè)方法溢出的檢測(cè)方法(1) 一位符號(hào)位判溢出一位符號(hào)位判溢出參加操作的參加操作的 兩個(gè)數(shù)兩個(gè)數(shù)(減法時(shí)即為被減數(shù)和(減法時(shí)即為被減數(shù)和“求補(bǔ)求補(bǔ)”以后的減數(shù))以后的減數(shù))符號(hào)相同符號(hào)相同,其結(jié)果的符號(hào)與原操作其結(jié)果的符號(hào)與原操作數(shù)的符號(hào)不同數(shù)的符號(hào)不同,即為溢出即為溢出(2) 兩位符號(hào)位判溢出兩位符號(hào)位判溢出x補(bǔ)補(bǔ) = x 1 x 0 4 + x 0 x 1(mod 4

51、)x補(bǔ)補(bǔ) + y補(bǔ)補(bǔ) = x + y 補(bǔ)補(bǔ) (mod 4)x y補(bǔ)補(bǔ) = x補(bǔ)補(bǔ) + y補(bǔ)補(bǔ) (mod 4)結(jié)果的雙符號(hào)位結(jié)果的雙符號(hào)位 相同相同 未溢出未溢出結(jié)果的雙符號(hào)位結(jié)果的雙符號(hào)位 不同不同 溢出溢出最高符號(hào)位最高符號(hào)位 代表其代表其 真正的符號(hào)真正的符號(hào)00. 11. 10. 01. 00, 11, 10, 01, (3) 數(shù)據(jù)進(jìn)位情況溢出數(shù)據(jù)進(jìn)位情況溢出最高有效位的進(jìn)位最高有效位的進(jìn)位 符號(hào)位的進(jìn)位符號(hào)位的進(jìn)位 = 1如如1 0 = 10 1 = 1有有 溢出溢出0 0 = 01 1 = 0無無 溢出溢出溢出溢出l在計(jì)算機(jī)中完成兩個(gè)二進(jìn)制數(shù)相加的基本加法器有半加器和全加器。半加器在

52、完成兩數(shù)相加時(shí),不需要考慮低位進(jìn)位。全加器用來完成兩個(gè)二進(jìn)制數(shù)相加,并且同時(shí)考慮低位的進(jìn)位,即全加器完成三個(gè)一位數(shù)相加的功能。l設(shè): Ai表示被加數(shù)的第i位 Bi表示加數(shù)的第i位 Ci為第i-1位向第i位產(chǎn)生的進(jìn)位 Ci+1為第i位向第i+1位產(chǎn)生的進(jìn)位 Si為第i位產(chǎn)生的和l則全加器以Ai、Bi、Ci為輸入,以Ci+1、Si為輸出構(gòu)成一個(gè)邏輯圖。圖圖3-1 全加器邏輯圖全加器邏輯圖CiAiBiSiCi+1FACiAiBiSiCi+1輸 出輸 入0 11 01 00 00 1 10 1 00 0 10 0 01 01 0 00 10 11 1 01 0 11 11 1 1全加器真值表全加器真值

53、表2.3定點(diǎn)數(shù)乘除法運(yùn)算定點(diǎn)數(shù)乘除法運(yùn)算1. 分析筆算乘法分析筆算乘法A = 0.1101 B = 0.1011AB = 0.100011110 . 1 1 0 10 . 1 0 1 11 1 0 11 1 0 10 0 0 01 1 0 10 . 1 0 0 0 1 1 1 1符號(hào)位單獨(dú)處理符號(hào)位單獨(dú)處理乘數(shù)的某一位決定是否加被乘數(shù)乘數(shù)的某一位決定是否加被乘數(shù) 4個(gè)位積一起相加個(gè)位積一起相加乘積的位數(shù)擴(kuò)大一倍乘積的位數(shù)擴(kuò)大一倍乘積的符號(hào)心算求得乘積的符號(hào)心算求得 ?2. 筆算乘法改進(jìn)筆算乘法改進(jìn)A B = A 0.1011= 0.1A + 0.00A + 0.001A +0.0001A= 0

54、.1A + 0.00A + 0.001( A +0.1A)= 0.1A + 0.010 A + 0. 1( A +0.1A)= 0.1A +0.1 0 A+0.1(A + 0.1A)= 2-1A +2-1 0 A+2-1(A + 2-1(A+0)第一步第一步 被乘數(shù)被乘數(shù)A + 0第二步第二步 右移右移 一一 位,得新的部分積位,得新的部分積第八步第八步 右移右移 一一 位,得結(jié)果位,得結(jié)果第三步第三步 部分積部分積 + 被乘數(shù)被乘數(shù)右移一位右移一位3. 改進(jìn)后的筆算乘法過程(豎式)改進(jìn)后的筆算乘法過程(豎式)0 . 0 0 0 00 . 1 1 0 10 . 1 1 0 10 . 1 1 0

55、 10 . 0 0 0 00 . 1 1 0 1初態(tài),部分積初態(tài),部分積 = 0乘數(shù)為乘數(shù)為 1,加被乘數(shù),加被乘數(shù)乘數(shù)為乘數(shù)為 1,加被乘數(shù),加被乘數(shù)乘數(shù)為乘數(shù)為 0,加,加 01 . 0 0 1 110 . 1 0 0 11 11 . 0 0 0 11 1 1乘數(shù)為乘數(shù)為 1,加,加 被乘數(shù)被乘數(shù)0 . 1 0 0 01 1 1 11,得結(jié)果,得結(jié)果1 0 1 1=0 . 0 1 1 01,形成新的部分積,形成新的部分積1 1 0 1=0 . 1 0 0 11,形成新的部分積,形成新的部分積1 1 1 0=0 . 0 1 0 01,形成新的部分積,形成新的部分積1 1 1 1= 部部 分分

56、 積積 乘乘 數(shù)數(shù) 說說 明明小結(jié)小結(jié) 被乘數(shù)只與部分積的高位相加被乘數(shù)只與部分積的高位相加 由乘數(shù)的末位決定被乘數(shù)是否與原部分積相加,由乘數(shù)的末位決定被乘數(shù)是否與原部分積相加, 然后然后 1 位形成新的部分積位形成新的部分積,同時(shí),同時(shí) 乘數(shù)乘數(shù) 1位位(末位移丟),空出高位存放部分積的低位。(末位移丟),空出高位存放部分積的低位。硬件硬件3個(gè)寄存器,具有移位功能個(gè)寄存器,具有移位功能1個(gè)全加器個(gè)全加器 乘法乘法 運(yùn)算可用運(yùn)算可用 加和移位實(shí)現(xiàn)加和移位實(shí)現(xiàn)n = 4,加加 4 次次,移移 4 次次2.3.1 原碼一位乘法原碼一位乘法以小數(shù)為例以小數(shù)為例設(shè)設(shè)x原原 = x0. x1x2 xn

57、y原原 = y0. y1y2 yn= (x0 y0). x*y*x y原原 = (x0 y0).(0. x1x2 xn)(0.y1y2 yn)式中式中 x*= 0. x1x2 xn 為為 x 的絕對(duì)值的絕對(duì)值 y*= 0. y1y2 yn 為為 y 的絕對(duì)值的絕對(duì)值 乘積的符號(hào)位單獨(dú)處理乘積的符號(hào)位單獨(dú)處理 x0 y0數(shù)值部分為絕對(duì)值相乘數(shù)值部分為絕對(duì)值相乘 x* y*(2) 原碼一位乘遞推公式原碼一位乘遞推公式x* y* = x*(0.y1y2 yn)= x*(y12-1+y22-2+ + yn2-n)= 2-1(y1x*+2-1(y2x*+ 2-1(ynx* + 0) ) z1znz0 =

58、 0z1 = 2-1(ynx*+z0)z2 = 2-1(yn-1x*+z1)zn = 2-1(y1x*+zn-1)z0開始i = 0, 0Yn=1 + 0 + X Y右移一位i+1i i = nX0Y0P0結(jié)束YNNY例例1已知已知 x = 0.1110 y = 0.1101 求求x y原原解:解:數(shù)值部分的運(yùn)算數(shù)值部分的運(yùn)算0 . 0 0 0 00 . 1 1 1 00 . 1 1 1 00 . 0 0 0 00 . 1 1 1 00 . 1 1 1 0部分積部分積 初態(tài)初態(tài) z0 = 0 部部 分分 積積 乘乘 數(shù)數(shù) 說說 明明0 . 0 1 1 101 . 0 0 0 11 01 . 0

59、 1 1 01 1 00 . 1 0 1 10 1 1 01,得得 z4邏輯右移邏輯右移1 1 0 1=0 . 0 1 1 11,得得 z10 1 1 0=0 . 0 0 1 11,得得 z21 0 1 1=0 . 1 0 0 01,得得 z31 1 0 1=邏輯右移邏輯右移邏輯右移邏輯右移邏輯右移邏輯右移+ + + + + x*+ 0+ x*+ x* 數(shù)值部分按絕對(duì)值相乘數(shù)值部分按絕對(duì)值相乘 乘積的符號(hào)位乘積的符號(hào)位 x0 y0 = 1 0 = 1x* y* = 0. 1 0 1 1 0 1 1 0則則 x y原原 = 1. 1 0 1 1 0 1 1 0特點(diǎn)特點(diǎn)絕對(duì)值運(yùn)算絕對(duì)值運(yùn)算邏輯移位

60、邏輯移位例例1 結(jié)果結(jié)果用移位的次數(shù)判斷乘法是否結(jié)束用移位的次數(shù)判斷乘法是否結(jié)束設(shè)設(shè) 被乘數(shù)被乘數(shù)乘數(shù)乘數(shù)x補(bǔ)補(bǔ) = x0. x1x2 xny補(bǔ)補(bǔ) = y0. y1y2 yn 被乘數(shù)任意,乘數(shù)為正被乘數(shù)任意,乘數(shù)為正同原碼乘同原碼乘但但 加加 和和 移位移位 按按 補(bǔ)碼規(guī)則補(bǔ)碼規(guī)則 運(yùn)算運(yùn)算乘積的符號(hào)自然形成乘積的符號(hào)自然形成 被乘數(shù)任意,乘數(shù)為負(fù)被乘數(shù)任意,乘數(shù)為負(fù)乘數(shù)乘數(shù)y補(bǔ)補(bǔ),去掉符號(hào)位去掉符號(hào)位,操作同,操作同 最后最后 加加x補(bǔ)補(bǔ),校正校正2.3.2補(bǔ)碼一位乘法補(bǔ)碼一位乘法以小數(shù)為例以小數(shù)為例 Booth 算法算法(被乘數(shù)、乘數(shù)符號(hào)任意)(被乘數(shù)、乘數(shù)符號(hào)任意)設(shè)設(shè)x補(bǔ)補(bǔ) = x0.x1x2 xn y補(bǔ)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論