版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、21 數(shù)據(jù)表示方法數(shù)據(jù)表示方法(fngf)和運(yùn)算器和運(yùn)算器 2 21 11 1計(jì)算機(jī)中數(shù)據(jù)的表示方法計(jì)算機(jī)中數(shù)據(jù)的表示方法 當(dāng)前的計(jì)算機(jī)所采用的存儲(chǔ)器件都是兩態(tài)器件,所以適合于存放二進(jìn)制數(shù)據(jù)當(dāng)前的計(jì)算機(jī)所采用的存儲(chǔ)器件都是兩態(tài)器件,所以適合于存放二進(jìn)制數(shù)據(jù)。盡管為了方便起見(jiàn),也使用其他進(jìn)制,如十進(jìn)制、十六進(jìn)制,但是在計(jì)算機(jī)內(nèi)。盡管為了方便起見(jiàn),也使用其他進(jìn)制,如十進(jìn)制、十六進(jìn)制,但是在計(jì)算機(jī)內(nèi)部數(shù)據(jù)還是以二進(jìn)制的形式存放和處理。二進(jìn)制只使用了兩個(gè)不同的數(shù)字符號(hào),部數(shù)據(jù)還是以二進(jìn)制的形式存放和處理。二進(jìn)制只使用了兩個(gè)不同的數(shù)字符號(hào),易于用物理器件來(lái)實(shí)現(xiàn):在物理世界中具有兩個(gè)穩(wěn)定狀態(tài)的物理器件很多
2、,如晶易于用物理器件來(lái)實(shí)現(xiàn):在物理世界中具有兩個(gè)穩(wěn)定狀態(tài)的物理器件很多,如晶體管的體管的“截止截止”與與“導(dǎo)通導(dǎo)通”、電容的、電容的“充電充電”與與“放電放電”、電壓信號(hào)的、電壓信號(hào)的“高高”與與“低低”、脈沖的、脈沖的“有有”與與“無(wú)無(wú)”,電磁單元的,電磁單元的“正向磁化正向磁化”與與“反向反向(fn xin)(fn xin)磁化磁化”等等,只要規(guī)定其中一種穩(wěn)定狀態(tài)表示等等,只要規(guī)定其中一種穩(wěn)定狀態(tài)表示“1 1”,另一種穩(wěn)定狀態(tài)表示,另一種穩(wěn)定狀態(tài)表示“0 0”,就可以用來(lái)表示二進(jìn)制數(shù)位了。其次,二進(jìn)制的運(yùn)算規(guī)則非常簡(jiǎn)單,易于用電,就可以用來(lái)表示二進(jìn)制數(shù)位了。其次,二進(jìn)制的運(yùn)算規(guī)則非常簡(jiǎn)單,
3、易于用電子器件來(lái)實(shí)現(xiàn)。數(shù)據(jù)的類(lèi)型多種多樣,如文件、圖、表、樹(shù)、陣列、鏈表、棧、子器件來(lái)實(shí)現(xiàn)。數(shù)據(jù)的類(lèi)型多種多樣,如文件、圖、表、樹(shù)、陣列、鏈表、棧、向量、串、實(shí)數(shù)、整數(shù)、布爾數(shù)、字符等。計(jì)算機(jī)里用到的數(shù)據(jù)類(lèi)型主要可分為向量、串、實(shí)數(shù)、整數(shù)、布爾數(shù)、字符等。計(jì)算機(jī)里用到的數(shù)據(jù)類(lèi)型主要可分為兩類(lèi):表示數(shù)量的數(shù)值數(shù)據(jù)和非數(shù)值性的符號(hào)數(shù)據(jù)。所有的數(shù)據(jù)都是以二進(jìn)制的兩類(lèi):表示數(shù)量的數(shù)值數(shù)據(jù)和非數(shù)值性的符號(hào)數(shù)據(jù)。所有的數(shù)據(jù)都是以二進(jìn)制的形式在計(jì)算機(jī)里處理和存儲(chǔ)。本節(jié)主要講述數(shù)值數(shù)據(jù)在計(jì)算機(jī)里的表示方法。形式在計(jì)算機(jī)里處理和存儲(chǔ)。本節(jié)主要講述數(shù)值數(shù)據(jù)在計(jì)算機(jī)里的表示方法。 第1頁(yè)/共73頁(yè)第一頁(yè),共73頁(yè)。
4、 1數(shù)值數(shù)據(jù)表示方法 在計(jì)算機(jī)中表示數(shù)時(shí),需要考慮以下幾個(gè)因素:要表示的數(shù)的類(lèi)型(小數(shù)、整數(shù)、實(shí)數(shù)和復(fù)數(shù))、符號(hào)如何表示以及小數(shù)點(diǎn)的位置;可能遇到的數(shù)值范圍;數(shù)值精確度;數(shù)據(jù)存儲(chǔ)和處理所需要的硬件代價(jià)。計(jì)算機(jī)中表示數(shù)值符號(hào)的方法是占用一位二進(jìn)制位,1表示負(fù)號(hào)、0表示正號(hào)。常用的數(shù)值數(shù)據(jù)表示格式有兩種,根據(jù)小數(shù)點(diǎn)的位置是固定不變還是浮動(dòng)變化的分為定點(diǎn)(dn din)格式和浮點(diǎn)格式。一般來(lái)說(shuō),定點(diǎn)(dn din)格式容許的數(shù)值范圍有限,但要求的處理硬件比較簡(jiǎn)單。而浮點(diǎn)格式容許的數(shù)值范圍很大,但要求的處理硬件比較復(fù)雜。 (1) 定點(diǎn)(dn din)數(shù)的表示方法 所謂定點(diǎn)(dn din)格式,即約定機(jī)
5、器中所有數(shù)據(jù)的小數(shù)點(diǎn)位置是固定不變的。由于約定在固定的位置,小數(shù)點(diǎn)就不再使用記號(hào)“”來(lái)表示。原理上講,小數(shù)點(diǎn)位置固定在哪一位都可以,但是通常將數(shù)據(jù)表示成純小數(shù)或純整數(shù)。 第2頁(yè)/共73頁(yè)第二頁(yè),共73頁(yè)。 例如用一個(gè)n1位字來(lái)表示一個(gè)定點(diǎn)數(shù)x,其中一位x0用來(lái)表示數(shù)的符號(hào),其余位數(shù)代表它的量值。為了將整個(gè)n1位統(tǒng)一處理起見(jiàn),符號(hào)位x0放在最左位置,并用數(shù)值 0和1分別代表正號(hào)和負(fù)號(hào),這樣(zhyng),對(duì)于任意定點(diǎn)數(shù)x=x0 x1x2xn,在定點(diǎn)機(jī)中可表示為如下形式: x0 x1 x2 xn-1 xn符號(hào) 數(shù)量值 第3頁(yè)/共73頁(yè)第三頁(yè),共73頁(yè)。 如果數(shù)x表示的是純小數(shù),那么小數(shù)點(diǎn)位于x0和
6、x1之間。當(dāng)x0 x1x2xn各位均為0時(shí),數(shù)x的絕對(duì)值最小,當(dāng)各位均為1時(shí),x的絕對(duì)值最大,故數(shù)的表示范圍為 0 x12n 如果數(shù)x表示的是純整數(shù),那么小數(shù)點(diǎn)位于最低位xn的右邊,此時(shí)數(shù)x的表示范圍為 0 x2n1,目前計(jì)算機(jī)中多采用定點(diǎn)純整數(shù)表示,因此(ync)將定點(diǎn)數(shù)表示的運(yùn)算簡(jiǎn)稱(chēng)為整數(shù)運(yùn)算。 (2) 浮點(diǎn)數(shù)的表示方法 采用浮點(diǎn)表示法表示的數(shù)據(jù)叫做浮點(diǎn)數(shù),采用浮點(diǎn)數(shù)進(jìn)行運(yùn)算的機(jī)器叫做“浮點(diǎn)機(jī)”。浮點(diǎn)數(shù)是指小數(shù)點(diǎn)位置可以改變的數(shù),顯然浮點(diǎn)數(shù)可用來(lái)表示帶符號(hào)的實(shí)數(shù)。例如:表示8位字長(zhǎng)的二進(jìn)制浮點(diǎn)數(shù)可以寫(xiě)成 0.10110101 2111 尾 數(shù) 階碼 第4頁(yè)/共73頁(yè)第四頁(yè),共73頁(yè)。 任意
7、一個(gè)十進(jìn)制數(shù)N可以寫(xiě)成 N = 10ZX ,同樣,在計(jì)算機(jī)中一個(gè)任意進(jìn)制數(shù)N可以寫(xiě)成 N = Bz X其中X稱(chēng)為(chn wi)浮點(diǎn)數(shù)的尾數(shù),是一個(gè)純小數(shù)。z是比例因子的指數(shù),稱(chēng)為(chn wi)浮點(diǎn)的指數(shù),是一個(gè)整數(shù)。比例因子的基數(shù)B是一個(gè)常數(shù),一般規(guī)定只為2,8或16。在機(jī)器中表示一個(gè)浮點(diǎn)數(shù)時(shí),一是要給出尾數(shù),用定點(diǎn)小數(shù)形式表示。尾數(shù)部分給出有效數(shù)字的位數(shù),因而決定了浮點(diǎn)數(shù)的表示精度。二是要給出指數(shù),用整數(shù)形式表示,常稱(chēng)為(chn wi)階碼,階碼指明小數(shù)點(diǎn)在數(shù)據(jù)中的位置,因而決定了浮點(diǎn)數(shù)的表示范圍。浮點(diǎn)數(shù)也要有符號(hào)位。因此一個(gè)機(jī)器浮點(diǎn)數(shù)應(yīng)當(dāng)由階碼和尾數(shù)及其符號(hào)位組成: 第5頁(yè)/共73頁(yè)第
8、五頁(yè),共73頁(yè)。 32位浮點(diǎn)數(shù)的標(biāo)準(zhǔn)(biozhn)格式為: Z0Z1 Z2 Zn-1 ZnX0X1 X2 Xn-1 Xn階符 階碼 數(shù)符 尾數(shù) 3130 2322 032位浮點(diǎn)數(shù)F Z X 64位浮點(diǎn)數(shù)的標(biāo)準(zhǔn)(biozhn)格式為:6362 5251 064位浮點(diǎn)數(shù)F Z X 第6頁(yè)/共73頁(yè)第六頁(yè),共73頁(yè)。 不論是32位浮點(diǎn)數(shù)還是64位浮點(diǎn)數(shù),規(guī)定基數(shù)B2。由于基數(shù)2是固定常數(shù),不必用顯示方式來(lái)表示它。 32位的浮點(diǎn)數(shù)中,F(xiàn)是浮點(diǎn)數(shù)的符號(hào)位,占1位,安排在最高位,F(xiàn)0表示正數(shù),F(xiàn)1表示負(fù)數(shù)。X是尾數(shù),放在低位部分,占用23位,用小數(shù)表示,小數(shù)點(diǎn)放在尾數(shù)域的最前面。Z是階碼,占用8位,階符
9、采用隱含方式,即采用移碼方法來(lái)表示正負(fù)指數(shù)。移碼方法對(duì)兩個(gè)指數(shù)大小的比較和對(duì)階操作都比較方便,因?yàn)殡A碼域值大者其指數(shù)值也大。采用這種方式時(shí),將浮點(diǎn)數(shù)的指數(shù)值z(mì)變成階碼Z時(shí),應(yīng)將指數(shù)z加上一個(gè)固定的偏移值127(01111111),即Zz127。一個(gè)規(guī)格化的32位浮點(diǎn)數(shù)X的值可表示為X(1)F(1X) 2E127 其中尾數(shù)域所表示的值是1X。因?yàn)橐?guī)格化的浮點(diǎn)數(shù)的尾數(shù)域最左位也即最高有效位總是1,故這一位經(jīng)常不予存儲(chǔ)(cn ch),而認(rèn)為隱藏在小數(shù)點(diǎn)的左邊。 第7頁(yè)/共73頁(yè)第七頁(yè),共73頁(yè)。 64位的浮點(diǎn)數(shù)中符號(hào)位1位,階碼域11位,尾數(shù)域52位,指數(shù)偏移值是1023。因此規(guī)格化的64位浮點(diǎn)數(shù)X
10、的真值為X=(1)F (1X) 2E1O23 zE1023 若不對(duì)浮點(diǎn)數(shù)的表示作出明確規(guī)定,同一個(gè)浮點(diǎn)數(shù)的表示就不是惟一的。例如05也可以表示成005101,50102等等。為了(wi le)提高數(shù)據(jù)的表示精度,當(dāng)尾數(shù)的值不為0時(shí),其絕對(duì)值應(yīng)05,即尾數(shù)域的最高有效位應(yīng)為1,否則要以修改階碼同時(shí)左右移小數(shù)點(diǎn)的辦法,使其變成這一要求的表示形式,這稱(chēng)為浮點(diǎn)數(shù)的規(guī)格化表示。當(dāng)一個(gè)浮點(diǎn)數(shù)的尾數(shù)為0,不論其階碼為何值,或者當(dāng)階碼的值遇到比它能表示的最小值還小時(shí),不管其尾數(shù)為何值,計(jì)算機(jī)都把該浮點(diǎn)數(shù)看成零值,稱(chēng)為機(jī)器零。 浮點(diǎn)數(shù)所表示的范圍遠(yuǎn)比定點(diǎn)數(shù)大的多。假設(shè)(考慮符號(hào)位)機(jī)器中的數(shù)由8位二進(jìn)制數(shù)表示時(shí)
11、:在定點(diǎn)機(jī)中這8位全部用來(lái)表示有效數(shù)字(包括符號(hào));在浮點(diǎn)機(jī)中若階符階碼占3位,數(shù)符尾數(shù)占5位。在此情況下,若只考慮正數(shù)值,定點(diǎn)機(jī)小數(shù)表示的數(shù)的范圍是00000000到01111111,相當(dāng)于十進(jìn)制數(shù)的0到127,而浮點(diǎn)機(jī)所能表示的數(shù)的范圍是21100001到21101111,相當(dāng)于十進(jìn)制數(shù)的112875。顯然,都用8位,浮點(diǎn)機(jī)能表示的數(shù)的范圍比定點(diǎn)機(jī)大得多。 第8頁(yè)/共73頁(yè)第八頁(yè),共73頁(yè)。 一臺(tái)計(jì)算機(jī)中究竟采用(ciyng)定點(diǎn)表示還是浮點(diǎn)表示,要根據(jù)計(jì)算機(jī)的使用條件來(lái)確定。一般在高檔微機(jī)以上的計(jì)算機(jī)中同時(shí)采用(ciyng)定點(diǎn)、浮點(diǎn)表示,由使用者進(jìn)行選擇。而單片機(jī)中多采用(ciyng)
12、定點(diǎn)表示。 【例21】若浮點(diǎn)數(shù)X0的二進(jìn)制存儲(chǔ)格式為(43240000)16,求其32位浮點(diǎn)數(shù)的十進(jìn)制值。 解: 將16進(jìn)制數(shù)展開(kāi)后,可得二制數(shù)格式為 0 100 0011 0 010 0100 0000 0000 0000 0000 F 階碼(8位) 尾數(shù)(23位) 指數(shù)z階碼127100001100111111100000111(7)10。包括隱藏位1的尾數(shù)1X1010 0100 0000 0000 0000 00001010010 于是有 X0(1)F 1X 2z(1010010) 2710100100(187)10。 第9頁(yè)/共73頁(yè)第九頁(yè),共73頁(yè)。 【例22】將十進(jìn)制數(shù)165937
13、5轉(zhuǎn)換成32位浮點(diǎn)數(shù)的二進(jìn)制格式來(lái)存儲(chǔ)。 解 : 首 先 分 別 將 整 數(shù) ( z h n g s h ) 和 分 數(shù) 部 分 轉(zhuǎn) 換 成 二 進(jìn) 制 數(shù) : 1 6 5 9 3 7 5 1000010011移動(dòng)小數(shù)點(diǎn),使其在第1位和第2位之間10000100111000010011 24 z4 所以:F=0,E=4127 =131,X=000010011 則得到的32位浮點(diǎn)數(shù)的二進(jìn)制存儲(chǔ)格式為: 0100 0001 1000 0100 1100 0000 0000 0000 = (4184C000)16 第10頁(yè)/共73頁(yè)第十頁(yè),共73頁(yè)。 (3)定點(diǎn)數(shù)據(jù)的編碼方法 真值與機(jī)器碼機(jī)器碼是數(shù)
14、在計(jì)算機(jī)中的表示形式。對(duì)于數(shù)值數(shù)據(jù)而言,無(wú)論以定點(diǎn)形式表示或是以浮點(diǎn)形式表示,都需要通過(guò)某種編碼 方法,以計(jì)算機(jī)所能處理的0和1二進(jìn)制位來(lái)表示其數(shù)值大小。通常一個(gè)數(shù)值數(shù)據(jù)的機(jī)內(nèi)表示形式稱(chēng)為其機(jī)器碼,而一個(gè)機(jī)器碼所代表的數(shù)值稱(chēng)為該機(jī)器碼的真值。計(jì)算機(jī)中只有機(jī)器碼,不存在數(shù)的真值。假設(shè)機(jī)器碼的寬度為n,最高位為符號(hào)位,下面分別介紹實(shí)際應(yīng)用中常見(jiàn)的4種機(jī)器碼編碼方法:原碼、反碼、補(bǔ)碼和移碼。 原碼表示法定點(diǎn)整數(shù)(zhngsh)原碼表示法定點(diǎn)整數(shù)(zhngsh)原碼的定義如下所示: 第11頁(yè)/共73頁(yè)第十一頁(yè),共73頁(yè)。 X 原= X 0X2n1 X 原=2n1X 2n1X0 由定義可以看出,正整數(shù)的
15、原碼就是其自身,負(fù)整數(shù)的原碼只需把其絕對(duì)值的原碼的符號(hào)位置為1即可。( 用0表示正號(hào),用1表示負(fù)號(hào))。原碼表示方法的定點(diǎn)整數(shù)的取值范圍(fnwi)為(2n1)X2n11。注意在原碼表示法中,零有正零和負(fù)零之分。000000,010000。定點(diǎn)小數(shù)的原碼表示法定點(diǎn)小數(shù)原碼的定義如下所示:X 原 X 0X1X 原1X 1X0第12頁(yè)/共73頁(yè)第十二頁(yè),共73頁(yè)。 正的純小數(shù)的原碼就是其自身,而負(fù)的純小數(shù)的原碼可以通過(guò)把其絕對(duì)值的原碼的符號(hào)位置1來(lái)得到。其取值范圍為(12(n1)X(12(n1)。綜上可以看出一個(gè)數(shù)的原碼是由符號(hào)位加上數(shù)值位絕對(duì)值組成,符號(hào)位為0代表正數(shù),符號(hào)位為1代表負(fù)數(shù)。由于0有
16、0和0兩種表示方法,n位二進(jìn)制數(shù)可以表示2n1個(gè)原碼。 用原碼實(shí)現(xiàn)乘除運(yùn)算規(guī)則較簡(jiǎn)單,但做加減運(yùn)算不方便。原碼表示法的一個(gè)主要優(yōu)點(diǎn)在于其真值和機(jī)器碼表示之間對(duì)應(yīng)關(guān)系很直觀(guān),容易轉(zhuǎn)換(zhunhun)。補(bǔ)碼表示法定點(diǎn)整數(shù)的補(bǔ)碼表示定點(diǎn)整數(shù)補(bǔ)碼的定義如下所示:X 補(bǔ) X 0X2n1X 補(bǔ)2nX 2n1X0第13頁(yè)/共73頁(yè)第十三頁(yè),共73頁(yè)。 正整數(shù)的補(bǔ)碼就是其自身,負(fù)整數(shù)的補(bǔ)碼可以通過(guò)對(duì)其絕對(duì)值部分逐位求反,并在最低位加1求得。同樣,在補(bǔ)碼表示法中,符號(hào)位為0表示正號(hào),為1表示負(fù)號(hào)。其表示的真值X的范圍為 2n1X2n11。在補(bǔ)碼表示中,0的機(jī)器碼是惟一的,沒(méi)有(mi yu)0和0之分。定點(diǎn)小數(shù)
17、的補(bǔ)碼表示定點(diǎn)小數(shù)補(bǔ)碼的定義如下所示:X 補(bǔ) X 0X1X 補(bǔ)2X 1X0定點(diǎn)小數(shù)的補(bǔ)碼求解方法與定點(diǎn)整數(shù)的補(bǔ)碼求解方法相類(lèi)似。其表示的真值X的范圍為1X12-(n-1)。當(dāng)n8時(shí),1的定點(diǎn)小數(shù)補(bǔ)碼表示為:10000000,而用定點(diǎn)整數(shù)的補(bǔ)碼表示1,則為11111111。 在補(bǔ)碼表示方法中,0的編碼是惟一的,所以n位二進(jìn) 制數(shù)可以表示2n個(gè)補(bǔ)碼。 第14頁(yè)/共73頁(yè)第十四頁(yè),共73頁(yè)。 反碼表示法定點(diǎn)整數(shù)的反碼表示定點(diǎn)整數(shù)反碼的定義如下所示: X 反 X 0X2n1 X 反(2n1)X 2n1X0同樣,正整數(shù)的反碼就是(jish)其自身,而負(fù)整數(shù)的反碼可以通過(guò)對(duì)其絕對(duì)值逐位求反來(lái)求得。在反碼表
18、示法中,符號(hào)位仍然用0表示正號(hào),1表示負(fù)號(hào)。其表示的真值范圍與原碼相同:(2n11)X2n-11。數(shù)值0用反碼表示亦有0和0之分。當(dāng)n8時(shí),0反00000000,0反11111111。定點(diǎn)小數(shù)的反碼表示定點(diǎn)小數(shù)反碼的定義如下所示:X 反 X 0X1X 反(22n1)X 1X0第15頁(yè)/共73頁(yè)第十五頁(yè),共73頁(yè)。定點(diǎn)小數(shù)的反碼求解方法類(lèi)似定點(diǎn)整數(shù)的反碼求解方法。其表示的真值的取值范圍為:(12(n1)X(12(n1)。反碼表示法中,由于0占有了兩個(gè)不同的編碼,所以,n位二進(jìn)制數(shù)可以表示2n1個(gè)反碼。移碼表示法定點(diǎn)整數(shù)的移碼表示 X 移2n1X 2n-1X2n1 定點(diǎn)小數(shù)的移碼表示 X 移1X
19、1X1移碼的符號(hào)位與其他三種(sn zhn)編碼不同,用1表示正號(hào)而0表示負(fù)號(hào)。移碼的求法其實(shí)也很簡(jiǎn)單,把其補(bǔ)碼的符號(hào)位直接變反即可。所以在移碼表示法中,0也有惟一的表示方法:10000000(n8) 【例】 設(shè)機(jī)器碼長(zhǎng)度為8,求X(6)10的原碼、補(bǔ)碼、反碼和移碼。 第16頁(yè)/共73頁(yè)第十六頁(yè),共73頁(yè)。 解:X原碼27(110)1000000011010000110 X補(bǔ)碼(b m)28(110)1000000011011111010 X反碼(281)(110)1111111111011111001 X移碼27(110)1000000011001111010【例】 設(shè)機(jī)器碼長(zhǎng)度為8,求X(
20、03125)10(00101)2的原碼、補(bǔ)碼(b m)、反碼和移碼。 解:X原碼1X10(00101)1010110101000 X補(bǔ)碼(b m)2X100(00101)1101111011000 X反碼(227)X(10000000001)(00101)11010111 X移碼1X10(00101)0101101011000 第17頁(yè)/共73頁(yè)第十七頁(yè),共73頁(yè)。實(shí)際上求某個(gè)數(shù)的原碼、補(bǔ)碼、反碼和移碼時(shí)不僅可以(ky)利用其定義式采求解,也可以(ky)通過(guò)這4個(gè)編碼間的相互關(guān)系來(lái)求得。比如移碼就可以(ky)通過(guò)把補(bǔ)碼的符號(hào)位變反來(lái)求,而對(duì)于正數(shù)來(lái)講其原碼、補(bǔ)碼和反碼是完全相同的;一個(gè)負(fù)數(shù)的補(bǔ)
21、碼也可以(ky)很容易地從其原碼推知:除符號(hào)位外,各位取反,末位再加1即可。(4)浮點(diǎn)數(shù)據(jù)的編碼方法計(jì)算機(jī)內(nèi)部浮點(diǎn)數(shù)據(jù)表示成如下形式:FXZX第18頁(yè)/共73頁(yè)第十八頁(yè),共73頁(yè)。 FX是尾數(shù)的符號(hào)位,0表示正號(hào)而l表示負(fù)號(hào);Z是階碼,通常用移碼表示;X是定點(diǎn)小數(shù)形式的尾數(shù),一般(ybn)用補(bǔ)碼或原碼表示?!纠?】 某浮點(diǎn)數(shù)機(jī)器碼10位,基數(shù)為2,階碼用4位移碼表示,尾數(shù)5位用補(bǔ)碼表示,符號(hào)位1位。求2100110l的編碼。解: 符號(hào)位FX0 階碼Z(10)移碼1010 尾數(shù)X(01101)補(bǔ)碼11010 則其編碼為0101011010【例 】 某浮點(diǎn)數(shù)機(jī)器碼為17位,基數(shù)為2,階碼用4位移碼
22、表示,尾數(shù)用12位補(bǔ)碼表示,符號(hào)位1位。求275的浮點(diǎn)編碼形式。解:首先把275表示成浮點(diǎn)形式: (275)10(0687522)10(01011)22(10) FX1 第19頁(yè)/共73頁(yè)第十九頁(yè),共73頁(yè)。 Z(10)移碼1010 X(01011)補(bǔ)碼 同一個(gè)浮點(diǎn)數(shù)可以有許多種不同的編碼表示(改變其階碼),所以需要對(duì)浮點(diǎn)數(shù)進(jìn)行規(guī)格化處理,以統(tǒng)一其形式,同時(shí)提高數(shù)據(jù)的表示精度。規(guī)格化處理(基數(shù)為2)尾數(shù)(wish)部分以純小數(shù)形式表示,其絕對(duì)值應(yīng)滿(mǎn)足05X1。若不滿(mǎn)足該條件,則需要修改階碼并對(duì)尾數(shù)(wish)進(jìn)行移位,以使尾數(shù)(wish)滿(mǎn)足該條件; 當(dāng)尾數(shù)(wish)為正時(shí),無(wú)論其使用原碼還
23、是補(bǔ)碼表示,X應(yīng)滿(mǎn)足條件:05X1。以二進(jìn)制形式表示為X01xx x(x為0或1); 用原碼表示的負(fù)尾數(shù)(wish),X滿(mǎn)足1X05,以二進(jìn)制形式表示為M11 xx x(x為0或1);以補(bǔ)碼表示的負(fù)尾數(shù)(wish),X滿(mǎn)足1M05,以二進(jìn)制形式表示為X10 xx x(x為0或1); 從上面的討論可以看出,如果規(guī)格化的尾數(shù)(wish)用原碼表示,則其最高位一定為1如果改用補(bǔ)碼表示,則尾數(shù)(wish)的最高位與其符號(hào)位相反,即為0。 第20頁(yè)/共73頁(yè)第二十頁(yè),共73頁(yè)。 2符號(hào)數(shù)據(jù)的表示方法 現(xiàn)代計(jì)算機(jī)不僅處理數(shù)值領(lǐng)域的問(wèn)題,而且處理大量非數(shù)值領(lǐng)域的問(wèn)題。這樣一來(lái),必然要引入文字、字母以及某些專(zhuān)
24、用符號(hào),以便表示文字語(yǔ)言、邏輯語(yǔ)言等信息。例如人機(jī)交換信息時(shí)使用英文字母、標(biāo)點(diǎn)符號(hào)、十進(jìn)制數(shù)以及諸如$,等符號(hào)。然而數(shù)字計(jì)算機(jī)只能處理二進(jìn)制數(shù)據(jù),因此,上述信息應(yīng)用到計(jì)算機(jī)中時(shí),都必須編寫(xiě)成二進(jìn)制格式的代碼,也就是字符信息用數(shù)據(jù)表示,稱(chēng)為符號(hào)數(shù)據(jù)。最常見(jiàn)的編碼格式為ASC碼和EBCDIC碼。(1)ASC碼目前國(guó)際上普遍采用的一種字符系統(tǒng)是七單位的ASCII碼(美國(guó)國(guó)家信息交換標(biāo)準(zhǔn)字符碼),它包括10個(gè)十進(jìn)制數(shù)碼,26個(gè)英文字母和一定數(shù)量(shling)的專(zhuān)用符號(hào),如$,等,總共128個(gè)元素,因此二進(jìn)制編碼需要7位,加上一個(gè)偶校驗(yàn)位,共8位,剛好為一個(gè)字節(jié)。表21列出了七單位的ASCII碼字符編
25、碼表。 ASCII碼規(guī)定8個(gè)二進(jìn)制位的最高一位為0,余下的7位可以給出128個(gè)編碼,表示128個(gè)不同的字符。其中95個(gè)編碼,對(duì)應(yīng)著計(jì)算機(jī)終端能輸人并且可以顯示的95個(gè)字符,打印機(jī)設(shè)備也能打印這95個(gè)字符,如大小寫(xiě)各26個(gè)英文字母,09這10個(gè)數(shù)字符,通用的運(yùn)算符和標(biāo)點(diǎn)符號(hào),*,等等。 另外的33個(gè)字符,其編碼值為031和127,則不對(duì)應(yīng)任何一個(gè)可以顯示或打印的實(shí)際字符,它們被用作控制碼,控制計(jì)算機(jī)某些外圍設(shè)備的工作特性和某些計(jì)算機(jī)軟件的運(yùn)行情況。第21頁(yè)/共73頁(yè)第二十一頁(yè),共73頁(yè)。 計(jì)算機(jī)里的存儲(chǔ)和傳送單位通常使用Byte(1Byte8 bit),所以7位的ASCII碼也用一個(gè)字節(jié)(z j
26、i)來(lái)表示。ASCII編碼和128個(gè)字符的對(duì)應(yīng)關(guān)系如表21所示。表中編碼符號(hào)的排列次序?yàn)?,最?位沒(méi)有使用,通常填0;也可以把它用作校驗(yàn)位或者用來(lái)擴(kuò)展字符集。表中未給出,列為高位部分,行為低位部分。 ASCII的字符編碼表一共有2416行,238列。低4位編碼用作行編碼,而高3位用作列編碼。值得注意的一點(diǎn)是數(shù)字“0”到“9”的編碼:它們都位于3列 (011),從0行(0000)排列到9行(1001),即“0”的ASCII碼為(0110000)2(30)16,“9”的 ASCII碼為(0111001)2(39)16。把高3位屏蔽掉,低4位恰是“0”“9”的二進(jìn)制碼??梢钥闯觯M(jìn)制的8421碼可
27、以去掉(011)而得到。這個(gè)特點(diǎn)使得在數(shù)字符號(hào)(ASCII碼)與數(shù)字值(二進(jìn)制碼)之間進(jìn)行轉(zhuǎn)換非常方便。 第22頁(yè)/共73頁(yè)第二十二頁(yè),共73頁(yè)。表21 ASC字符(z f)編碼表 0000010100111001011101110000NULDELSP0Pp0001SOHDC1!1AQaq0010STXDC22BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111DELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk110
28、0FFFS,Nn1111SIUS/?OoDEL第23頁(yè)/共73頁(yè)第二十三頁(yè),共73頁(yè)。字符串是指連續(xù)的一串字符,通常方式下,它們占用主存中連續(xù)的多個(gè)字節(jié),每個(gè)字節(jié)存一個(gè)(y )(y )字符。當(dāng)主存字由2 2個(gè)或4 4個(gè)字節(jié)組成時(shí),在同一個(gè)(y )(y )主存字中,既可按從低位字節(jié)向高位字節(jié)的順序存放字符串內(nèi)容,也可按從高位字節(jié)向低位字節(jié)的次序順序存放字符串內(nèi)容。這兩種存放方式都是常用方式,不同的計(jì)算機(jī)可以選用其中任何一種。例如下述字符串: 圖2-1字符串在主存中的存放(cnfng) 第24頁(yè)/共73頁(yè)第二十四頁(yè),共73頁(yè)。 IF AB ELSEREAD (C) 就可以按圖21所示從高位字節(jié)到低
29、位字節(jié)依次存放在主存中。其中主存單元長(zhǎng)度由4個(gè)字節(jié)組成。每個(gè)字節(jié)中存放相應(yīng)字符的ASCII值,文字表達(dá)式中的空格“”在主存中也占一個(gè)字節(jié)的位置。因而每個(gè)字節(jié)分別存放十進(jìn)制的73,70,32,65,62,66,32,69,76,83,69,32,82,69,65,68,40,67,41,32。(2)EBCDIC碼EBCDIC(Extended Binary Coded Decimal Interchange Code)即所謂擴(kuò)展的二十進(jìn)制交換碼。采用8 bit編碼來(lái)表示(biosh)一個(gè)字符,共可以表示(biosh)28256個(gè)不同符號(hào),但EBCDIC中并沒(méi)有使用全部編碼,只選用了其中一部分,剩
30、下的保留作擴(kuò)充用。EBCDIC碼常用于IBM大型機(jī)中。在EBCDIC碼制中,數(shù)字“0”“9”的高4位編碼都是1111,而低4位編碼則依次為0000到1001。把高四位屏蔽掉,也很容易實(shí)現(xiàn)從EBCDIC碼到二進(jìn)制數(shù)字值的轉(zhuǎn)換。 第25頁(yè)/共73頁(yè)第二十五頁(yè),共73頁(yè)。3 3漢字的表示方法漢字的表示方法(1 1) 漢字的輸入編碼漢字的輸入編碼(bin m)(bin m)為了能直接使用西文標(biāo)準(zhǔn)鍵盤(pán)把漢字輸入到計(jì)算機(jī),就必須為漢為了能直接使用西文標(biāo)準(zhǔn)鍵盤(pán)把漢字輸入到計(jì)算機(jī),就必須為漢字設(shè)計(jì)相應(yīng)的輸入編碼字設(shè)計(jì)相應(yīng)的輸入編碼(bin m)(bin m)方法。當(dāng)前采用的方法主要有方法。當(dāng)前采用的方法主要有
31、以下三類(lèi):以下三類(lèi): 數(shù)字編碼數(shù)字編碼(bin m) (bin m) 常用的是國(guó)標(biāo)區(qū)位碼,用數(shù)字串代常用的是國(guó)標(biāo)區(qū)位碼,用數(shù)字串代表一個(gè)漢字輸入。區(qū)位碼是將國(guó)家表一個(gè)漢字輸入。區(qū)位碼是將國(guó)家 標(biāo)準(zhǔn)局公布的標(biāo)準(zhǔn)局公布的67636763個(gè)兩級(jí)漢個(gè)兩級(jí)漢字分為字分為9494個(gè)區(qū),每個(gè)區(qū)分個(gè)區(qū),每個(gè)區(qū)分9494位,實(shí)際上把漢字表示成二維數(shù)組,位,實(shí)際上把漢字表示成二維數(shù)組,每個(gè)漢字在數(shù)組中的下標(biāo)就是區(qū)位碼。區(qū)碼和位碼各兩位十進(jìn)制每個(gè)漢字在數(shù)組中的下標(biāo)就是區(qū)位碼。區(qū)碼和位碼各兩位十進(jìn)制數(shù)字,因此輸入一個(gè)漢字需按鍵四次。例如數(shù)字,因此輸入一個(gè)漢字需按鍵四次。例如“中中”字位于第字位于第5454區(qū)區(qū)4848
32、位,區(qū)位碼為位,區(qū)位碼為54485448。數(shù)字編碼數(shù)字編碼(bin m)(bin m)輸入的優(yōu)點(diǎn)是無(wú)重碼,且輸入碼與內(nèi)部編碼輸入的優(yōu)點(diǎn)是無(wú)重碼,且輸入碼與內(nèi)部編碼(bin m)(bin m)的轉(zhuǎn)換比較方便,缺點(diǎn)是代碼難以記憶。的轉(zhuǎn)換比較方便,缺點(diǎn)是代碼難以記憶。 拼音碼拼音碼 拼音碼是以漢語(yǔ)拼音為基礎(chǔ)的輸入方法。凡掌握拼音碼是以漢語(yǔ)拼音為基礎(chǔ)的輸入方法。凡掌握漢語(yǔ)拼音的人,不需訓(xùn)漢語(yǔ)拼音的人,不需訓(xùn) 練和記憶,即可使用。但漢字同音字太練和記憶,即可使用。但漢字同音字太多,輸入重碼率很高,因此按拼音輸入后還必須進(jìn)行同音字選擇,多,輸入重碼率很高,因此按拼音輸入后還必須進(jìn)行同音字選擇,影響了輸入速
33、度。影響了輸入速度。 第26頁(yè)/共73頁(yè)第二十六頁(yè),共73頁(yè)。 字形編碼 字形編碼是用漢字的形狀來(lái)進(jìn)行的編碼。漢字總數(shù)雖多,但是由一筆 一劃組成,全部漢字的部件和筆劃是有限的。因此,把漢字的筆劃部件用字母或數(shù)字進(jìn)行編碼,按筆劃的順序依次輸入,就能表示一個(gè)漢字。例如五筆字型編碼是最有影響的一種字形編碼方法。 除了上述三種編碼方法之外,為了加快輸入速度,在上述方法基礎(chǔ)上,發(fā)展了詞組 輸入、聯(lián)想輸入等多種快速輸入方法。但是都利用了鍵盤(pán)進(jìn)行“手動(dòng)”輸入。理想的輸入方式是利用語(yǔ)音或圖像識(shí)別技術(shù)“自動(dòng)”將拼音或文本輸入到計(jì)算機(jī)內(nèi),使計(jì)算機(jī)能認(rèn)識(shí)漢字,聽(tīng)懂漢語(yǔ),并將其自動(dòng)轉(zhuǎn)換為機(jī)內(nèi)代碼表示。目前這種理想已經(jīng)
34、成為現(xiàn)實(shí)(xinsh)。(2) 漢字的存儲(chǔ)(漢字內(nèi)碼) 漢字內(nèi)碼是用于漢字信息的存儲(chǔ)、交換、檢索等操作的機(jī)內(nèi)代碼,一般采用兩個(gè)字節(jié)表示。英文字符的機(jī)內(nèi)代碼是七位的ASCII碼,當(dāng)用一個(gè)字節(jié)表示時(shí),最高位為“0”。為了與英文字符能相互區(qū)別,漢字機(jī)內(nèi)代碼中兩個(gè)字節(jié)的最高位均規(guī)定為“1”。例如漢字操作系統(tǒng)CCDOS中使用的漢字內(nèi)碼是一種最高位為“l(fā)”的兩字節(jié)內(nèi)碼。 有些系統(tǒng)中字節(jié)的最高位用于奇偶校驗(yàn)位,這種情況下用三個(gè)字節(jié)表示漢字內(nèi)碼。 第27頁(yè)/共73頁(yè)第二十七頁(yè),共73頁(yè)。 (3) 漢字的輸出(漢字字模碼) 字模碼是用點(diǎn)陣表示的漢字字形代碼,它是漢字的輸出形式。根據(jù)漢字輸出的要求不同,點(diǎn)陣的多少
35、也不同。簡(jiǎn)易型漢字為16 16點(diǎn)陣,提高型漢字為24 24點(diǎn)陣、32 32點(diǎn)陣,甚至更高。因此字模點(diǎn)陣的信息量是很大的,所占存儲(chǔ)空間也很大。以16 16點(diǎn)陣為例,每個(gè)漢字要占用32個(gè)字節(jié),國(guó)標(biāo)兩級(jí)漢字要占用 256K字節(jié)。因此字模點(diǎn)陣只能用來(lái)構(gòu)成漢字庫(kù),而不能用于機(jī)內(nèi)存儲(chǔ)。字庫(kù)中存儲(chǔ)了每個(gè)漢字的點(diǎn)陣代碼。當(dāng)顯示輸出或打印輸出時(shí)才檢索字庫(kù),輸出字模點(diǎn)陣,得到字形。圖 22示出了“大”字的點(diǎn)陣及編碼。注意,漢字的輸入編碼、漢字內(nèi)碼、字模碼是計(jì)算機(jī)中用于輸入、內(nèi)部處理、輸出三種(sn zhn)不同用途的編碼,不要混為一談。 第28頁(yè)/共73頁(yè)第二十八頁(yè),共73頁(yè)。圖22漢字的字模(zm)點(diǎn)陣及編碼
36、第29頁(yè)/共73頁(yè)第二十九頁(yè),共73頁(yè)。4校驗(yàn)碼校驗(yàn)碼 元件故障、噪聲干擾等各種因素常常導(dǎo)致計(jì)算機(jī)在處理信息過(guò)程中出現(xiàn)錯(cuò)誤。元件故障、噪聲干擾等各種因素常常導(dǎo)致計(jì)算機(jī)在處理信息過(guò)程中出現(xiàn)錯(cuò)誤。例如將例如將1位位x從部件從部件A傳送到部件傳送到部件B,可能由于傳送信道中的噪聲干擾而受到破,可能由于傳送信道中的噪聲干擾而受到破壞,以至于在接收部件壞,以至于在接收部件B收到的是而不是收到的是而不是x。為了防止這種錯(cuò)誤,可將信號(hào)采用。為了防止這種錯(cuò)誤,可將信號(hào)采用專(zhuān)門(mén)的邏輯線(xiàn)路進(jìn)行編碼以檢測(cè)錯(cuò)誤,甚至校正錯(cuò)誤。通常的方法是,在每個(gè)專(zhuān)門(mén)的邏輯線(xiàn)路進(jìn)行編碼以檢測(cè)錯(cuò)誤,甚至校正錯(cuò)誤。通常的方法是,在每個(gè)字上
37、添加一些校驗(yàn)位,用來(lái)確定字上添加一些校驗(yàn)位,用來(lái)確定(qudng)字中出現(xiàn)錯(cuò)誤的位置。計(jì)算機(jī)中常字中出現(xiàn)錯(cuò)誤的位置。計(jì)算機(jī)中常用這種檢錯(cuò)或糾錯(cuò)技術(shù)進(jìn)行存儲(chǔ)器讀寫(xiě)正確性或傳輸信息的檢驗(yàn)。這里僅介紹用這種檢錯(cuò)或糾錯(cuò)技術(shù)進(jìn)行存儲(chǔ)器讀寫(xiě)正確性或傳輸信息的檢驗(yàn)。這里僅介紹檢錯(cuò)碼中的奇偶校驗(yàn)碼。檢錯(cuò)碼中的奇偶校驗(yàn)碼。最簡(jiǎn)單且應(yīng)用廣泛的檢錯(cuò)碼是采用一位校驗(yàn)位的奇校驗(yàn)或偶校驗(yàn)。設(shè)最簡(jiǎn)單且應(yīng)用廣泛的檢錯(cuò)碼是采用一位校驗(yàn)位的奇校驗(yàn)或偶校驗(yàn)。設(shè)X(x0 x1 xn-1)是一個(gè)是一個(gè)n位字,則奇校驗(yàn)位位字,則奇校驗(yàn)位 定義為定義為 C x0 x1xn-1 式中式中 代表按位加,表明只有當(dāng)代表按位加,表明只有當(dāng)X中包含
38、有奇數(shù)個(gè)中包含有奇數(shù)個(gè)1時(shí),才能使時(shí),才能使 1,即,即C0。 同理,偶校驗(yàn)位同理,偶校驗(yàn)位C定義為定義為Cx0 x1xn-1 即即X中包含偶數(shù)個(gè)中包含偶數(shù)個(gè)1時(shí),才使時(shí),才使C0。 假設(shè)一個(gè)字假設(shè)一個(gè)字X從部件從部件A傳送到部件傳送到部件B。在源點(diǎn)。在源點(diǎn)A,校驗(yàn)位,校驗(yàn)位C可用上面公式算出來(lái),可用上面公式算出來(lái),并合在一起將并合在一起將( x0 x1 xn-1 C )送到送到B。假設(shè)在。假設(shè)在B點(diǎn)真正接收到的是點(diǎn)真正接收到的是X( x0 x1 xn-1 C ),然后計(jì)算,然后計(jì)算 F( x0 x1 xn-1 C )若若F1,意味著收到的信息有錯(cuò),例如,意味著收到的信息有錯(cuò),例如(x0 x1
39、 xn-1)中正巧有一中正巧有一位變位變“反反”時(shí)就會(huì)出現(xiàn)這種情況。若時(shí)就會(huì)出現(xiàn)這種情況。若F0,表明,表明X字傳送正確。奇偶校驗(yàn)可提字傳送正確。奇偶校驗(yàn)可提供單個(gè)錯(cuò)誤檢測(cè),但無(wú)法檢測(cè)多個(gè)錯(cuò)誤,更無(wú)法識(shí)別錯(cuò)誤信息的位置。供單個(gè)錯(cuò)誤檢測(cè),但無(wú)法檢測(cè)多個(gè)錯(cuò)誤,更無(wú)法識(shí)別錯(cuò)誤信息的位置。 第30頁(yè)/共73頁(yè)第三十頁(yè),共73頁(yè)。 【例】 已知下表中左面一欄有5個(gè)字節(jié)的數(shù)據(jù)。請(qǐng)分別是用奇校驗(yàn)和偶校驗(yàn)進(jìn)行(jnxng)編碼,填在中間一欄和右面一欄。 解:假定最低一位為校驗(yàn)位,其余高8位為數(shù)據(jù)位,列表如下。從中看出,校驗(yàn)位的值取。還是取1,是由數(shù)據(jù)位中1的個(gè)數(shù)決定的。 數(shù)據(jù)偶校驗(yàn)編碼奇校驗(yàn)編碼1010101
40、010101010010101010101010100010101001010101000000000000000000000000000010111111101111111101111111011111111111111110111111111第31頁(yè)/共73頁(yè)第三十一頁(yè),共73頁(yè)。2 21 12 2 計(jì)算機(jī)中算術(shù)運(yùn)算和邏輯運(yùn)算計(jì)算機(jī)中算術(shù)運(yùn)算和邏輯運(yùn)算1 1二進(jìn)制數(shù)的算術(shù)運(yùn)算二進(jìn)制數(shù)的算術(shù)運(yùn)算(1 1) 定點(diǎn)數(shù)運(yùn)算定點(diǎn)數(shù)運(yùn)算 定點(diǎn)數(shù)加法減法定點(diǎn)數(shù)加法減法(jinf)(jinf)運(yùn)算運(yùn)算定點(diǎn)數(shù)的加法和減法定點(diǎn)數(shù)的加法和減法(jinf)(jinf)運(yùn)算使用補(bǔ)碼較為方便。對(duì)于運(yùn)算使用補(bǔ)碼較為方便
41、。對(duì)于定點(diǎn)小數(shù)的運(yùn)算規(guī)則如下:定點(diǎn)小數(shù)的運(yùn)算規(guī)則如下: 加法:加法:XXYY補(bǔ)補(bǔ)XX補(bǔ)補(bǔ)yy補(bǔ)補(bǔ) mod 2 mod 2 減法減法(jinf)(jinf):XXYY補(bǔ)補(bǔ)XX補(bǔ)補(bǔ) yy補(bǔ)補(bǔ) mod 2 mod 2當(dāng) 運(yùn) 算 結(jié) 果 超 過(guò) 了 定 點(diǎn) 數(shù) 的 表 示 范 圍 時(shí) , 則 產(chǎn) 生 溢 出當(dāng) 運(yùn) 算 結(jié) 果 超 過(guò) 了 定 點(diǎn) 數(shù) 的 表 示 范 圍 時(shí) , 則 產(chǎn) 生 溢 出(Overflow)(Overflow),常用的溢出檢測(cè)機(jī)制主要有以下兩種:,常用的溢出檢測(cè)機(jī)制主要有以下兩種:進(jìn)位判決法:進(jìn)位判決法: 令令Cn1Cn1表示次高位表示次高位( (最高數(shù)值位最高數(shù)值位) )向最
42、高位向最高位( (符號(hào)位符號(hào)位) )的的進(jìn)位,進(jìn)位,CnCn則表示符號(hào)位的進(jìn)位,則結(jié)果是否溢出的判決表則表示符號(hào)位的進(jìn)位,則結(jié)果是否溢出的判決表如表如表2 22 2所示,即所示,即CnCn1CnCn11 1時(shí)溢出。這里,表示異或。時(shí)溢出。這里,表示異或。 第32頁(yè)/共73頁(yè)第三十二頁(yè),共73頁(yè)。表22 溢出(y ch)的判決表 CnCn1OverflowCnCn100無(wú)溢出01溢出10溢出11無(wú)溢出第33頁(yè)/共73頁(yè)第三十三頁(yè),共73頁(yè)。 【例.】X(100)10(01100100)2,Y(50)10(00110010)2,求XY。解: X補(bǔ)01100100,y補(bǔ)00110010 XY補(bǔ)X補(bǔ)y
43、補(bǔ)10010110 CnCn11,表示結(jié)果溢出?!纠?】X(100)l0(01100100)2,Y(50)l0(00110010)2,求XY。解: X補(bǔ)10011100,y補(bǔ)00110010 XY補(bǔ)X補(bǔ)Y補(bǔ)11001110 CnCn10,因此沒(méi)有溢出。雙符號(hào)位判決法: 采用兩位二進(jìn)制位來(lái)表示符號(hào)位:00正號(hào),11負(fù)號(hào)(f ho),根據(jù)運(yùn)算結(jié)果的符號(hào)位也可以判定其是否溢出,其判決表如表23所示。 第34頁(yè)/共73頁(yè)第三十四頁(yè),共73頁(yè)。表23 雙符號(hào)(fho)位判決表 運(yùn)算結(jié)果的符號(hào)位Overflow運(yùn)算結(jié)果的符號(hào)位Overflow00無(wú)溢出10溢出01溢出11無(wú)溢出第35頁(yè)/共73頁(yè)第三十五頁(yè)
44、,共73頁(yè)。 【例2.1】X(100)l0(01100100)2,Y(50)l0(00110010)2,求XY。解: X補(bǔ)001100100 Y補(bǔ)000110010 XY補(bǔ)X補(bǔ)y補(bǔ)010010110 其符號(hào)位為0 1,說(shuō)明結(jié)果溢出(y ch)。 定點(diǎn)數(shù)乘法運(yùn)算在作定點(diǎn)數(shù)的乘法運(yùn)算時(shí)采用原碼比較方便。通常使用原碼一位乘法來(lái)求兩個(gè)定點(diǎn)數(shù)的乘積。 運(yùn)算規(guī)則:乘積的符號(hào)位等于乘數(shù)和被乘數(shù)的符號(hào)位進(jìn)行異或;乘積的值等于兩數(shù)絕對(duì)值之積,即乘數(shù)和被乘數(shù)的絕對(duì)值進(jìn)行移位相加。算法:(用絕對(duì)值進(jìn)行運(yùn)算) 令X表示被乘數(shù),Y表示乘數(shù),P表示部分積以存放中間結(jié)果,flag用作判別位,count用作計(jì)數(shù)。 第36頁(yè)/
45、共73頁(yè)第三十六頁(yè),共73頁(yè)。令P0;count0;flag0; P和Y一起右移一位(P為高位部分,Y為低位部分),右移時(shí)P的最高位補(bǔ)0,P的最低位移入Y的最高位,Y的最低位移入到flag中; 如果flag1同PPX,否則P不變; countcount1,如果count超過(guò)(chogu)Y的位數(shù)則運(yùn)算停止,否則轉(zhuǎn)到上述第2步繼續(xù)執(zhí)行; P和Y的內(nèi)容就是所求乘積的絕對(duì)值,其中P存放積的高位,而Y存放積的低位?!纠?X(10)l0(1010)2,Y(6)10(0110)2,求X,Y。解: X原1010,Y原0110乘積的符號(hào)位S 0 1 1。 第37頁(yè)/共73頁(yè)第三十七頁(yè),共73頁(yè)。表24 定點(diǎn)
46、數(shù)乘法(chngf)運(yùn)算表 執(zhí)行動(dòng)作部分積P乘數(shù)Y判別位Flagcounter初始化0000011000右移0000001101右移0000000112P+X1010右移0101000013P+X1111右移0111100004右移0011110005第38頁(yè)/共73頁(yè)第三十八頁(yè),共73頁(yè)。則所得乘積為(00111100)2(60)l0 定點(diǎn)數(shù)除法運(yùn)算定點(diǎn)數(shù)的除法通常也常用原碼進(jìn)行。下面介紹常用的加減交替法求兩個(gè)數(shù)X和Y 的商。運(yùn)算規(guī)則(guz):商的符號(hào)位同定點(diǎn)數(shù)原碼乘法的處理方法,由兩數(shù)的符號(hào)位進(jìn)行異或;兩數(shù)的絕對(duì)值部分進(jìn)行相除;算法:(求XY,設(shè)X、Y的數(shù)值部分長(zhǎng)度為N) 令及RX,co
47、unter0; RRY;若R為正則商1,否則商0; R左移一位,countercounter1; 若上一次商為1則RRY,否則RRY; R為正則商1,否則商0; 若R0或者counterN則結(jié)束,否則轉(zhuǎn)到上述第3步執(zhí)行。 第39頁(yè)/共73頁(yè)第三十九頁(yè),共73頁(yè)。 (2) 浮點(diǎn)數(shù)運(yùn)算在進(jìn)行浮點(diǎn)運(yùn)算之前,應(yīng)先對(duì)浮點(diǎn)數(shù)進(jìn)行規(guī)格化。浮點(diǎn)數(shù)的加減運(yùn)算設(shè)有浮點(diǎn)數(shù)XM2i,YN2j,求XY或XY,其運(yùn)算過(guò)程如下(rxi): 對(duì)階:使兩個(gè)數(shù)的階碼相同。令Kij,把階碼小的數(shù)的尾數(shù)右移K位,其階碼加上K。當(dāng)右移尾數(shù)時(shí),若尾數(shù)用補(bǔ)碼表示則符號(hào)位參加移位,符號(hào)位不變,如果是原碼,則符號(hào)位不參加移位,尾數(shù)的最高位補(bǔ)0
48、。 尾數(shù)進(jìn)行加、減運(yùn)算: 規(guī)格化處理:若尾數(shù)所得結(jié)果不是規(guī)格化的數(shù),則需對(duì)其進(jìn)行規(guī)格化處理。當(dāng)尾數(shù)溢出時(shí),尾數(shù)向右規(guī)格化位,階碼加1;當(dāng)尾數(shù)用補(bǔ)碼表示,尾數(shù)的最高位與符號(hào)位相同時(shí),應(yīng)向左規(guī)格化,尾數(shù)每向左移一位,階碼減1,直到尾數(shù)最高位與符號(hào)位相反。 第40頁(yè)/共73頁(yè)第四十頁(yè),共73頁(yè)。 舍入操作:舍入的方法常用0舍1入,即當(dāng)向右規(guī)格化時(shí),若移掉的最高位為1,則在尾數(shù)末位加1,否則舍去。另一種則是“恒1”法,即不管移走的數(shù)據(jù)(shj)為何值,尾數(shù)最末位恒置1。 溢出判斷:以階碼為準(zhǔn)。若階碼上溢,則結(jié)果溢出;若階碼下溢,則結(jié)果為0;否則結(jié)果正確無(wú)溢出。 浮點(diǎn)數(shù)的乘除運(yùn)算 浮點(diǎn)數(shù)相乘,其積的階碼
49、為兩數(shù)階碼相加,積的尾數(shù)為兩尾數(shù)相乘。浮點(diǎn)數(shù)相除,其商的階碼為兩數(shù)階碼之差,商的尾數(shù)為兩尾數(shù)相除。其結(jié)果都需要進(jìn)行規(guī)格化處理,同時(shí)還需要判斷其階碼是否溢出。 2邏輯代數(shù)及邏輯運(yùn)算 邏輯代數(shù)是1849年英國(guó)數(shù)學(xué)家喬治布爾提出的以代數(shù)的方式對(duì)邏輯變量進(jìn)行描述和分析的數(shù)學(xué)工具,又稱(chēng)布爾代數(shù)。邏輯變量的取值只有“真”和“假”,通常以1和0表示。 第41頁(yè)/共73頁(yè)第四十一頁(yè),共73頁(yè)。(1) 基本的邏輯運(yùn)算 “與”(AND)運(yùn)算 又稱(chēng)為邏輯乘運(yùn)算,其運(yùn)算符號(hào)通常用AND、或等表示(biosh)。兩個(gè)變量的“與”運(yùn)算的運(yùn)算規(guī)則如表24所示。即當(dāng)A、B中任一變量取0值時(shí),其運(yùn)算結(jié)果為0。 表25 “與”運(yùn)
50、算表 表26 “或”運(yùn)算表ABZ=AB000010100111ABZ=A+B000011101111第42頁(yè)/共73頁(yè)第四十二頁(yè),共73頁(yè)?!盎颉?OR)運(yùn)算 又稱(chēng)為邏輯加運(yùn)算,其運(yùn)算符號(hào)為OR、U、V或等。兩個(gè)變量的“或”運(yùn)算規(guī)則如表25所示。即當(dāng)A、B中任意(rny)一個(gè)取1值時(shí),其運(yùn)算結(jié)果為l。“非”(NOT)運(yùn)算 又稱(chēng)為邏輯求反運(yùn)算。常用表示對(duì)變量A進(jìn)行求反。其運(yùn)算規(guī)則很簡(jiǎn)單:0,。 “異或”運(yùn)算 常用的還有“異或”運(yùn)算,又稱(chēng)為半加運(yùn)算,其運(yùn)算符號(hào)為XOR或。異或運(yùn)算是一種復(fù)合邏輯運(yùn)算,可用上述基本邏輯運(yùn)算表示如下:AB A BA B 第43頁(yè)/共73頁(yè)第四十三頁(yè),共73頁(yè)。22 邏輯
51、邏輯(lu j)部件部件 221 寄存器寄存器 1寄存器組寄存器組(register block)概述概述CPU中的寄存器通??梢苑譃閮深?lèi):用戶(hù)可見(jiàn)的寄存器中的寄存器通??梢苑譃閮深?lèi):用戶(hù)可見(jiàn)的寄存器(user-visible registers)和狀態(tài)控制寄存器和狀態(tài)控制寄存器(control and status registers)。 (1) 用戶(hù)可見(jiàn)的寄存器用戶(hù)可見(jiàn)的寄存器用戶(hù)能夠通過(guò)用戶(hù)能夠通過(guò)(tnggu)機(jī)器語(yǔ)言來(lái)訪(fǎng)問(wèn)這些寄存器。合理機(jī)器語(yǔ)言來(lái)訪(fǎng)問(wèn)這些寄存器。合理優(yōu)化地使用這些寄存器可以減少對(duì)主存的訪(fǎng)問(wèn)次數(shù),從而優(yōu)化地使用這些寄存器可以減少對(duì)主存的訪(fǎng)問(wèn)次數(shù),從而提高程序的執(zhí)行速度
52、。按其功能可以分為提高程序的執(zhí)行速度。按其功能可以分為4類(lèi):類(lèi):通用寄存器通用寄存器(general purpose register)通用寄存器的用途由程序員編程決定,例如可以用來(lái)存放通用寄存器的用途由程序員編程決定,例如可以用來(lái)存放操作數(shù),也可以用作尋址寄存器。操作數(shù),也可以用作尋址寄存器。數(shù)據(jù)寄存器數(shù)據(jù)寄存器(dataregister)數(shù)據(jù)寄存器僅能用來(lái)存放數(shù)據(jù)而不能用來(lái)對(duì)操作數(shù)的地址數(shù)據(jù)寄存器僅能用來(lái)存放數(shù)據(jù)而不能用來(lái)對(duì)操作數(shù)的地址進(jìn)行計(jì)算。進(jìn)行計(jì)算。 第44頁(yè)/共73頁(yè)第四十四頁(yè),共73頁(yè)。地址寄存器(addressregister) 地址寄存器用來(lái)存放操作數(shù)的地址,一般而言地址寄存
53、器又可以分為段地址寄存器(segment pointer register)、間址寄存器(index register)和堆棧寄存器(stack pointer register)。段地址寄存器用在采用段式內(nèi)存管理的計(jì)算機(jī)中,存放著某一段內(nèi)存區(qū)域的基地址。間址寄存器用在間接尋址(indexed addressing)方式下。堆棧寄存器用以存放堆棧棧頂?shù)牡刂?,使得在使用堆棧操?如push,pop)時(shí)無(wú)須顯式地給出操作數(shù)的地址(即其地址是隱含的)。標(biāo)志(biozh)寄存器(flagcondition codes register)標(biāo)志(biozh)寄存器中的位是由CPU硬件根據(jù)運(yùn)算的結(jié)果而設(shè)立的
54、一些指示位,以反映該次運(yùn)算的某些特征:結(jié)果為正、負(fù)、零、溢出等等,并可以用作分支跳轉(zhuǎn)的依據(jù)。一般而言,標(biāo)志(biozh)寄存器允許編程者進(jìn)行讀操作,但不允許對(duì)其直接進(jìn)行寫(xiě)操作。 第45頁(yè)/共73頁(yè)第四十五頁(yè),共73頁(yè)。(2)狀態(tài)控制寄存器(CSR)這些寄存器被控制器(control unit)用來(lái)控制CPU的操作。通常是程序員不可見(jiàn)的,但也有某些寄存器在某種特定的狀態(tài)下可以由 某 些 特 權(quán) 指 令 進(jìn) 行 訪(fǎng) 問(wèn) 。 常 見(jiàn) 的 C S R 有 : 程 序 計(jì) 數(shù) 器(program counter,PC)、指令寄存器(instruction register,IR)、存儲(chǔ)器地址寄存器(me
55、moryaddress,register,MAR)、存儲(chǔ)器緩沖寄存器(memory buffer register,MBR)以及程序狀態(tài)字(programstatusword,PSW)。PC中存放著下一條待取指令的地址。當(dāng)程序順序執(zhí)行時(shí),CPU在取回一條指令后,會(huì)自動(dòng)修改PC中的值以使其指向(zh xin)下一條指令。而程序中的分支或跳轉(zhuǎn)指令也是通過(guò)修改PC中的值來(lái)達(dá)到改變流程的目的。IR中存放著CPU剛?cè)』氐闹噶?,以供指令譯碼使用。CPU和存儲(chǔ)器之間的數(shù)據(jù)交換通過(guò)MAR和MBR來(lái)實(shí)現(xiàn)。MAR中存放著待訪(fǎng)問(wèn)的內(nèi)存單元的地址而MBR則存放從內(nèi)存中讀人的數(shù)據(jù)或要寫(xiě)回內(nèi)存單元的數(shù)據(jù)。這4個(gè)寄存器(P
56、C、IR、MAR、MBR)用來(lái)實(shí)現(xiàn)在CPU和存儲(chǔ)器(memory)之間的數(shù)據(jù)交換。另外CPU內(nèi)部,在A(yíng)LU與MBR、用戶(hù)可見(jiàn)的寄存器之間也可能存在用作輸入/輸出緩沖寄存器。 第46頁(yè)/共73頁(yè)第四十六頁(yè),共73頁(yè)。2寄存器邏輯組成寄存器邏輯組成 寄存器是計(jì)算機(jī)的一個(gè)重要部件,用于暫存數(shù)據(jù)、寄存器是計(jì)算機(jī)的一個(gè)重要部件,用于暫存數(shù)據(jù)、指令等。它由觸發(fā)器和一些控制門(mén)組成。在寄存指令等。它由觸發(fā)器和一些控制門(mén)組成。在寄存器中,常用器中,常用(chn yn)的是正邊沿觸發(fā)的是正邊沿觸發(fā)D觸發(fā)觸發(fā)器和鎖存器。器和鎖存器。 圖圖23所示是由正沿觸發(fā)的所示是由正沿觸發(fā)的D觸發(fā)器組成的四觸發(fā)器組成的四位寄存器
57、。在位寄存器。在CP正沿作用下,外部數(shù)據(jù)才能進(jìn)入正沿作用下,外部數(shù)據(jù)才能進(jìn)入寄存器。寄存器。D是復(fù)位端,是復(fù)位端,CP 是是 D觸發(fā)器的脈沖端,觸發(fā)器的脈沖端,CK 是增加了個(gè)與邏輯門(mén)電路來(lái)取正沿脈沖的輸是增加了個(gè)與邏輯門(mén)電路來(lái)取正沿脈沖的輸入端。四入端。四D寄存器的功能見(jiàn)表寄存器的功能見(jiàn)表27,其中,其中代表正代表正脈沖,也即正沿。脈沖,也即正沿。 第47頁(yè)/共73頁(yè)第四十七頁(yè),共73頁(yè)。圖23四D寄存器 第48頁(yè)/共73頁(yè)第四十八頁(yè),共73頁(yè)。表27 四D寄存器功能表 控制和輸入輸出R DCK1D2D3D4D1Q2Q3Q4Q11D2D3D4D1D2D3D4D00000第49頁(yè)/共73頁(yè)第四
58、十九頁(yè),共73頁(yè)。事實(shí)上,在計(jì)算機(jī)中常要求寄存器有移位功能。如在進(jìn)行乘法時(shí),要求將部分積右移;在將并行傳送的數(shù)轉(zhuǎn)換成串行數(shù)時(shí)也需移位。有移位功能的寄存器稱(chēng)為移位寄存器。222 計(jì)數(shù)器計(jì)數(shù)器是計(jì)算機(jī)、數(shù)字(shz)儀表中常用的一種電路。計(jì)數(shù)器按時(shí)鐘作用方式來(lái)分,有同步計(jì)數(shù)器和異步計(jì)數(shù)器兩大類(lèi)。在異步計(jì)數(shù)器中,由于高位觸發(fā)器的時(shí)鐘信號(hào)是由低一位觸發(fā)器的輸出來(lái)提供的,但是結(jié)構(gòu)簡(jiǎn)單。同步計(jì)數(shù)器中各觸發(fā)器的時(shí)鐘信號(hào)是由同一脈沖來(lái)提供的,因此,各觸發(fā)器是同時(shí)翻轉(zhuǎn)的,它的工作頻率比異步計(jì)數(shù)器高,但結(jié)構(gòu)較復(fù)雜。計(jì)數(shù)器按計(jì)數(shù)順序來(lái)分,有二進(jìn)制、十進(jìn)制兩大類(lèi)。在計(jì)算機(jī)中較少使用異步計(jì)數(shù)器,這里著重介紹有并行輸入數(shù)
59、據(jù)功能的正向同步十進(jìn)制計(jì)數(shù)器。圖24是用主從JK觸發(fā)器構(gòu)成的同步十進(jìn)制集成化計(jì)數(shù)器。同步計(jì)數(shù)器是采用快速進(jìn)位方式來(lái)計(jì)數(shù)的,觸發(fā)器及實(shí)現(xiàn)快速進(jìn)位的邏輯電路是它的核心。 第50頁(yè)/共73頁(yè)第五十頁(yè),共73頁(yè)。圖2 24 4十進(jìn)制同步(tngb)(tngb)計(jì)數(shù)器 第51頁(yè)/共73頁(yè)第五十一頁(yè),共73頁(yè)。“預(yù)置數(shù)”是集成化同步計(jì)數(shù)器的一個(gè)重要功能。一般設(shè)置控制端L,用來(lái)選擇電路是執(zhí)行計(jì)數(shù)還是執(zhí)行預(yù)置數(shù):當(dāng)L1,執(zhí)行同步計(jì)數(shù);L0,執(zhí)行預(yù)置數(shù)。由于JK觸發(fā)器數(shù)據(jù)輸入是雙端的,所以要將單端的預(yù)置數(shù)AD經(jīng)兩級(jí)“與非”門(mén)變成互補(bǔ)(h b)信號(hào),再加在J,K端。圖24所示與非門(mén)411就是為此目的而設(shè)置的。當(dāng)L
60、1時(shí),這些與非門(mén)被封鎖,快速進(jìn)位電路輸出經(jīng)或門(mén)1215進(jìn)入觸發(fā)器,電路執(zhí)行計(jì)數(shù);當(dāng)L0,門(mén)411打開(kāi),快速進(jìn)位被封鎖,電路執(zhí)行置數(shù)。 能夠方便地?cái)U(kuò)展位數(shù)是集成化計(jì)數(shù)器的一個(gè)特點(diǎn)。下面介紹擴(kuò)展方法。計(jì)數(shù)器擴(kuò)展應(yīng)滿(mǎn)足以下條件。 首先,要有標(biāo)志計(jì)數(shù)器已計(jì)至最大數(shù)的進(jìn)位輸出端RC,對(duì)二進(jìn)制、十進(jìn)制計(jì)數(shù)器,RC分別為: 二進(jìn)制計(jì)數(shù)器:RCQAQBQCQD 十進(jìn)制計(jì)數(shù)器:RCQAQD第52頁(yè)/共73頁(yè)第五十二頁(yè),共73頁(yè)。其次,計(jì)數(shù)器應(yīng)有保持功能。圖24計(jì)數(shù)器中設(shè)置了“計(jì)數(shù)允許”端P和T,用來(lái)控制計(jì)數(shù)器快速進(jìn)位電路和RC形成門(mén):當(dāng)P,T均為“1”,快速進(jìn)位電路才能打開(kāi)(見(jiàn)表28),此時(shí)若L1,則電路處于計(jì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東體育職業(yè)技術(shù)學(xué)院《特殊教育(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東食品藥品職業(yè)學(xué)院《企業(yè)經(jīng)營(yíng)決策模擬》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東輕工職業(yè)技術(shù)學(xué)院《生物高分子材料在組織工程領(lǐng)域應(yīng)用設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津市河?xùn)|區(qū)2024-2025學(xué)年高三上學(xué)期期末質(zhì)量檢測(cè)試題 數(shù)學(xué) 含解析
- 廣東農(nóng)工商職業(yè)技術(shù)學(xué)院《環(huán)境設(shè)計(jì)與制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東梅州職業(yè)技術(shù)學(xué)院《綜合交通運(yùn)輸系統(tǒng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東女子職業(yè)技術(shù)學(xué)院《中國(guó)文學(xué)經(jīng)典(上)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名健康職業(yè)學(xué)院《文獻(xiàn)檢索B》2023-2024學(xué)年第一學(xué)期期末試卷
- 四年級(jí)數(shù)學(xué)(小數(shù)加減運(yùn)算)計(jì)算題專(zhuān)項(xiàng)練習(xí)與答案
- 【名師一號(hào)】2020-2021學(xué)年高中地理必修一(中圖版)雙基限時(shí)練6-大氣的熱狀況與熱力環(huán)流
- 2024年不良資產(chǎn)處置相關(guān)項(xiàng)目投資計(jì)劃書(shū)
- 腸道支架植入術(shù)培訓(xùn)課件
- 數(shù)字政府建設(shè)行業(yè)分析
- 人教版三年級(jí)上冊(cè)豎式計(jì)算練習(xí)400題及答案
- gmp生產(chǎn)工藝的驗(yàn)證
- 關(guān)于調(diào)整縣人民醫(yī)院預(yù)算管理委員會(huì)成員的通知
- 《工程計(jì)量》課件
- 2024年度企業(yè)網(wǎng)絡(luò)搭建及應(yīng)用技能大賽方案
- 2024分娩鎮(zhèn)痛ppt課件完整版
- 教務(wù)處述職報(bào)告
- 進(jìn)口公司創(chuàng)業(yè)計(jì)劃書(shū)
評(píng)論
0/150
提交評(píng)論