數(shù)據(jù)的機(jī)器層次表示(終).ppt_第1頁(yè)
數(shù)據(jù)的機(jī)器層次表示(終).ppt_第2頁(yè)
數(shù)據(jù)的機(jī)器層次表示(終).ppt_第3頁(yè)
數(shù)據(jù)的機(jī)器層次表示(終).ppt_第4頁(yè)
數(shù)據(jù)的機(jī)器層次表示(終).ppt_第5頁(yè)
已閱讀5頁(yè),還剩84頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1,中國(guó)計(jì)算機(jī)學(xué)會(huì)“21世紀(jì)大學(xué)本科計(jì)算機(jī)專業(yè)系列教材”計(jì)算機(jī)組成原理,2,第2章數(shù)據(jù)的機(jī)器層次表示,3,本章學(xué)習(xí)內(nèi)容,2.1 數(shù)值數(shù)據(jù)的表示 2.2 機(jī)器數(shù)的定點(diǎn)表示和浮點(diǎn)表示 2.3 非數(shù)值數(shù)據(jù)的表示 2.4 十進(jìn)制數(shù)和數(shù)串的表示 2.5 現(xiàn)代微型計(jì)算機(jī)中的數(shù)據(jù)表示舉例 2.6 數(shù)據(jù)校驗(yàn)碼,4,本章學(xué)習(xí)要求,了解:無(wú)符號(hào)數(shù)與帶符號(hào)數(shù),真值和機(jī)器數(shù)等概念 掌握:原碼、補(bǔ)碼、反碼表示法以及三種碼制與真值之間的轉(zhuǎn)換方法 掌握:定點(diǎn)數(shù)和浮點(diǎn)數(shù)的表示范圍 理解:浮點(diǎn)數(shù)階碼的移碼 了解:IEEE754浮點(diǎn)數(shù)標(biāo)準(zhǔn) 掌握:常見(jiàn)的字符編碼方法(ASCII碼)、漢字國(guó)標(biāo)碼、區(qū)位碼、機(jī)內(nèi)碼 掌握:8421碼、2

2、421碼和余3碼 掌握:奇偶校驗(yàn)位及其形成方法 了解:海明校驗(yàn)碼和循環(huán)冗余校驗(yàn)碼,5,2.1 數(shù)值數(shù)據(jù)的表示,數(shù)據(jù)有無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)之分。 帶符號(hào)數(shù)根據(jù)其編碼的不同又有 原碼、補(bǔ)碼和反碼3種形式。,6,2.1.1 計(jì)算機(jī)中的數(shù)值數(shù)據(jù),二進(jìn)制數(shù):后綴B 八進(jìn)制數(shù):后綴Q 十進(jìn)制數(shù):后綴D或省略后綴 十六進(jìn)制數(shù):后綴H,7,2.1.2 無(wú)符號(hào)數(shù)和帶符號(hào)數(shù),無(wú)符號(hào)數(shù),就是整個(gè)機(jī)器字長(zhǎng)的全部二進(jìn)制位均表示數(shù)值位(沒(méi)有符號(hào)位),相當(dāng)于數(shù)的絕對(duì)值。例如: N1=01001 表示無(wú)符號(hào)數(shù)9 N2=11001 表示無(wú)符號(hào)數(shù)25 機(jī)器字長(zhǎng)為n+1位的無(wú)符號(hào)數(shù)的表示范圍是0(2n+1-1),此時(shí)二進(jìn)制的最高位也

3、是數(shù)值位,其權(quán)值等于2n。若字長(zhǎng)為8位,則數(shù)的表示范圍為0255。,8,2.1.2 無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)(續(xù)),用“+”、“-”號(hào)加絕對(duì)值來(lái)表示數(shù)值的大小,用這種形式表示的數(shù)值在計(jì)算機(jī)技術(shù)中稱為“真值”。 約定二進(jìn)制數(shù)的最高位為符號(hào)位,“0”表示正號(hào),“1”表示負(fù)號(hào)。這種在計(jì)算機(jī)中使用的表示數(shù)的形式稱為機(jī)器數(shù)。,9,2.1.2 無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)(續(xù)),常見(jiàn)的機(jī)器數(shù)有原碼、反碼、補(bǔ)碼等3種不同的表示形式。 帶符號(hào)數(shù)的最高位被用來(lái)表示符號(hào)位,而不再表示數(shù)值位。 N1=01001 表示+9。 N2=11001 表示9。,10,2.1.3 原碼表示法,原碼表示法是一種最簡(jiǎn)單的機(jī)器數(shù)表示法,用最高位表示

4、符號(hào)位,符號(hào)位為“0”表示該數(shù)為正,符號(hào)位為“1”表示該數(shù)為負(fù),數(shù)值部分與真值相同。 設(shè)二進(jìn)制純小數(shù)的原碼形式為Xs.X1X2Xn,字長(zhǎng)n+1位,其中Xs表示符號(hào)位。 例1:X1=0.0110, X1原=0.0110 X2=-0.0110, X2原=1.0110,11,2.1.3 原碼表示法(續(xù)),設(shè)二進(jìn)制純整數(shù)的原碼形式為XsX1X2Xn,其中Xs表示符號(hào)位。 例2: X1=1101, X1原=01101 X2=-1101, X2原=11101 在原碼表示中,真值0有兩種不同的表示形式: +0原=00000 -0原=10000,12,補(bǔ)碼的符號(hào)位表示方法與原碼相同,其數(shù)值部分的表示與數(shù)的正負(fù)

5、有關(guān):對(duì)于正數(shù),數(shù)值部分與真值形式相同;對(duì)于負(fù)數(shù),將真值的數(shù)值部分按位取反,且在最低位上加1。 若真值為純小數(shù),它的補(bǔ)碼形式為Xs.X1X2Xn,其中Xs表示符號(hào)位。 例5:X1=0.0110, X1補(bǔ)=0.0110 X2=-0.0110, X2補(bǔ)=1.1010,2.1.4 補(bǔ)碼表示法,13,若真值為純整數(shù),它的補(bǔ)碼形式為XsX1X2Xn,其中Xs表示符號(hào)位。 例6:X1=1101, X1補(bǔ)=01101 X2=-1101, X2補(bǔ)=10011 在補(bǔ)碼表示中,真值0的表示形式是唯一的: +0補(bǔ)=-0補(bǔ)=00000,2.補(bǔ)碼表示(續(xù)),14,當(dāng)X為正數(shù)時(shí),X補(bǔ)=X原=X 當(dāng)X為負(fù)數(shù)時(shí),由X原轉(zhuǎn)換為

6、X補(bǔ)的方法: X原除掉符號(hào)位外的各位取反加“1”。 自低位向高位,尾數(shù)的第一個(gè)“1”及其右部的“0”保持不變,左部的各位取反,符號(hào)位保持不變。 例7:X原 =1.1110011000 X補(bǔ) =1.0001101000,3.由真值、原碼轉(zhuǎn)換為補(bǔ)碼,15,2.1.5 反碼表示法,反碼表示法與補(bǔ)碼表示法有許多類似之處,對(duì)于正數(shù),數(shù)值部分與真值形式相同;對(duì)于負(fù)數(shù),將真值的數(shù)值部分按位取反。 若真值為純小數(shù),它的反碼形式為Xs.X1X2Xn,其中Xs表示符號(hào)位。 例9:X1=0.0110, X1反=0.0110 X2=-0.0110, X2反=1.1001,16,2.1.5 反碼表示法(續(xù)),若真值為純

7、整數(shù),它的反碼形式為XsX1X2Xn,其中Xs表示符號(hào)位。 例10:X1=1101, X1補(bǔ)=01101 X2=-1101, X2補(bǔ)=10010 在反碼表示中,真值0也有兩種不同的表示形式: +0反=00000 -0反=11111,17,1.比較 對(duì)于正數(shù)它們都等于真值本身,而對(duì)于負(fù)數(shù)各有不同的表示。 最高位都表示符號(hào)位,補(bǔ)碼和反碼的符號(hào)位可作為數(shù)值位的一部分看待,和數(shù)值位一起參加運(yùn)算;但原碼的符號(hào)位不允許和數(shù)值位同等看待,必須分開(kāi)進(jìn)行處理。 對(duì)于真值0,原碼和反碼各有兩種不同的表示形式,而補(bǔ)碼只有唯一的一種表示形式。 原碼、反碼表示的正、負(fù)數(shù)范圍相對(duì)零來(lái)說(shuō)是對(duì)稱的;但補(bǔ)碼負(fù)數(shù)表示范圍較正數(shù)表

8、示范圍寬,能多表示一個(gè)最負(fù)的數(shù)(絕對(duì)值最大的負(fù)數(shù)),其值等于-2n(純整數(shù))或-1(純小數(shù))。,2.1.6 三種碼制的比較與轉(zhuǎn)換,18,真值與3種機(jī)器數(shù)間的對(duì)照,19,2.轉(zhuǎn)換,如果已知機(jī)器的字長(zhǎng),則機(jī)器數(shù)的位數(shù)應(yīng)補(bǔ)夠相應(yīng)的位。例如,設(shè)機(jī)器字長(zhǎng)為8位,則: X1=1011 X2=-1011 X1原=00001011 X2原=10001011 X1補(bǔ)=00001011 X2補(bǔ)=11110101 X1反=00001011 X2反=11110100 X3=0.1011 X4=-0.1011 X3原=0.1011000 X4原=1.1011000 X3補(bǔ)=0.1011000 X4補(bǔ)=1.0101000

9、 X3反=0.1011000 X4反=1.0100111,20,2.2 機(jī)器數(shù)的定點(diǎn)表示與浮點(diǎn)表示,計(jì)算機(jī)在進(jìn)行算術(shù)運(yùn)算時(shí),需要指出小數(shù)點(diǎn)的位置。根據(jù)小數(shù)點(diǎn)的位置是否固定,在計(jì)算機(jī)中有兩種數(shù)據(jù)格式:定點(diǎn)表示和浮點(diǎn)表示。,21,2.2.1 定點(diǎn)表示法,在定點(diǎn)表示法中約定:所有數(shù)據(jù)的小數(shù)點(diǎn)位置固定不變。 1.定點(diǎn)小數(shù) 小數(shù)點(diǎn)的位置固定在最高有效數(shù)位之前,符號(hào)位之后,記作Xs.X1X2Xn,這個(gè)數(shù)是一個(gè)純小數(shù)。定點(diǎn)小數(shù)的小數(shù)點(diǎn)位置是隱含約定的,小數(shù)點(diǎn)并不需要真正地占據(jù)一個(gè)二進(jìn)制位。,22,定點(diǎn)小數(shù)表示范圍,圖2-2 定點(diǎn)小數(shù)格式 當(dāng)Xs=0,X1Xn=1時(shí),X為最大正數(shù)。 X最大正數(shù) =1-2-n

10、當(dāng)Xn=1,XsXn-1=0時(shí),X為最小正數(shù)。 X最小正數(shù) =2-n,23,定點(diǎn)小數(shù)表示范圍(續(xù)),當(dāng)Xs=1,表示X為負(fù)數(shù),此時(shí)情況要稍微復(fù)雜一些,這是因?yàn)樵谟?jì)算機(jī)中帶符號(hào)數(shù)可用補(bǔ)碼表示,也可用原碼表示。原碼和補(bǔ)碼的表示范圍有一些差別。 若機(jī)器數(shù)為原碼表示,當(dāng)XsXn均等于1時(shí),X為絕對(duì)值最大的負(fù)數(shù)。 X絕對(duì)值最大負(fù)數(shù)=-(1-2-n) 若機(jī)器數(shù)為補(bǔ)碼表示,當(dāng)Xs=1,X1Xn均等于0時(shí),X為絕對(duì)值最大的負(fù)數(shù)。 X絕對(duì)值最大負(fù)數(shù)=-1,24,若機(jī)器字長(zhǎng)有n+1位,則有: 原碼定點(diǎn)小數(shù)表示范圍: -(1-2-n)(1-2-n) 補(bǔ)碼定點(diǎn)小數(shù)表示范圍: -1(1-2-n) 若機(jī)器字長(zhǎng)有8位,則有

11、: 原碼定點(diǎn)小數(shù)表示范圍: - 補(bǔ)碼定點(diǎn)小數(shù)表示范圍: -1,定點(diǎn)小數(shù)表示范圍(續(xù)),25,2.定點(diǎn)整數(shù),定點(diǎn)整數(shù)即純整數(shù),小數(shù)點(diǎn)位置隱含固定在最低有效數(shù)位之后,記作XsX1X2Xn。 圖2-3 定點(diǎn)整數(shù)格式,26,若機(jī)器字長(zhǎng)有n+1位,則有: 原碼定點(diǎn)整數(shù)的表示范圍: -(2n-1)(2n-1) 補(bǔ)碼定點(diǎn)整數(shù)的表示范圍: -2n (2n-1) 若機(jī)器字長(zhǎng)有8位,則有: 原碼定點(diǎn)整數(shù)表示范圍: -127127 補(bǔ)碼定點(diǎn)整數(shù)表示范圍: -128127,定點(diǎn)整數(shù)表示范圍,27,小數(shù)點(diǎn)的位置根據(jù)需要而浮動(dòng),這就是浮點(diǎn)數(shù)。例如: N=MrE 式中:r為浮點(diǎn)數(shù)階碼的底,與尾數(shù)的基數(shù)相同,通常r=2。E和

12、M都是帶符號(hào)數(shù),E叫做階碼,M叫做尾數(shù)。在大多數(shù)計(jì)算機(jī)中,尾數(shù)為純小數(shù),常用原碼或補(bǔ)碼表示;階碼為純整數(shù),常用移碼或補(bǔ)碼表示。,2.2.2 浮點(diǎn)表示法,28,圖2-5 浮點(diǎn)數(shù)的一般格式 浮點(diǎn)數(shù)的底是隱含的,在整個(gè)機(jī)器數(shù)中不出現(xiàn)。階碼的符號(hào)位為es,階碼的大小反映了在數(shù)N中小數(shù)點(diǎn)的實(shí)際位置;尾數(shù)的符號(hào)位為ms,它是整個(gè)浮點(diǎn)數(shù)的符號(hào)位,表示了該浮點(diǎn)數(shù)的正負(fù)。,浮點(diǎn)數(shù)的一般格式,29,1.浮點(diǎn)數(shù)的表示范圍,當(dāng)es=0,ms=0,階碼和尾數(shù)的數(shù)值位各位全為1(即階碼和尾數(shù)都為最大正數(shù))時(shí),該浮點(diǎn)數(shù)為最大正數(shù): X最大正數(shù)=(1-2-n) 當(dāng)es=1,ms=0,尾數(shù)的最低位mn=1,其余各位為0(即階碼

13、為絕對(duì)值最大的負(fù)數(shù),尾數(shù)為最小正數(shù))時(shí),該浮點(diǎn)數(shù)為最小正數(shù): X最小正數(shù)=2-n,30,1.浮點(diǎn)數(shù)的表示范圍(續(xù)),當(dāng)es=0,階碼的數(shù)值位為全1;ms=1,尾數(shù)的數(shù)值位為全0(即階碼為最大正數(shù),尾數(shù)為絕對(duì)值最大的負(fù)數(shù))時(shí),該浮點(diǎn)數(shù)為絕對(duì)值最大負(fù)數(shù): X絕對(duì)值最大負(fù)數(shù)= -1,31,為了提高運(yùn)算的精度,需要充分地利用尾數(shù)的有效數(shù)位,通常采取浮點(diǎn)數(shù)規(guī)格化形式,即規(guī)定尾數(shù)的最高數(shù)位必須是一個(gè)有效值。 1/2 |M| 1,2.規(guī)格化浮點(diǎn)數(shù),32,2.規(guī)格化浮點(diǎn)數(shù)(續(xù)),在尾數(shù)用補(bǔ)碼表示時(shí),規(guī)格化浮點(diǎn)數(shù)應(yīng)滿足尾數(shù)最高數(shù)位與符號(hào)位不同(msm1 =1),即當(dāng)1/2M1時(shí),應(yīng)有0.1xxx形式,當(dāng)-1M-

14、1/2時(shí),應(yīng)有1.0 xxx形式。 需要注意的是當(dāng)M=-1/2,對(duì)于原碼來(lái)說(shuō),是規(guī)格化數(shù),而對(duì)于補(bǔ)碼來(lái)說(shuō),不是規(guī)格化數(shù)。,33,2.規(guī)格化浮點(diǎn)數(shù)(續(xù)),當(dāng)es=1,ms=0,尾數(shù)的最高位m1=1,其余各位為0時(shí),該浮點(diǎn)數(shù)為規(guī)格化的最小正數(shù): X規(guī)格化的最小正數(shù)=2-1 規(guī)格化的最小正數(shù)大于非規(guī)格化的最小正數(shù)。,34,浮點(diǎn)數(shù)的典型值,35,2.2.3 移碼表示法,移碼就是在真值X上加一個(gè)常數(shù)(偏置值),相當(dāng)于X在數(shù)軸上向正方向平移了一段距離,這就是“移碼”一詞的來(lái)由。 X移=偏置值+X 對(duì)于字長(zhǎng)8位的定點(diǎn)整數(shù),偏置值為27。 例11:X=1011101 X移=27+X=10000000+1011

15、101=11011101 X補(bǔ)=01011101 例12:X=-1011101 X移= 27 +X=10000000-1011101=00100011 X補(bǔ)=10100011,36,偏置值為27的移碼、補(bǔ)碼和真值之間的關(guān)系,37,偏置值為2n的移碼的特點(diǎn),在移碼中,最高位為“0”表示負(fù)數(shù),最高位為“1”表示正數(shù)。 移碼為全0時(shí),它所對(duì)應(yīng)的真值最小,為全1時(shí),它所對(duì)應(yīng)的真值最大。 真值0在移碼中的表示形式是唯一的,即+0移=-0移=1000。 移碼把真值映射到一個(gè)正數(shù)域,所以可將移碼視為無(wú)符號(hào)數(shù),直接按無(wú)符號(hào)數(shù)規(guī)則比較大小。 同一數(shù)值的移碼和補(bǔ)碼除最高位相反外,其他各位相同。,38,浮點(diǎn)數(shù)的階碼

16、采用移碼的原因,便于比較浮點(diǎn)數(shù)的大小。階碼大的,其對(duì)應(yīng)的真值就大,階碼小的,對(duì)應(yīng)的真值就小。 簡(jiǎn)化機(jī)器中的判零電路。當(dāng)階碼全為0,尾數(shù)也全為0時(shí),表示機(jī)器零。,39,1.定點(diǎn)、浮點(diǎn)表示法的區(qū)別 數(shù)值的表示范圍 假設(shè)定點(diǎn)數(shù)和浮點(diǎn)數(shù)的字長(zhǎng)相同,浮點(diǎn)表示法所能表示的數(shù)值范圍將遠(yuǎn)遠(yuǎn)大于定點(diǎn)數(shù)。 精度 對(duì)于字長(zhǎng)相同的定點(diǎn)數(shù)和浮點(diǎn)數(shù)來(lái)說(shuō),浮點(diǎn)數(shù)雖然擴(kuò)大了數(shù)的表示范圍,但這正是以降低精度為代價(jià)的,也就是數(shù)軸上各點(diǎn)的排列更稀疏了。,2.2.4 定點(diǎn)、浮點(diǎn)表示法和定點(diǎn)、浮點(diǎn)計(jì)算機(jī),40,數(shù)的運(yùn)算 浮點(diǎn)運(yùn)算要比定點(diǎn)運(yùn)算復(fù)雜得多。 溢出處理 在定點(diǎn)運(yùn)算時(shí),當(dāng)運(yùn)算結(jié)果超出數(shù)的表示范圍,就發(fā)生溢出。而在浮點(diǎn)運(yùn)算時(shí),運(yùn)算

17、結(jié)果超出尾數(shù)的表示范圍卻并不一定溢出,只有當(dāng)階碼超出所能表示的范圍時(shí),才發(fā)生溢出。,1.定點(diǎn)、浮點(diǎn)表示法的區(qū)別(續(xù)),41,2.定點(diǎn)機(jī)與浮點(diǎn)機(jī),通常可以將計(jì)算機(jī)分為幾檔: 定點(diǎn)機(jī) 以定點(diǎn)運(yùn)算為主,浮點(diǎn)運(yùn)算是通過(guò)軟件來(lái)實(shí)現(xiàn)的。 定點(diǎn)機(jī)浮點(diǎn)運(yùn)算部件 浮點(diǎn)運(yùn)算部件是專門用于對(duì)浮點(diǎn)數(shù)進(jìn)行運(yùn)算的部件。 浮點(diǎn)機(jī) 具有浮點(diǎn)運(yùn)算指令和基本的浮點(diǎn)運(yùn)算器。,42,圖2-6 IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)格式,2.2.6 實(shí)用浮點(diǎn)數(shù)舉例,43,IEEE754標(biāo)準(zhǔn)的浮點(diǎn)數(shù),以短浮點(diǎn)數(shù)為例討論浮點(diǎn)代碼與其真值之間的關(guān)系。最高位為數(shù)符位;其后是8位階碼,以2為底,階碼的偏置值為127;其余23位是尾數(shù)。為了使尾數(shù)部分能表示

18、更多一位的有效值,IEEE754采用隱含尾數(shù)最高數(shù)位1(即這一位1不表示出來(lái))的方法,因此尾數(shù)實(shí)際上是24位。應(yīng)注意的是,隱含的1是一位整數(shù)(即位權(quán)為20),在浮點(diǎn)格式中表示出來(lái)的23位尾數(shù)是純小數(shù),并用原碼表示。,44,IEEE754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)(續(xù)),例13:將(100.25)10轉(zhuǎn)換成短浮點(diǎn)數(shù)格式。 十進(jìn)制數(shù)二進(jìn)制數(shù) (100.25)10=(1100100.01)2 非規(guī)格化數(shù)規(guī)格化數(shù) 1100100.01=1.1001000126 計(jì)算移碼表示的階碼(偏置值階碼真值) 1111111+110=10000101 以短浮點(diǎn)數(shù)格式存儲(chǔ)該數(shù)。 符號(hào)位=0 階碼=10000101 尾數(shù)=1001

19、0001000000000000000,45,IEEE754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)(續(xù)),短浮點(diǎn)數(shù)代碼為 0;100 0010 1;100 1000 1000 0000 0000 0000 表示為十六進(jìn)制的代碼:42C88000H。 例14:把短浮點(diǎn)數(shù)C1C90000H轉(zhuǎn)換成為十進(jìn)制數(shù)。 十六進(jìn)制二進(jìn)制形式,并分離出符號(hào)位、階碼和尾數(shù)。 C1C90000H= 1;10000011;10010010000000000000000,46,IEEE754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)(續(xù)), 計(jì)算出階碼真值(移碼偏置值) 10000011-1111111=100 以規(guī)格化二進(jìn)制數(shù)形式寫出此數(shù) 1.100100124 寫成非規(guī)格

20、化二進(jìn)制數(shù)形式 11001.001 轉(zhuǎn)換成十進(jìn)制數(shù),并加上符號(hào)位。 (11001.001)2=(25.125)10 所以,該浮點(diǎn)數(shù)=-25.125,47,2.3 非數(shù)值數(shù)據(jù)的表示,非數(shù)值數(shù)據(jù),又稱為字符數(shù)據(jù),通常是指字符、字符串、圖形符號(hào)和漢字等各種數(shù)據(jù),它們不用來(lái)表示數(shù)值的大小,一般情況下不對(duì)它們進(jìn)行算術(shù)運(yùn)算。,48,2.3.1 字符和字符串的表示,1.ASCII字符編碼 常見(jiàn)的ASCII碼用七位二進(jìn)制表示一個(gè)字符,它包括10個(gè)十進(jìn)制數(shù)字(09)、52個(gè)英文大寫和小寫字母(AZ,az)、34個(gè)專用符號(hào)和32個(gè)控制符號(hào),共計(jì)128個(gè)字符。 在計(jì)算機(jī)中,通常用一個(gè)字節(jié)來(lái)存放一個(gè)字符。 在ASCI

21、I碼表中,數(shù)字和英文字母都是按順序排列的,只要知道其中一個(gè)的二進(jìn)制代碼,不要查表就可以推導(dǎo)出其他數(shù)字或字母的二進(jìn)制代碼。,49,ASCII字符編碼表,50,2.字符串的存放,字符串是指一串連續(xù)的字符。例如,字符串IF X0 THEN READ (C)。 向量存放法在存儲(chǔ)器中占用一片連續(xù)的空間,每個(gè)字節(jié)存放一個(gè)字符代碼,字符串的所有元素(字符)在物理上是鄰接的。在字長(zhǎng)為32位的存儲(chǔ)器,每一個(gè)主存單元可存放4個(gè)字符,整個(gè)字符串需5個(gè)主存單元。在每個(gè)字節(jié)中實(shí)際存放的是相應(yīng)字符的ASCII碼。,51,字符串的向量存放方案,圖2-7 字符串的向量存放方案,52,1.漢字國(guó)標(biāo)碼 漢字國(guó)標(biāo)碼亦可稱為漢字交換

22、碼,主要用于漢字信息處理系統(tǒng)之間或者通信系統(tǒng)之間交換信息使用,簡(jiǎn)稱GB碼。該標(biāo)準(zhǔn)共收集常用漢字6 763個(gè),另外還有各種圖形符號(hào)682個(gè),共計(jì)7 445個(gè)。 GB碼規(guī)定每個(gè)漢字、圖形符號(hào)都用兩個(gè)字節(jié)表示,每個(gè)字節(jié)只使用低七位編碼,因此最多能表示出128128=16 384個(gè)漢字。,2.3.2 漢字的表示,53,區(qū)位碼將漢字編碼碼中的6 763個(gè)漢字分為94個(gè)區(qū),每個(gè)區(qū)中包含94個(gè)漢字(位),區(qū)和位組成一個(gè)二維數(shù)組,每個(gè)漢字在數(shù)組中對(duì)應(yīng)一個(gè)唯一的區(qū)位碼。漢字的區(qū)位碼定長(zhǎng)4位,前2位表示區(qū)號(hào),后2位表示位號(hào),區(qū)號(hào)和位號(hào)用十進(jìn)制數(shù)表示,區(qū)號(hào)從01到94,位號(hào)也從01到94。例如,“中”字在54區(qū)的4

23、8位上,其區(qū)位碼為“54-48”,“國(guó)”字在25區(qū)的90位上,其區(qū)位碼為“25-90”。,2.漢字區(qū)位碼,54,需要注意的是:漢字區(qū)位碼并不等于漢字國(guó)標(biāo)碼,它們兩者之間的關(guān)系可用以下公式表示: 國(guó)標(biāo)碼區(qū)位碼(十六進(jìn)制)2020H 例15:已知漢字“春”的區(qū)位碼為“20-26”,計(jì)算它的國(guó)標(biāo)碼。 區(qū)位碼:第1字節(jié) 第2字節(jié) 20 26 十進(jìn)制 14H 1AH 十六進(jìn)制 +20H +20H 國(guó)標(biāo)碼: 34H 3AH,2.漢字區(qū)位碼(續(xù)),55,漢字在計(jì)算機(jī)內(nèi)部其內(nèi)碼是唯一的。因?yàn)闈h字處理系統(tǒng)要保證中西文的兼容,當(dāng)系統(tǒng)中同時(shí)存在ASCII碼和漢字國(guó)標(biāo)碼時(shí),將會(huì)產(chǎn)生二義性。例如:有兩個(gè)字節(jié)的內(nèi)容為30

24、H和21H,它既可表示漢字“啊”的國(guó)標(biāo)碼,又可表示西文“0”和“!”的ASCII碼。為此,漢字機(jī)內(nèi)碼應(yīng)對(duì)國(guó)標(biāo)碼加以適當(dāng)處理和變換。 GB碼的機(jī)內(nèi)碼為二字節(jié)長(zhǎng)的代碼,它是在相應(yīng)GB碼的每個(gè)字節(jié)最高位上加“1”,即 漢字機(jī)內(nèi)碼漢字國(guó)標(biāo)碼8080H 例如,上述“啊”字的國(guó)標(biāo)碼是3021H,其漢字機(jī)內(nèi)碼則是B0A1H。,3.漢字機(jī)內(nèi)碼,56,Unicode的基本方法是用一個(gè)16位的數(shù)來(lái)表示每個(gè)符號(hào),這種符號(hào)集可表示65536個(gè)不同的字符或符號(hào)。被稱為基本多語(yǔ)言平面(BMP)。這個(gè)空間已經(jīng)非常大了,但設(shè)計(jì)者考慮到將來(lái)某一天它可能也會(huì)不夠用,所以采用了一種可使這種表示法使用得更遠(yuǎn)的方法。,2.3.3 統(tǒng)一

25、代碼,57,當(dāng)用兩字節(jié)來(lái)表示Unicode字符時(shí),使用的是UCS-2編碼,但盡管如此,也允許在UCS-2文本中插入一些UCS-4字符。為此,在BMP中,保留了兩個(gè)大小為1024的塊,這兩個(gè)塊中任何位置都不能用來(lái)表示任何符號(hào)。UCS-4的兩個(gè)16位字每個(gè)表示一個(gè)數(shù),這個(gè)數(shù)是UCS-2 BMP中1024個(gè)數(shù)值中的一個(gè)。這兩個(gè)數(shù)的組合可以表示多達(dá)100多萬(wàn)個(gè)自定義的UCS-4字符。,2.3.3 統(tǒng)一代碼(續(xù)),58,PC機(jī)中表示符號(hào)的3種方法,圖2-8 PC機(jī)中表示符號(hào)的3種方法,59,2.4 十進(jìn)制數(shù)和數(shù)串的表示,十進(jìn)制是人們最常用的數(shù)據(jù)表示方法,一些通用性較強(qiáng)的計(jì)算機(jī)上設(shè)有十進(jìn)制數(shù)據(jù)的表示,可以

26、直接對(duì)十進(jìn)制數(shù)進(jìn)行運(yùn)算和處理。,60,2.4.1 十進(jìn)制數(shù)的編碼,用四位二進(jìn)制數(shù)來(lái)表示一位十進(jìn)制數(shù),稱為二進(jìn)制編碼的十進(jìn)制數(shù),簡(jiǎn)稱BCD碼。 四位二進(jìn)制數(shù)可以組合出16種代碼,能表示16種不同的狀態(tài),我們只需要使用其中的10種狀態(tài),就可以表示十進(jìn)制數(shù)的09十個(gè)數(shù)碼,而其他的六種狀態(tài)為冗余狀態(tài)。由于可以取任意的10種代碼來(lái)表示十個(gè)數(shù)碼,所以就可能產(chǎn)生多種BCD編碼。BCD編碼既具有二進(jìn)制數(shù)的形式,又保持了十進(jìn)制數(shù)的特點(diǎn)。,61,幾種常見(jiàn)的BCD碼,62,1.8421碼,8421碼又稱為NBCD碼,其主要特點(diǎn)是: 它是一種有權(quán)碼,四位二進(jìn)制代碼的位權(quán)從高到低分別為8、4、2、1。 簡(jiǎn)單直觀。每個(gè)代

27、碼與它所代表的十進(jìn)制數(shù)之間符合二進(jìn)制數(shù)和十進(jìn)制數(shù)相互轉(zhuǎn)換的規(guī)則。 不允許出現(xiàn)10101111。這6個(gè)代碼在8421碼中是非法碼。,63,2.2421碼,2421碼的主要特點(diǎn)是: 它也是一種有權(quán)碼,四位二進(jìn)制代碼的位權(quán)從高到低分別為2、4、2、1。 它又是一種對(duì)9的自補(bǔ)碼。即某數(shù)的2421碼,只要自身按位取反,就能得到該數(shù)對(duì)9之補(bǔ)的2421碼。例如: 3的2421碼是0011。3對(duì)9之補(bǔ)是6,而6的2421碼是1100。 不允許出現(xiàn)01011010。這6個(gè)代碼在2421碼中是非法碼。,64,3.余3碼,余3碼的主要特點(diǎn)是: 這是一種無(wú)權(quán)碼,但也可看作是一種特殊的有權(quán)碼,即在8421碼的基礎(chǔ)上加+

28、3(+0011)形成的,故稱余3碼。在這種編碼中各位的“1”不表示一個(gè)固定的十進(jìn)制數(shù)值,因而不直觀。 它也是一種對(duì)9的自補(bǔ)碼。 不允許出現(xiàn)00000010、11011111。這6個(gè)代碼在余3碼中是非法碼。,65,2.4.2 十進(jìn)制數(shù)串,1.非壓縮的十進(jìn)制數(shù)串 非壓縮的十進(jìn)制數(shù)串中一個(gè)字節(jié)存放一個(gè)十進(jìn)制數(shù)或符號(hào)的ASCII-7碼。 非壓縮的十進(jìn)制數(shù)串又分成前分隔式數(shù)字串和后嵌入式數(shù)字串兩種格式。在前分隔式數(shù)字串中,符號(hào)位占用單獨(dú)一個(gè)字節(jié),放在數(shù)值位之前,正號(hào)對(duì)應(yīng)的ASCII碼為2BH,負(fù)號(hào)對(duì)應(yīng)的ASCII碼為2DH。在后嵌入式數(shù)字串中,符號(hào)位不單獨(dú)占用一個(gè)字節(jié),而是嵌入到最低一位數(shù)字里邊去。若數(shù)

29、串為正,則最低一位數(shù)字09的ASCII碼不變(30H39H);若數(shù)串為負(fù),把負(fù)號(hào)變?yōu)?0H,并將其與最低數(shù)值位相加,此時(shí)數(shù)字09的ASCII碼變?yōu)?0H79H。,66,2.壓縮的十進(jìn)制數(shù)串,壓縮的十進(jìn)制數(shù)串,一個(gè)字節(jié)可存放兩位BCD碼表示的十進(jìn)制數(shù),既節(jié)省了存儲(chǔ)空間,又便于直接進(jìn)行十進(jìn)制算術(shù)運(yùn)算。 在主存中,一個(gè)壓縮的十進(jìn)制數(shù)串占用連續(xù)的多個(gè)字節(jié),每位數(shù)字僅占半個(gè)字節(jié),其值常用8421碼表示。符號(hào)位也占半個(gè)字節(jié),并存放在最低數(shù)值位之后,通常用CH表示正號(hào),DH表示負(fù)號(hào)。在這種表示中,規(guī)定數(shù)字的個(gè)數(shù)加符號(hào)位之和必須為偶數(shù);當(dāng)和為奇數(shù)時(shí),應(yīng)在最高數(shù)值位之前補(bǔ)0H(即第一個(gè)字節(jié)的高半字節(jié)為“0000

30、”)。,67,2.5 現(xiàn)代微機(jī)系統(tǒng)中的數(shù)據(jù)表示舉例,現(xiàn)代的微機(jī)系統(tǒng)大多采用Intel系列的微處理器,近年來(lái),Intel的微處理器有了極大的發(fā)展,形成了IA-32結(jié)構(gòu)。 IA-32結(jié)構(gòu)的基本數(shù)據(jù)類型是字節(jié)、字、雙字、四字和雙四字。,68,IA-32結(jié)構(gòu)的基本數(shù)據(jù)類型,圖2-9 IA-32結(jié)構(gòu)的基本數(shù)據(jù)類型,69,1.無(wú)符號(hào)整數(shù),無(wú)符號(hào)整數(shù)是包含字節(jié)、字、雙字和四字的無(wú)符號(hào)的二進(jìn)制數(shù)。無(wú)符號(hào)整數(shù)的范圍,對(duì)于字節(jié),從0255;對(duì)于字,從065535;對(duì)于雙字,從0232 -1;對(duì)于四字,從0264-1。 2.帶符號(hào)整數(shù) 帶符號(hào)整數(shù)是包含字節(jié)、字、雙字和四字的帶符號(hào)的二進(jìn)制定點(diǎn)整數(shù)。正數(shù)的符號(hào)位為0,

31、負(fù)數(shù)的符號(hào)位為1。對(duì)于字節(jié),從-128+127;對(duì)于字,從 -32768+32767;對(duì)于雙字,從-231+231-1;對(duì)于四字,從-263+263-1。,70,3.浮點(diǎn)數(shù),與IEEE 754標(biāo)準(zhǔn)所規(guī)定的格式直接對(duì)應(yīng)。 4.指針數(shù)據(jù) 指針是主存單元的地址,IA-32 結(jié)構(gòu)定義了兩種類型的指針:近指針(32位)和遠(yuǎn)指針(48位)。 5.串?dāng)?shù)據(jù) 包括位串、字節(jié)串、字串和雙字串。一個(gè)串可以包含從一個(gè)字節(jié)到4GB的內(nèi)容。,71,6.BCD數(shù),IA-32 結(jié)構(gòu)中所指的BCD碼實(shí)際上是指8421碼。BCD數(shù)又分成未拼裝的BCD(UBCD)數(shù)和拼裝的BCD數(shù)兩種。UBCD數(shù)的一個(gè)字節(jié)僅包含一位十進(jìn)制數(shù),在3

32、0位上;而經(jīng)過(guò)拼裝的BCD數(shù),一個(gè)字節(jié)包含兩位十進(jìn)制數(shù),其低位在30位上,高位在74位上。,72,2.6 數(shù)據(jù)校驗(yàn)碼,數(shù)據(jù)校驗(yàn)碼是指那些能夠發(fā)現(xiàn)錯(cuò)誤或能夠自動(dòng)糾正錯(cuò)誤的數(shù)據(jù)編碼,又稱之為“檢錯(cuò)糾錯(cuò)編碼”。任何一種編碼都由許多碼字構(gòu)成,任意兩個(gè)碼字之間最少變化的二進(jìn)制位數(shù),被稱為數(shù)據(jù)校驗(yàn)碼的碼距。例如,用四位二進(jìn)制表示16種狀態(tài),則有16個(gè)不同的碼字,此時(shí)碼距為1,即兩個(gè)碼字之間最少僅有一個(gè)二進(jìn)制位不同(如0000與0001之間)。這種編碼沒(méi)有檢錯(cuò)能力,因?yàn)楫?dāng)某一個(gè)合法碼字中有一位或幾位出錯(cuò),就變成為另一個(gè)合法碼字了。,73,2.6.1 奇偶校驗(yàn)碼,1.奇偶校驗(yàn)概念 奇偶校驗(yàn)碼是一種最簡(jiǎn)單的數(shù)據(jù)

33、校驗(yàn)碼,它的碼距等于2,可以檢測(cè)出一位錯(cuò)誤(或奇數(shù)位錯(cuò)誤),但不能確定出錯(cuò)的位置,也不能檢測(cè)出偶數(shù)位錯(cuò)誤。 奇偶校驗(yàn)實(shí)現(xiàn)方法是:由若干位有效信息(如一個(gè)字節(jié)),再加上一個(gè)二進(jìn)制位(校驗(yàn)位)組成校驗(yàn)碼。 圖2-11 奇偶校驗(yàn)碼,74,奇偶校驗(yàn)規(guī)律,校驗(yàn)位的取值(0或1)將使整個(gè)校驗(yàn)碼中“1”的個(gè)數(shù)為奇數(shù)或偶數(shù),所以有兩種可供選擇的校驗(yàn)規(guī)律: 奇校驗(yàn)整個(gè)校驗(yàn)碼(有效信息位和校驗(yàn)位)中“1”的個(gè)數(shù)為奇數(shù)。 偶校驗(yàn)整個(gè)校驗(yàn)碼中“1”的個(gè)數(shù)為偶數(shù)。,75,2.簡(jiǎn)單奇偶校驗(yàn),簡(jiǎn)單奇偶校驗(yàn)僅實(shí)現(xiàn)橫向的奇偶校驗(yàn),下表給出幾個(gè)字節(jié)的奇偶校驗(yàn)碼的編碼結(jié)果。最高一位為校驗(yàn)位,其余8位為信息位。在實(shí)際應(yīng)用中,多采用奇

34、校驗(yàn),因?yàn)槠嫘r?yàn)中不存在全“0”代碼,在某些場(chǎng)合下更便于判別。,76,2.簡(jiǎn)單奇偶校驗(yàn)(續(xù)), 校驗(yàn)位形成 當(dāng)要把一個(gè)字節(jié)的代碼D7D0寫入主存時(shí),就同時(shí)將它們送往奇偶校驗(yàn)邏輯電路,該電路產(chǎn)生的“奇形成”信號(hào)就是校驗(yàn)位。它將與8位代碼一起作為奇校驗(yàn)碼寫入主存。 若D7D0中有偶數(shù)個(gè)“1”,則“奇形成”=1, 若D7D0中有奇數(shù)個(gè)“1”,則“奇形成”=0。,77,奇偶校驗(yàn)位的形成及校驗(yàn)電路,圖2-12 奇偶校驗(yàn)位的形成及校驗(yàn)電路,78,2.簡(jiǎn)單奇偶校驗(yàn)(續(xù)),校驗(yàn)檢測(cè) 讀出時(shí),將讀出的9位代碼(8位信息位和1位校驗(yàn)位)同時(shí)送入奇偶校驗(yàn)電路檢測(cè)。若讀出代碼無(wú)錯(cuò),則“奇校驗(yàn)出錯(cuò)”=0;若讀出代碼中的

35、某一位上出現(xiàn)錯(cuò)誤,則“奇校驗(yàn)出錯(cuò)”=1,從而指示這個(gè)9位代碼中一定有某一位出現(xiàn)了錯(cuò)誤,但具體的錯(cuò)誤位置是不能確定的。,79,3.交叉奇偶校驗(yàn),計(jì)算機(jī)在進(jìn)行大量字節(jié)(數(shù)據(jù)塊)傳送時(shí),不僅每一個(gè)字節(jié)有一個(gè)奇偶校驗(yàn)位做橫向校驗(yàn),而且全部字節(jié)的同一位也設(shè)置一個(gè)奇偶校驗(yàn)位做縱向校驗(yàn),這種橫向、縱向同時(shí)校驗(yàn)的方法稱為交叉校驗(yàn)。 第1字節(jié) 1 1 0 0 1 0 1 1 1 第2字節(jié) 0 1 0 1 1 1 0 0 0 第3字節(jié) 1 0 0 1 1 0 1 0 0 第4字節(jié) 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0,80,3.交叉奇偶校驗(yàn)(續(xù)),交叉校驗(yàn)可以發(fā)現(xiàn)兩位同時(shí)出錯(cuò)的情況,

36、假設(shè)第2字節(jié)的A6、A4兩位均出錯(cuò),橫向校驗(yàn)位無(wú)法檢出錯(cuò)誤,但是第A6、A4位所在列的縱向校驗(yàn)位會(huì)顯示出錯(cuò),這與前述的簡(jiǎn)單奇偶校驗(yàn)相比要保險(xiǎn)多了。,81,2.6.2 海明校驗(yàn)碼,海明碼實(shí)際上是一種多重奇偶校驗(yàn),其實(shí)現(xiàn)原理是:在有效信息位中加入幾個(gè)校驗(yàn)位形成海明碼,使碼距比較均勻地拉大,并把海明碼的每一個(gè)二進(jìn)制位分配到幾個(gè)奇偶校驗(yàn)組中。當(dāng)某一位出錯(cuò)后,就會(huì)引起有關(guān)的幾個(gè)校驗(yàn)位的值發(fā)生變化,這不但可以發(fā)現(xiàn)錯(cuò)誤,還能指出錯(cuò)誤的位置,為自動(dòng)糾錯(cuò)提供了依據(jù)。,82,2.6.2 海明校驗(yàn)碼(續(xù)),編碼 一個(gè)字節(jié)由8位二進(jìn)制位組成,故海明碼的總位數(shù)為13位,可表示為: H13 H12H2 H1 五個(gè)校驗(yàn)位P5P1對(duì)應(yīng)的海明碼位號(hào)應(yīng)分別為:H13、H8、H4、H2、H1,除P5外,其余四位都滿足Pi的位號(hào)等于2i-1的關(guān)系,而P5只能放在H13上,因?yàn)樗呀?jīng)是海明碼的最高位了。 P5 D8 D7 D6 D5 P4 D4 D3 D2 P3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論