第2章 數(shù)據(jù)的機器層次表示(終)_第1頁
第2章 數(shù)據(jù)的機器層次表示(終)_第2頁
第2章 數(shù)據(jù)的機器層次表示(終)_第3頁
第2章 數(shù)據(jù)的機器層次表示(終)_第4頁
第2章 數(shù)據(jù)的機器層次表示(終)_第5頁
已閱讀5頁,還剩87頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1蔣本珊蔣本珊 編著編著中國計算機學(xué)會“21世紀(jì)大學(xué)本科計算機專業(yè)系列教材”23 數(shù)據(jù)是計算機加工和處理的對象,數(shù)據(jù)是計算機加工和處理的對象,數(shù)據(jù)的機器層次表示將直接影響到計算數(shù)據(jù)的機器層次表示將直接影響到計算機的結(jié)構(gòu)和性能。本章主要介紹無符號機的結(jié)構(gòu)和性能。本章主要介紹無符號數(shù)和帶符號數(shù)的表示方法、數(shù)的定點與數(shù)和帶符號數(shù)的表示方法、數(shù)的定點與浮點表示方法、字符和漢字的編碼方法、浮點表示方法、字符和漢字的編碼方法、數(shù)據(jù)校驗碼等。熟悉和掌握本章的內(nèi)容,數(shù)據(jù)校驗碼等。熟悉和掌握本章的內(nèi)容,是學(xué)習(xí)計算機原理的最基本要求。是學(xué)習(xí)計算機原理的最基本要求。 4本章學(xué)習(xí)內(nèi)容 2.1 數(shù)值數(shù)據(jù)的表示數(shù)值數(shù)據(jù)的

2、表示 2.2 機器數(shù)的定點表示和浮點表示機器數(shù)的定點表示和浮點表示 2.3 非數(shù)值數(shù)據(jù)的表示非數(shù)值數(shù)據(jù)的表示 2.4 十進制數(shù)和數(shù)串的表示十進制數(shù)和數(shù)串的表示 2.5 現(xiàn)代微型計算機中的數(shù)據(jù)表示舉例現(xiàn)代微型計算機中的數(shù)據(jù)表示舉例 2.6 數(shù)據(jù)校驗碼數(shù)據(jù)校驗碼5本章學(xué)習(xí)要求 了解:了解:無符號數(shù)與帶符號數(shù),真值和機器數(shù)等無符號數(shù)與帶符號數(shù),真值和機器數(shù)等概念概念 掌握:原碼、補碼、反碼表示法以及三種碼制掌握:原碼、補碼、反碼表示法以及三種碼制與真值之間的轉(zhuǎn)換方法與真值之間的轉(zhuǎn)換方法 掌握:定點數(shù)和浮點數(shù)的表示范圍掌握:定點數(shù)和浮點數(shù)的表示范圍 理解:浮點數(shù)階碼的移碼理解:浮點數(shù)階碼的移碼 了解了

3、解:IEEE754浮點數(shù)標(biāo)準(zhǔn)浮點數(shù)標(biāo)準(zhǔn) 掌握:常見的字符編碼方法(掌握:常見的字符編碼方法(ASCII碼)、漢字碼)、漢字國標(biāo)碼、區(qū)位碼、機內(nèi)碼國標(biāo)碼、區(qū)位碼、機內(nèi)碼 掌握:掌握:8241碼、碼、2421碼和余碼和余3碼碼 掌握:奇偶校驗位及其形成方法掌握:奇偶校驗位及其形成方法 了解:海明校驗碼和循環(huán)冗余校驗碼了解:海明校驗碼和循環(huán)冗余校驗碼 62.1 數(shù)值數(shù)據(jù)的表示 在計算機中,采用數(shù)字化方式來表在計算機中,采用數(shù)字化方式來表示數(shù)據(jù),數(shù)據(jù)有無符號數(shù)和帶符號數(shù)之示數(shù)據(jù),數(shù)據(jù)有無符號數(shù)和帶符號數(shù)之分,其中帶符號數(shù)根據(jù)其編碼的不同又分,其中帶符號數(shù)根據(jù)其編碼的不同又有原碼、補碼和反碼有原碼、補碼

4、和反碼3種形式。種形式。72.1.1 計算機中的數(shù)值數(shù)據(jù) 二進制數(shù):后綴二進制數(shù):后綴B 八進制數(shù):后綴八進制數(shù):后綴Q 十進制數(shù):后綴十進制數(shù):后綴D或省略后綴或省略后綴 十六進制數(shù):后綴十六進制數(shù):后綴H82.1.2 無符號數(shù)和帶符號數(shù) 無符號數(shù),就是整個機器字長的全無符號數(shù),就是整個機器字長的全部二進制位均表示數(shù)值位(沒有符號位),部二進制位均表示數(shù)值位(沒有符號位),相當(dāng)于數(shù)的絕對值。例如:相當(dāng)于數(shù)的絕對值。例如: N1=01001 表示無符號數(shù)表示無符號數(shù)9 N2=11001 表示無符號數(shù)表示無符號數(shù)25 機器字長為機器字長為n+1位的無符號數(shù)的表位的無符號數(shù)的表示范圍是示范圍是0(

5、2n+1-1),此時二進制的最高此時二進制的最高位也是數(shù)值位,其權(quán)值等于位也是數(shù)值位,其權(quán)值等于2n。若字長為若字長為8位,則數(shù)的表示范圍為位,則數(shù)的表示范圍為0255。 92.1.2 無符號數(shù)和帶符號數(shù)(續(xù)) 帶符號數(shù),即正、負(fù)數(shù)。在日常生帶符號數(shù),即正、負(fù)數(shù)。在日常生活中,我們用活中,我們用“+”、“-”號加絕對值來號加絕對值來表示數(shù)值的大小,用這種形式表示的數(shù)表示數(shù)值的大小,用這種形式表示的數(shù)值在計算機技術(shù)中稱為值在計算機技術(shù)中稱為“真值真值”。 在計算機中需要把數(shù)的符號數(shù)碼化。在計算機中需要把數(shù)的符號數(shù)碼化。通常,約定二進制數(shù)的最高位為符號位,通常,約定二進制數(shù)的最高位為符號位,“0”

6、表示正號,表示正號,“1”表示負(fù)號。這種在表示負(fù)號。這種在計算機中使用的表示數(shù)的形式稱為計算機中使用的表示數(shù)的形式稱為機器機器數(shù)數(shù)。102.1.2 無符號數(shù)和帶符號數(shù)(續(xù)) 常見的機器數(shù)有原碼、反碼、補碼常見的機器數(shù)有原碼、反碼、補碼等等3種不同的表示形式。種不同的表示形式。 帶符號數(shù)的最高位被用來表示符號帶符號數(shù)的最高位被用來表示符號位,而不再表示數(shù)值位。前例中的位,而不再表示數(shù)值位。前例中的N1、N2 在這里的含義變?yōu)椋涸谶@里的含義變?yōu)椋?N1=01001 表示表示+9。 N2=11001 根據(jù)機器數(shù)的不同形根據(jù)機器數(shù)的不同形式表示不同的值,如是原碼則表示式表示不同的值,如是原碼則表示-9

7、,補碼則表示補碼則表示-7,反碼則表示,反碼則表示-6。 112.1.3 原碼表示法 原碼表示法是一種最簡單的機器數(shù)原碼表示法是一種最簡單的機器數(shù)表示法,用最高位表示符號位,符號位表示法,用最高位表示符號位,符號位為為“0”表示該數(shù)為正,符號位為表示該數(shù)為正,符號位為“1”表示該數(shù)為負(fù),數(shù)值部分與真值相同。表示該數(shù)為負(fù),數(shù)值部分與真值相同。 設(shè)二進制純小數(shù)的原碼形式為設(shè)二進制純小數(shù)的原碼形式為Xs.X1X2Xn,字長字長n+1位,其中位,其中Xs表示表示符號位。符號位。 例例1:X1=0.0110, X1原原=0.0110 X2=-0.0110, X2原原=1.0110122.1.3 原碼表示

8、法(續(xù)) 設(shè)二進制純整數(shù)的原碼形式為設(shè)二進制純整數(shù)的原碼形式為XsX1X2Xn,其中其中Xs表示符號位。表示符號位。 例例2: X1=1101, X1原原=01101 X2=-1101, X2原原=11101 在原碼表示中,真值在原碼表示中,真值0有兩種不同有兩種不同的表示形式:的表示形式: +0原原=00000 -0原原=10000132.1.4 補碼表示法 1.模和同余模和同余 模模是指一個計量器的容量,可用是指一個計量器的容量,可用M表示。表示。例如:一個例如:一個4位的二進制計數(shù)器,當(dāng)計數(shù)器從位的二進制計數(shù)器,當(dāng)計數(shù)器從0計到計到15之后,再加之后,再加1,計數(shù)值又變?yōu)?,計?shù)值又變?yōu)?

9、。這個計。這個計數(shù)器的容量數(shù)器的容量M=24=16,即模為即模為16。由此可見,。由此可見,純小數(shù)的模為純小數(shù)的模為2,一個字長為,一個字長為n+1位的純整數(shù)位的純整數(shù)的模為的模為2n+1。 同余同余是指兩整數(shù)是指兩整數(shù)A、B除以同一正整數(shù)除以同一正整數(shù)M,所得余數(shù)相同,則稱所得余數(shù)相同,則稱A、B對對M同余,即同余,即A、B在以在以M為模時是相等的,可寫作為模時是相等的,可寫作 A=B (mod M) 14時鐘正撥和倒撥 對鐘表而言,對鐘表而言,M=12。假設(shè):時鐘假設(shè):時鐘停在停在8點,而現(xiàn)在正確的時間是點,而現(xiàn)在正確的時間是6點,這點,這時撥準(zhǔn)時鐘的方法有兩種:正撥和倒撥時撥準(zhǔn)時鐘的方法

10、有兩種:正撥和倒撥。 分針倒著旋轉(zhuǎn)分針倒著旋轉(zhuǎn)2圈,等于分針正著圈,等于分針正著旋轉(zhuǎn)旋轉(zhuǎn)10圈。故有:圈。故有:-2=10 (mod 12) ,即即 -2和和10同余。同余。 8-2=8+10 (mod 12) 倒撥時鐘倒撥時鐘正撥時鐘正撥時鐘點擊播放15 補碼的符號位表示方法與原碼相同,補碼的符號位表示方法與原碼相同,其數(shù)值部分的表示與數(shù)的正負(fù)有關(guān):對于其數(shù)值部分的表示與數(shù)的正負(fù)有關(guān):對于正數(shù),數(shù)值部分與真值形式相同;對于負(fù)正數(shù),數(shù)值部分與真值形式相同;對于負(fù)數(shù),將真值的數(shù)值部分按位取反,且在最數(shù),將真值的數(shù)值部分按位取反,且在最低位上加低位上加1。 若真值為純小數(shù),它的補碼形式為若真值為純

11、小數(shù),它的補碼形式為Xs.X1X2Xn,其中其中Xs表示符號位。表示符號位。 例例5:X1=0.0110, X1補補=0.0110 X2=-0.0110, X2補補=1.10102.補碼表示16 若真值為純整數(shù),它的補碼形式為若真值為純整數(shù),它的補碼形式為XsX1X2Xn,其中其中Xs表示符號位。表示符號位。 例例6:X1=1101, X1補補=01101 X2=-1101, X2補補=10011 在補碼表示中,真值在補碼表示中,真值0的表示形式是的表示形式是唯一的:唯一的: +0補補=-0補補=000002.補碼表示(續(xù))17 當(dāng)當(dāng)X為正數(shù)時,為正數(shù)時,X補補=X原原=X 當(dāng)當(dāng)X為負(fù)數(shù)時,由

12、為負(fù)數(shù)時,由X原原轉(zhuǎn)換為轉(zhuǎn)換為X補補的的方法:方法: X原原除掉符號位外的各位取反加除掉符號位外的各位取反加“1”。 自低位向高位,尾數(shù)的第一個自低位向高位,尾數(shù)的第一個“1”及其右部的及其右部的“0”保持不變,左部的各位保持不變,左部的各位取反,符號位保持不變。取反,符號位保持不變。 例例7:X原原 =1.1110011000 X補補 =1.00011010003.由真值、原碼轉(zhuǎn)換為補碼不變不變不變不變變反變反182.1.5 反碼表示法 反碼表示法與補碼表示法有許多類反碼表示法與補碼表示法有許多類似之處,對于正數(shù),數(shù)值部分與真值形似之處,對于正數(shù),數(shù)值部分與真值形式相同;對于負(fù)數(shù),將真值的數(shù)

13、值部分式相同;對于負(fù)數(shù),將真值的數(shù)值部分按位取反。按位取反。 若真值為純小數(shù),它的反碼形式為若真值為純小數(shù),它的反碼形式為Xs.X1X2Xn,其中其中Xs表示符號位。表示符號位。 例例9:X1=0.0110, X1反反=0.0110 X2=-0.0110, X2反反=1.1001192.1.5 反碼表示法(續(xù)) 若真值為純整數(shù),它的反碼形式為若真值為純整數(shù),它的反碼形式為XsX1X2Xn,其中其中Xs表示符號位。表示符號位。 例例10:X1=1101, X1補補=01101 X2=-1101, X2補補=10010 在反碼表示中,真值在反碼表示中,真值0也有兩種不也有兩種不同的表示形式:同的表

14、示形式: +0反反=00000 -0反反=1111120 1.比較比較 對于正數(shù)它們都等于真值本身,而對于負(fù)數(shù)各對于正數(shù)它們都等于真值本身,而對于負(fù)數(shù)各有不同的表示。有不同的表示。 最高位都表示符號位,補碼和反碼的符號位可最高位都表示符號位,補碼和反碼的符號位可作為數(shù)值位的一部分看待,和數(shù)值位一起參加作為數(shù)值位的一部分看待,和數(shù)值位一起參加運算;但原碼的符號位不允許和數(shù)值位同等看運算;但原碼的符號位不允許和數(shù)值位同等看待,必須分開進行處理。待,必須分開進行處理。 對于真值對于真值0,原碼和反碼各有兩種不同的表示,原碼和反碼各有兩種不同的表示形式,而補碼只有唯一的一種表示形式。形式,而補碼只有唯

15、一的一種表示形式。 原碼、反碼表示的正、負(fù)數(shù)范圍相對零來說是原碼、反碼表示的正、負(fù)數(shù)范圍相對零來說是對稱的;但補碼負(fù)數(shù)表示范圍較正數(shù)表示范圍對稱的;但補碼負(fù)數(shù)表示范圍較正數(shù)表示范圍寬,能多表示一個最負(fù)的數(shù)(絕對值最大的負(fù)寬,能多表示一個最負(fù)的數(shù)(絕對值最大的負(fù)數(shù)),其值等于數(shù)),其值等于-2n(純整數(shù))或純整數(shù))或-1(純小數(shù))。(純小數(shù))。2.1.6 三種碼制的比較與轉(zhuǎn)換21真值與3種機器數(shù)間的對照真值真值 X X 真值真值 X X 十進制十進制 二進制二進制 XX 原原XX 反反XX 補補 十進制十進制 二進制二進制 XX 原原 XX 反反 XX 補補 +0+0 +1+1 +2+2 +3+

16、3 +4+4 +5+5 +6+6 +7+7 +8+8 +000+000 +001+001 +010+010 +011+011 +100+100 +101+101 +110+110 +111+111 - - 00000000 00010001 00100010 00110011 01000100 01010101 01100110 01110111 - - - -0 0 - -1 1 - -2 2 - -3 3 - -4 4 - -5 5 - -6 6 - -7 7 - -8 8 - -000000 - -001001 - -010010 - -011011 - -100100 - -10110

17、1 - -110110 - -111111 - -10001000 10001000 10011001 10101010 10111011 11001100 11011101 11101110 11111111 - - 11111111 1111110 0 11110101 1101100 0 1 1011011 1011010 0 10100101 1001000 0 - - 00000000 1111111 1 11111010 1101101 1 1 11 10000 1011011 1 10101 10 0 1001001 1 10001000 222.轉(zhuǎn)換 如果已知機器的字長,則機器

18、數(shù)的位數(shù)應(yīng)如果已知機器的字長,則機器數(shù)的位數(shù)應(yīng)補夠相應(yīng)的位。例如,設(shè)機器字長為補夠相應(yīng)的位。例如,設(shè)機器字長為8位,則:位,則: X1=1011 X2=-1011 X1原原=00001011 X2原原=10001011 X1補補=00001011 X2補補=11110101 X1反反=00001011 X2反反=11110100 X3=0.1011 X4=-0.1011 X3原原=0.1011000 X4原原=1.1011000 X3補補=0.1011000 X4補補=1.0101000 X3反反=0.1011000 X4反反=1.0100111232.2 機器數(shù)的定點表示與浮點表示 計算機在

19、進行算術(shù)運算時,需要指計算機在進行算術(shù)運算時,需要指出小數(shù)點的位置。根據(jù)小數(shù)點的位置是出小數(shù)點的位置。根據(jù)小數(shù)點的位置是否固定,在計算機中有兩種數(shù)據(jù)格式:否固定,在計算機中有兩種數(shù)據(jù)格式:定點表示和浮點表示。定點表示和浮點表示。242.2.1 定點表示法 在定點表示法中約定:所有數(shù)據(jù)的在定點表示法中約定:所有數(shù)據(jù)的小數(shù)點位置固定不變小數(shù)點位置固定不變。1.定點小數(shù)定點小數(shù) 小數(shù)點的位置固定在最高有效數(shù)位小數(shù)點的位置固定在最高有效數(shù)位之前,符號位之后之前,符號位之后,記作,記作Xs.X1X2Xn,這個數(shù)是一個純小數(shù)。定點小數(shù)的小數(shù)這個數(shù)是一個純小數(shù)。定點小數(shù)的小數(shù)點位置是隱含約定的,小數(shù)點并不需

20、要點位置是隱含約定的,小數(shù)點并不需要真正地占據(jù)一個二進制位。真正地占據(jù)一個二進制位。25定點小數(shù)表示范圍圖圖2-2 定點小數(shù)格式定點小數(shù)格式 當(dāng)當(dāng)Xs=0,X1Xn=1時,時,X為最大正數(shù)。為最大正數(shù)。 X最大正數(shù)最大正數(shù) =1-2-n 當(dāng)當(dāng)Xn=1,XsXn-1=0時,時,X為最小正數(shù)。為最小正數(shù)。 X最小正數(shù)最小正數(shù) =2-nn位數(shù)值位數(shù)符小數(shù)點位置(隱含)XsX1Xn-1Xn26定點小數(shù)表示范圍(續(xù)) 當(dāng)當(dāng)Xs=1,表示表示X為負(fù)數(shù),此時情況要為負(fù)數(shù),此時情況要稍微復(fù)雜一些,這是因為在計算機中帶符稍微復(fù)雜一些,這是因為在計算機中帶符號數(shù)可用補碼表示,也可用原碼表示。原號數(shù)可用補碼表示,也

21、可用原碼表示。原碼和補碼的表示范圍有一些差別。碼和補碼的表示范圍有一些差別。 若機器數(shù)為原碼表示,當(dāng)若機器數(shù)為原碼表示,當(dāng)XsXn均均等于等于1時,時,X為絕對值最大的負(fù)數(shù)。為絕對值最大的負(fù)數(shù)。 X絕對值最大負(fù)數(shù)絕對值最大負(fù)數(shù)=-(1-2-n) 若機器數(shù)為補碼表示,當(dāng)若機器數(shù)為補碼表示,當(dāng)Xs=1,X1Xn均等于均等于0時,時,X為絕對值最大的負(fù)數(shù)。為絕對值最大的負(fù)數(shù)。 X絕對值最大負(fù)數(shù)絕對值最大負(fù)數(shù)=-127 若機器字長有若機器字長有n+1位,則有:位,則有: 原碼定點小數(shù)表示范圍:原碼定點小數(shù)表示范圍: -(1-2-n)(1-2-n) 補碼定點小數(shù)表示范圍:補碼定點小數(shù)表示范圍: -1(1

22、-2-n) 若機器字長有若機器字長有8位,則有:位,則有: 原碼定點小數(shù)表示范圍:原碼定點小數(shù)表示范圍: - 補碼定點小數(shù)表示范圍:補碼定點小數(shù)表示范圍: -1定點小數(shù)表示范圍(續(xù))128127128127128127282.定點整數(shù) 定點整數(shù)即純整數(shù),定點整數(shù)即純整數(shù),小數(shù)點位置隱小數(shù)點位置隱含固定在最低有效數(shù)位之后含固定在最低有效數(shù)位之后,記作,記作XsX1X2Xn。圖圖2-3 定點整數(shù)格式定點整數(shù)格式XsX1Xn-1n位數(shù)值位數(shù)符小數(shù)點位置(隱含)Xn29若機器字長有若機器字長有n+1位,則有:位,則有:原碼定點整數(shù)的表示范圍:原碼定點整數(shù)的表示范圍: -(2n-1)(2n-1)補碼定點

23、整數(shù)的表示范圍:補碼定點整數(shù)的表示范圍: -2n (2n-1)若機器字長有若機器字長有8位,則有:位,則有:原碼定點整數(shù)表示范圍:原碼定點整數(shù)表示范圍: -127127補碼定點整數(shù)表示范圍:補碼定點整數(shù)表示范圍: -128127定點整數(shù)表示范圍30 小數(shù)點的位置根據(jù)需要而浮動,這小數(shù)點的位置根據(jù)需要而浮動,這就是浮點數(shù)就是浮點數(shù)。例如:。例如: N=MrE 式中:式中:r為浮點數(shù)階碼的底,與尾數(shù)為浮點數(shù)階碼的底,與尾數(shù)的基數(shù)相同,通常的基數(shù)相同,通常r=2。E和和M都是帶符號都是帶符號數(shù),數(shù),E叫做階碼,叫做階碼,M叫做尾數(shù)。在大多數(shù)叫做尾數(shù)。在大多數(shù)計算機中,尾數(shù)為純小數(shù),常用原碼或補計算機

24、中,尾數(shù)為純小數(shù),常用原碼或補碼表示;階碼為純整數(shù),常用移碼或補碼碼表示;階碼為純整數(shù),常用移碼或補碼表示。表示。2.2.2 浮點表示法 31圖圖2-5 浮點數(shù)的一般格式浮點數(shù)的一般格式 浮點數(shù)的底是隱含的,在整個機器浮點數(shù)的底是隱含的,在整個機器數(shù)中不出現(xiàn)。階碼的符號位為數(shù)中不出現(xiàn)。階碼的符號位為es,階碼的階碼的大小反映了在數(shù)大小反映了在數(shù)N中小數(shù)點的實際位置;中小數(shù)點的實際位置;尾數(shù)的符號位為尾數(shù)的符號位為ms,它是整個浮點數(shù)的它是整個浮點數(shù)的符號位,表示了該浮點數(shù)的正負(fù)。符號位,表示了該浮點數(shù)的正負(fù)。浮點數(shù)的一般格式尾數(shù)部分M階碼部分Eesemsmk位n位1位1位321.浮點數(shù)的表示范

25、圍 當(dāng)當(dāng)es=0,ms=0,階碼和尾數(shù)的數(shù)值階碼和尾數(shù)的數(shù)值位各位全為位各位全為1(即階碼和尾數(shù)都為最大正(即階碼和尾數(shù)都為最大正數(shù))時,該浮點數(shù)為最大正數(shù):數(shù))時,該浮點數(shù)為最大正數(shù): X最大正數(shù)最大正數(shù)=(1-2-n) 當(dāng)當(dāng)es=1,ms=0,尾數(shù)的最低位尾數(shù)的最低位mn=1,其余各位為其余各位為0(即階碼為絕對值(即階碼為絕對值最大的負(fù)數(shù),尾數(shù)為最小正數(shù))時,該最大的負(fù)數(shù),尾數(shù)為最小正數(shù))時,該浮點數(shù)為最小正數(shù):浮點數(shù)為最小正數(shù): X最小正數(shù)最小正數(shù)=2-n 122kk22331.浮點數(shù)的表示范圍(續(xù)) 當(dāng)當(dāng)es=0,階碼的數(shù)值位為全階碼的數(shù)值位為全1;ms=1,尾數(shù)的數(shù)值位為全尾數(shù)的數(shù)

26、值位為全0(即階碼為最(即階碼為最大正數(shù),尾數(shù)為絕對值最大的負(fù)數(shù))時,大正數(shù),尾數(shù)為絕對值最大的負(fù)數(shù))時,該浮點數(shù)為絕對值最大負(fù)數(shù):該浮點數(shù)為絕對值最大負(fù)數(shù): X絕對值最大負(fù)數(shù)絕對值最大負(fù)數(shù)= -1 122 k34 為了提高運算的精度,需要充分地為了提高運算的精度,需要充分地利用尾數(shù)的有效數(shù)位,通常采取浮點數(shù)規(guī)利用尾數(shù)的有效數(shù)位,通常采取浮點數(shù)規(guī)格化形式,即規(guī)定格化形式,即規(guī)定尾數(shù)的最高數(shù)位必須是尾數(shù)的最高數(shù)位必須是一個有效值一個有效值。 1/2 |M| 12.規(guī)格化浮點數(shù)352.規(guī)格化浮點數(shù)(續(xù)) 在尾數(shù)用補碼表示時,規(guī)格化浮點數(shù)在尾數(shù)用補碼表示時,規(guī)格化浮點數(shù)應(yīng)滿足應(yīng)滿足尾數(shù)最高數(shù)位與符號

27、位不同尾數(shù)最高數(shù)位與符號位不同(ms m1 =1),),即當(dāng)即當(dāng)1/2M1時,應(yīng)有時,應(yīng)有0.1xxx形式,當(dāng)形式,當(dāng)-1M-1/2時,應(yīng)有時,應(yīng)有1.0 xxx形式。形式。 需要注意的是當(dāng)需要注意的是當(dāng)M=-1/2,對于原碼對于原碼來說,是規(guī)格化數(shù),而對于補碼來說,不來說,是規(guī)格化數(shù),而對于補碼來說,不是規(guī)格化數(shù)。是規(guī)格化數(shù)。362.規(guī)格化浮點數(shù)(續(xù)) 當(dāng)當(dāng)es=1,ms=0,尾數(shù)的最高位尾數(shù)的最高位m1=1,其余各位為其余各位為0時,該浮點數(shù)為規(guī)格化的最時,該浮點數(shù)為規(guī)格化的最小正數(shù):小正數(shù): X規(guī)格化的最小正數(shù)規(guī)格化的最小正數(shù)=2-1 規(guī)格化的最小正數(shù)大于非規(guī)格化的規(guī)格化的最小正數(shù)大于非

28、規(guī)格化的最小正數(shù)最小正數(shù)。k2237浮點數(shù)的典型值 382.2.3 移碼表示法 移碼就是在真值移碼就是在真值X上加一個常數(shù)(偏置上加一個常數(shù)(偏置值),相當(dāng)于值),相當(dāng)于X在數(shù)軸上向正方向平移了一段距在數(shù)軸上向正方向平移了一段距離,這就是離,這就是“移碼移碼”一詞的來由。一詞的來由。 X移移=偏置值偏置值+X 對于字長對于字長8位的定點整數(shù),偏置值為位的定點整數(shù),偏置值為27。 例例11:X=1011101 X移移=27+X=10000000+1011101=11011101 X補補=01011101 例例12:X=-1011101 X移移= 27 +X=10000000-1011101=00

29、100011 X補補=1010001139偏置值為27的移碼、補碼和真值之間的關(guān)系 40偏置值為2n的移碼的特點 在移碼中,最高位為在移碼中,最高位為“0”表示負(fù)表示負(fù)數(shù),最高位為數(shù),最高位為“1”表示正數(shù)。表示正數(shù)。 移碼為全移碼為全0時,它所對應(yīng)的真值最時,它所對應(yīng)的真值最小,為全小,為全1時,它所對應(yīng)的真值最大。時,它所對應(yīng)的真值最大。 真值真值0在移碼中的表示形式是唯一在移碼中的表示形式是唯一的,即的,即+0移移=-0移移=1000。 移碼把真值映射到一個正數(shù)域,移碼把真值映射到一個正數(shù)域,所以可將移碼視為無符號數(shù),直接按無符所以可將移碼視為無符號數(shù),直接按無符號數(shù)規(guī)則比較大小。號數(shù)規(guī)

30、則比較大小。 同一數(shù)值的移碼和補碼除最高位同一數(shù)值的移碼和補碼除最高位相反外,其他各位相同相反外,其他各位相同。41浮點數(shù)的階碼采用移碼的原因 便于比較浮點數(shù)的大小。階碼大的,其對便于比較浮點數(shù)的大小。階碼大的,其對應(yīng)的真值就大,階碼小的,對應(yīng)的真值就應(yīng)的真值就大,階碼小的,對應(yīng)的真值就小。小。 簡化機器中的判零電路。當(dāng)階碼全為簡化機器中的判零電路。當(dāng)階碼全為0,尾數(shù)也全為尾數(shù)也全為0時,表示機器零。時,表示機器零。421.定點、浮點表示法的區(qū)別定點、浮點表示法的區(qū)別數(shù)值的表示范圍數(shù)值的表示范圍 假設(shè)定點數(shù)和浮點數(shù)的字長相同,假設(shè)定點數(shù)和浮點數(shù)的字長相同,浮點表示法所能表示的數(shù)值范圍將遠(yuǎn)遠(yuǎn)大浮

31、點表示法所能表示的數(shù)值范圍將遠(yuǎn)遠(yuǎn)大于定點數(shù)。于定點數(shù)。精度精度 對于字長相同的定點數(shù)和浮點數(shù)來對于字長相同的定點數(shù)和浮點數(shù)來說,浮點數(shù)雖然擴大了數(shù)的表示范圍,但說,浮點數(shù)雖然擴大了數(shù)的表示范圍,但這正是以降低精度為代價的,也就是數(shù)軸這正是以降低精度為代價的,也就是數(shù)軸上各點的排列更稀疏了。上各點的排列更稀疏了。2.2.4 定點、浮點表示法和定點、浮點計算機43數(shù)的運算數(shù)的運算 浮點運算要比定點運算復(fù)雜得多。浮點運算要比定點運算復(fù)雜得多。溢出處理溢出處理 在定點運算時,當(dāng)運算結(jié)果超出數(shù)在定點運算時,當(dāng)運算結(jié)果超出數(shù)的表示范圍,就發(fā)生溢出。而在浮點運算的表示范圍,就發(fā)生溢出。而在浮點運算時,運算結(jié)

32、果超出尾數(shù)的表示范圍卻并不時,運算結(jié)果超出尾數(shù)的表示范圍卻并不一定溢出,只有當(dāng)階碼超出所能表示的范一定溢出,只有當(dāng)階碼超出所能表示的范圍時,才發(fā)生溢出。圍時,才發(fā)生溢出。1.定點、浮點表示法的區(qū)別(續(xù))442.定點機與浮點機通常可以將計算機分為幾檔:通??梢詫⒂嬎銠C分為幾檔:定點機定點機 以定點運算為主,浮點運算是通過軟以定點運算為主,浮點運算是通過軟件來實現(xiàn)的。件來實現(xiàn)的。定點機浮點運算部件定點機浮點運算部件 浮點運算部件是專門用于對浮點數(shù)浮點運算部件是專門用于對浮點數(shù)進行運算的部件。進行運算的部件。浮點機浮點機 具有浮點運算指令和基本的浮點運具有浮點運算指令和基本的浮點運算器。算器。45圖

33、圖2-6 IEEE 754標(biāo)準(zhǔn)的浮點數(shù)格式標(biāo)準(zhǔn)的浮點數(shù)格式 2.2.6 實用浮點數(shù)舉例類型類型 數(shù)符數(shù)符 m ms s 階碼階碼 E E 尾數(shù)尾數(shù) m m 總位數(shù)總位數(shù) 偏偏置值置值 短浮點數(shù)短浮點數(shù) 1 1 8 8 2323 3232 7FH7FH 127127 長浮點數(shù)長浮點數(shù) 1 1 1111 5252 6464 3FFH3FFH 10231023 臨時浮點數(shù)臨時浮點數(shù) 1 1 1515 6464 8080 3FFFH3FFFH 1638316383 Emsm階碼部分,用移碼表示尾符尾數(shù)數(shù)值位尾數(shù)部分,用原碼表示46IEEE754標(biāo)準(zhǔn)的浮點數(shù) 以短浮點數(shù)為例討論浮點代碼與其以短浮點數(shù)為例

34、討論浮點代碼與其真值之間的關(guān)系。最高位為數(shù)符位;其后真值之間的關(guān)系。最高位為數(shù)符位;其后是是8位階碼,以位階碼,以2為底,階碼的偏置值為為底,階碼的偏置值為127;其余;其余23位是尾數(shù)。為了使尾數(shù)部分位是尾數(shù)。為了使尾數(shù)部分能表示更多一位的有效值,能表示更多一位的有效值,IEEE754采用采用隱含尾數(shù)最高數(shù)位隱含尾數(shù)最高數(shù)位1(即這一位(即這一位1不表示出不表示出來)的方法,因此尾數(shù)實際上是來)的方法,因此尾數(shù)實際上是24位。應(yīng)位。應(yīng)注意的是,注意的是,隱含的隱含的1是一位整數(shù)(即位權(quán)是一位整數(shù)(即位權(quán)為為20),在浮點格式中表示出來的,在浮點格式中表示出來的23位尾位尾數(shù)是純小數(shù),并用原碼

35、表示。數(shù)是純小數(shù),并用原碼表示。47IEEE754標(biāo)準(zhǔn)的浮點數(shù)(續(xù)) 例例13:將:將(100.25)10轉(zhuǎn)換成短浮點數(shù)格式。轉(zhuǎn)換成短浮點數(shù)格式。 十進制數(shù)十進制數(shù)二進制數(shù)二進制數(shù) (100.25)10=(1100100.01)2 非規(guī)格化數(shù)非規(guī)格化數(shù)規(guī)格化數(shù)規(guī)格化數(shù) 1100100.01=1.1001000126 計算移碼表示的階碼(偏置值階碼真值)計算移碼表示的階碼(偏置值階碼真值) 1111111+110=10000101 以短浮點數(shù)格式存儲該數(shù)。以短浮點數(shù)格式存儲該數(shù)。 符號位符號位=0 階碼階碼=10000101 尾數(shù)尾數(shù)=1001000100000000000000048IEEE7

36、54標(biāo)準(zhǔn)的浮點數(shù)(續(xù)) 短浮點數(shù)代碼為短浮點數(shù)代碼為 0;100 0010 1;100 1000 1000 0000 0000 0000 表示為十六進制的代碼:表示為十六進制的代碼:42C88000H。例例14:把短浮點數(shù):把短浮點數(shù)C1C90000H轉(zhuǎn)換成為十進制數(shù)。轉(zhuǎn)換成為十進制數(shù)。 十六進制十六進制二進制形式,并分離出符號位、階二進制形式,并分離出符號位、階碼和尾數(shù)。碼和尾數(shù)。 C1C90000H= 1;10000011;10010010000000000000000階碼階碼符號位符號位尾數(shù)尾數(shù)49IEEE754標(biāo)準(zhǔn)的浮點數(shù)(續(xù)) 計算出階碼真值(移碼偏置值)計算出階碼真值(移碼偏置值)

37、 10000011-1111111=100 以規(guī)格化二進制數(shù)形式寫出此數(shù)以規(guī)格化二進制數(shù)形式寫出此數(shù) 1.100100124 寫成非規(guī)格化二進制數(shù)形式寫成非規(guī)格化二進制數(shù)形式 11001.001 轉(zhuǎn)換成十進制數(shù),并加上符號位。轉(zhuǎn)換成十進制數(shù),并加上符號位。 (11001.001)2=(25.125)10 所以,該浮點數(shù)所以,該浮點數(shù)=-25.125502.3 非數(shù)值數(shù)據(jù)的表示 非數(shù)值數(shù)據(jù),又稱為字符數(shù)據(jù),通常非數(shù)值數(shù)據(jù),又稱為字符數(shù)據(jù),通常是指字符、字符串、圖形符號和漢字等各是指字符、字符串、圖形符號和漢字等各種數(shù)據(jù),它們不用來表示數(shù)值的大小,一種數(shù)據(jù),它們不用來表示數(shù)值的大小,一般情況下不對

38、它們進行算術(shù)運算。般情況下不對它們進行算術(shù)運算。512.3.1 字符和字符串的表示1.ASCII字符編碼字符編碼 常見的常見的ASCII碼用七位二進制表示一個字碼用七位二進制表示一個字符,它包括符,它包括10個十進制數(shù)字(個十進制數(shù)字(09)、)、52個英個英文大寫和小寫字母(文大寫和小寫字母(AZ,az)、)、34個專用個專用符號和符號和32個控制符號,共計個控制符號,共計128個字符。個字符。 在計算機中,通常用一個字節(jié)來存放一個在計算機中,通常用一個字節(jié)來存放一個字符。字符。 在在ASCII碼表中,數(shù)字和英文字母都是按碼表中,數(shù)字和英文字母都是按順序排列的,只要知道其中一個的二進制代碼,

39、順序排列的,只要知道其中一個的二進制代碼,不要查表就可以推導(dǎo)出其他數(shù)字或字母的二進不要查表就可以推導(dǎo)出其他數(shù)字或字母的二進制代碼。制代碼。52ASCII字符編碼表532.字符串的存放 字符串是指一串連續(xù)的字符。例如,字符串是指一串連續(xù)的字符。例如,字符串字符串IF X0 THEN READ (C)。 向量存放法在存儲器中占用一片連續(xù)向量存放法在存儲器中占用一片連續(xù)的空間,每個字節(jié)存放一個字符代碼,字的空間,每個字節(jié)存放一個字符代碼,字符串的所有元素(字符)在物理上是鄰接符串的所有元素(字符)在物理上是鄰接的。在字長為的。在字長為32位的存儲器,每一個主存位的存儲器,每一個主存單元可存放單元可存

40、放4個字符,整個字符串需個字符,整個字符串需5個主個主存單元。在每個字節(jié)中實際存放的是相應(yīng)存單元。在每個字節(jié)中實際存放的是相應(yīng)字符的字符的ASCII碼。碼。54IFX0THENREA(C)D字符串的向量存放方案5449462020202030454541444852433E2928584E圖圖2-7 字符串的向量存放方案字符串的向量存放方案551.漢字國標(biāo)碼漢字國標(biāo)碼 漢字國標(biāo)碼亦可稱為漢字交換碼,漢字國標(biāo)碼亦可稱為漢字交換碼,主要用于漢字信息處理系統(tǒng)之間或者通信主要用于漢字信息處理系統(tǒng)之間或者通信系統(tǒng)之間交換信息使用,簡稱系統(tǒng)之間交換信息使用,簡稱GB碼。該碼。該標(biāo)準(zhǔn)共收集常用漢字標(biāo)準(zhǔn)共收集

41、常用漢字6 763個,另外還有個,另外還有各種圖形符號各種圖形符號682個,共計個,共計7 445個。個。 GB碼規(guī)定每個漢字、圖形符號都碼規(guī)定每個漢字、圖形符號都用兩個字節(jié)表示,每個字節(jié)只使用低七位用兩個字節(jié)表示,每個字節(jié)只使用低七位編碼,因此最多能表示出編碼,因此最多能表示出128128=16 384個漢字。個漢字。 2.3.2 漢字的表示56 區(qū)位碼將漢字編碼碼中的區(qū)位碼將漢字編碼碼中的6 763個漢個漢字分為字分為94個區(qū),每個區(qū)中包含個區(qū),每個區(qū)中包含94個漢字個漢字(位),區(qū)和位組成一個二維數(shù)組,每個(位),區(qū)和位組成一個二維數(shù)組,每個漢字在數(shù)組中對應(yīng)一個唯一的區(qū)位碼。漢漢字在數(shù)組

42、中對應(yīng)一個唯一的區(qū)位碼。漢字的區(qū)位碼定長字的區(qū)位碼定長4位,前位,前2位表示區(qū)號,后位表示區(qū)號,后2位表示位號,區(qū)號和位號用十進制數(shù)表位表示位號,區(qū)號和位號用十進制數(shù)表示,區(qū)號從示,區(qū)號從01到到94,位號也從,位號也從01到到94。例如,例如,“中中”字在字在54區(qū)的區(qū)的48位上,其區(qū)位上,其區(qū)位碼為位碼為“54-48”,“國國”字在字在25區(qū)的區(qū)的90位上,其區(qū)位碼為位上,其區(qū)位碼為“25-90”。 2.漢字區(qū)位碼57 需要注意的是:漢字區(qū)位碼并不等于漢字需要注意的是:漢字區(qū)位碼并不等于漢字國標(biāo)碼,它們兩者之間的關(guān)系可用以下公式表國標(biāo)碼,它們兩者之間的關(guān)系可用以下公式表示:示: 國標(biāo)碼區(qū)位

43、碼(十六進制)國標(biāo)碼區(qū)位碼(十六進制)2020H 例例15:已知漢字:已知漢字“春春”的區(qū)位碼為的區(qū)位碼為“20-26”,計算它的國標(biāo)碼。計算它的國標(biāo)碼。 區(qū)位碼:第區(qū)位碼:第1字節(jié)字節(jié) 第第2字節(jié)字節(jié) 20 26 十進制十進制 14H 1AH 十六進制十六進制 +20H +20H 國標(biāo)碼:國標(biāo)碼: 34H 3AH2.漢字區(qū)位碼(續(xù))58 漢字在計算機內(nèi)部其內(nèi)碼是唯一的。因為漢字在計算機內(nèi)部其內(nèi)碼是唯一的。因為漢字處理系統(tǒng)要保證中西文的兼容,當(dāng)系統(tǒng)中漢字處理系統(tǒng)要保證中西文的兼容,當(dāng)系統(tǒng)中同時存在同時存在ASCII碼和漢字國標(biāo)碼時,將會產(chǎn)生二碼和漢字國標(biāo)碼時,將會產(chǎn)生二義性。例如:有兩個字節(jié)的

44、內(nèi)容為義性。例如:有兩個字節(jié)的內(nèi)容為30H和和21H,它既可表示漢字它既可表示漢字“啊啊”的國標(biāo)碼,又可表示西的國標(biāo)碼,又可表示西文文“0”和和“!”的的ASCII碼。為此,漢字機內(nèi)碼碼。為此,漢字機內(nèi)碼應(yīng)對國標(biāo)碼加以適當(dāng)處理和變換。應(yīng)對國標(biāo)碼加以適當(dāng)處理和變換。 GB碼的機內(nèi)碼為二字節(jié)長的代碼,它是碼的機內(nèi)碼為二字節(jié)長的代碼,它是在相應(yīng)在相應(yīng)GB碼的每個字節(jié)最高位上加碼的每個字節(jié)最高位上加“1”,即,即 漢字機內(nèi)碼漢字國標(biāo)碼漢字機內(nèi)碼漢字國標(biāo)碼8080H 例如,上述例如,上述“啊啊”字的國標(biāo)碼是字的國標(biāo)碼是3021H,其漢字機內(nèi)碼則是其漢字機內(nèi)碼則是B0A1H。 3.漢字機內(nèi)碼 59 Uni

45、code的基本方法是用一個的基本方法是用一個16位位的數(shù)來表示每個符號,這種符號集可表示的數(shù)來表示每個符號,這種符號集可表示65536個不同的字符或符號。被稱為基本個不同的字符或符號。被稱為基本多語言平面(多語言平面(BMP)。)。這個空間已經(jīng)非這個空間已經(jīng)非常大了,但設(shè)計者考慮到將來某一天它可常大了,但設(shè)計者考慮到將來某一天它可能也會不夠用,所以采用了一種可使這種能也會不夠用,所以采用了一種可使這種表示法使用得更遠(yuǎn)的方法。表示法使用得更遠(yuǎn)的方法。2.3.3 統(tǒng)一代碼60 當(dāng)用兩字節(jié)來表示當(dāng)用兩字節(jié)來表示Unicode字符時,字符時,使用的是使用的是UCS-2編碼,但盡管如此,也允編碼,但盡管

46、如此,也允許在許在UCS-2文本中插入一些文本中插入一些UCS-4字符。字符。為此,在為此,在BMP中,保留了兩個大小為中,保留了兩個大小為1024的塊,這兩個塊中任何位置都不能的塊,這兩個塊中任何位置都不能用來表示任何符號。用來表示任何符號。UCS-4的兩個的兩個16位字位字每個表示一個數(shù),這個數(shù)是每個表示一個數(shù),這個數(shù)是UCS-2 BMP中中1024個數(shù)值中的一個。這兩個數(shù)的組個數(shù)值中的一個。這兩個數(shù)的組合可以表示多達合可以表示多達100多萬個自定義的多萬個自定義的UCS-4字符。字符。2.3.3 統(tǒng)一代碼(續(xù))61PC機中表示符號的3種方法圖圖2-8 PC機中表示符號的機中表示符號的3種

47、方法種方法00071531擴展ASCII字符的表示方法Unicode(UCS-2)的表示方法Unicode(UCS-4)的表示方法622.4 十進制數(shù)和數(shù)串的表示 十進制是人們最常用的數(shù)據(jù)表示方十進制是人們最常用的數(shù)據(jù)表示方法,一些通用性較強的計算機上設(shè)有十進法,一些通用性較強的計算機上設(shè)有十進制數(shù)據(jù)的表示,可以直接對十進制數(shù)進行制數(shù)據(jù)的表示,可以直接對十進制數(shù)進行運算和處理。運算和處理。632.4.1 十進制數(shù)的編碼 用四位二進制數(shù)來表示一位十進制用四位二進制數(shù)來表示一位十進制數(shù),稱為數(shù),稱為二進制編碼的十進制數(shù),簡稱二進制編碼的十進制數(shù),簡稱BCD碼碼。 四位二進制數(shù)可以組合出四位二進制數(shù)

48、可以組合出16種代碼,種代碼,能表示能表示16種不同的狀態(tài),我們只需要使用種不同的狀態(tài),我們只需要使用其中的其中的10種狀態(tài),就可以表示十進制數(shù)的種狀態(tài),就可以表示十進制數(shù)的09十個數(shù)碼,而其他的六種狀態(tài)為冗余十個數(shù)碼,而其他的六種狀態(tài)為冗余狀態(tài)。由于可以取任意的狀態(tài)。由于可以取任意的10種代碼來表示種代碼來表示十個數(shù)碼,所以就可能產(chǎn)生多種十個數(shù)碼,所以就可能產(chǎn)生多種BCD編碼。編碼。BCD編碼既具有二進制數(shù)的形式,又保持編碼既具有二進制數(shù)的形式,又保持了十進制數(shù)的特點。了十進制數(shù)的特點。64幾種常見的BCD碼十進制十進制84218421 碼碼24212421 碼碼余余 3 3 碼碼0 01

49、12 23 34 45 56 67 78 89 9000000000001000100100010001100110100010001010101011001100111011110001000100110010000000000010001001000100011001101000100101110111100110011011101111011101111111100110011010001000101010101100110011101111000100010011001101010101011101111001100651.8421碼 8421碼又稱為碼又稱為NBCD碼,其主要特點碼,

50、其主要特點是:是: 它是一種有權(quán)碼,四位二進制代它是一種有權(quán)碼,四位二進制代碼的位權(quán)從高到低分別為碼的位權(quán)從高到低分別為8、4、2、1。 簡單直觀。每個代碼與它所代表簡單直觀。每個代碼與它所代表的十進制數(shù)之間符合二進制數(shù)和十進制數(shù)的十進制數(shù)之間符合二進制數(shù)和十進制數(shù)相互轉(zhuǎn)換的規(guī)則。相互轉(zhuǎn)換的規(guī)則。 不允許出現(xiàn)不允許出現(xiàn)10101111。這。這6個代個代碼在碼在8421碼中是非法碼。碼中是非法碼。662.2421碼 2421碼的主要特點是:碼的主要特點是: 它也是一種有權(quán)碼,四位二進制它也是一種有權(quán)碼,四位二進制代碼的位權(quán)從高到低分別為代碼的位權(quán)從高到低分別為2、4、2、1。 它又是一種對它又是

51、一種對9的的自補碼自補碼。即某。即某數(shù)的數(shù)的2421碼,只要自身按位取反,就能碼,只要自身按位取反,就能得到該數(shù)對得到該數(shù)對9之補的之補的2421碼。例如:碼。例如: 3的的2421碼是碼是0011。3對對9之補是之補是6,而而6的的2421碼是碼是1100。 不允許出現(xiàn)不允許出現(xiàn)01011010。這。這6個個代碼在代碼在2421碼中是非法碼。碼中是非法碼。673.余3碼 余余3碼的主要特點是:碼的主要特點是: 這是一種無權(quán)碼,但也可看作這是一種無權(quán)碼,但也可看作是一種特殊的有權(quán)碼,即在是一種特殊的有權(quán)碼,即在8421碼的基碼的基礎(chǔ)上加礎(chǔ)上加+3(+0011)形成的,故稱余)形成的,故稱余3碼

52、。碼。在這種編碼中各位的在這種編碼中各位的“1”不表示一個固不表示一個固定的十進制數(shù)值,因而不直觀。定的十進制數(shù)值,因而不直觀。 它也是一種對它也是一種對9的的自補碼自補碼。 不允許出現(xiàn)不允許出現(xiàn)00000010、11011111。這。這6個代碼在余個代碼在余3碼中是非碼中是非法碼。法碼。682.4.2 十進制數(shù)串1.非壓縮的十進制數(shù)串非壓縮的十進制數(shù)串 非壓縮的十進制數(shù)串中一個字節(jié)存放一個非壓縮的十進制數(shù)串中一個字節(jié)存放一個十進制數(shù)或符號的十進制數(shù)或符號的ASCII-7碼。碼。 非壓縮的十進制數(shù)串又分成前分隔式數(shù)字非壓縮的十進制數(shù)串又分成前分隔式數(shù)字串和后嵌入式數(shù)字串兩種格式。在前分隔式數(shù)串

53、和后嵌入式數(shù)字串兩種格式。在前分隔式數(shù)字串中,符號位占用單獨一個字節(jié),放在數(shù)值字串中,符號位占用單獨一個字節(jié),放在數(shù)值位之前,正號對應(yīng)的位之前,正號對應(yīng)的ASCII碼為碼為2BH,負(fù)號對應(yīng)負(fù)號對應(yīng)的的ASCII碼為碼為2DH。在后嵌入式數(shù)字串中,符號在后嵌入式數(shù)字串中,符號位不單獨占用一個字節(jié),而是嵌入到最低一位位不單獨占用一個字節(jié),而是嵌入到最低一位數(shù)字里邊去。若數(shù)串為正,則最低一位數(shù)字?jǐn)?shù)字里邊去。若數(shù)串為正,則最低一位數(shù)字09的的ASCII碼不變(碼不變(30H39H););若數(shù)串為負(fù),若數(shù)串為負(fù),把負(fù)號變?yōu)榘沿?fù)號變?yōu)?0H,并將其與最低數(shù)值位相加,此并將其與最低數(shù)值位相加,此時數(shù)字時數(shù)字

54、09的的ASCII碼變?yōu)榇a變?yōu)?0H79H。 692.壓縮的十進制數(shù)串 壓縮的十進制數(shù)串,一個字節(jié)可存壓縮的十進制數(shù)串,一個字節(jié)可存放兩位放兩位BCD碼表示的十進制數(shù),既節(jié)省了碼表示的十進制數(shù),既節(jié)省了存儲空間,又便于直接進行十進制算術(shù)運存儲空間,又便于直接進行十進制算術(shù)運算。算。 在主存中,一個壓縮的十進制數(shù)串在主存中,一個壓縮的十進制數(shù)串占用連續(xù)的多個字節(jié),每位數(shù)字僅占半個占用連續(xù)的多個字節(jié),每位數(shù)字僅占半個字節(jié),其值常用字節(jié),其值常用8421碼表示。符號位也占碼表示。符號位也占半個字節(jié),并存放在最低數(shù)值位之后,通半個字節(jié),并存放在最低數(shù)值位之后,通常用常用CH表示正號,表示正號,DH表示

55、負(fù)號。在這種表示負(fù)號。在這種表示中,規(guī)定數(shù)字的個數(shù)加符號位之和必表示中,規(guī)定數(shù)字的個數(shù)加符號位之和必須為偶數(shù);當(dāng)和為奇數(shù)時,應(yīng)在最高數(shù)值須為偶數(shù);當(dāng)和為奇數(shù)時,應(yīng)在最高數(shù)值位之前補位之前補0H(即第一個字節(jié)的高半字節(jié)為即第一個字節(jié)的高半字節(jié)為“0000”)。)。 702.5 現(xiàn)代微機系統(tǒng)中的數(shù)據(jù)表示舉例 現(xiàn)代的微機系統(tǒng)大多采用現(xiàn)代的微機系統(tǒng)大多采用Intel系列的系列的微處理器,微處理器,近年來近年來,Intel的微處理器有了的微處理器有了極大的發(fā)展,形成了極大的發(fā)展,形成了IA-32結(jié)構(gòu)。結(jié)構(gòu)。 IA-32結(jié)構(gòu)的基本數(shù)據(jù)類型是字節(jié)、字、結(jié)構(gòu)的基本數(shù)據(jù)類型是字節(jié)、字、雙字雙字、四字和雙四字。四

56、字和雙四字。 71070000字節(jié)字雙字四字雙四字低四字高四字低雙字高雙字低字高字低字節(jié)高字節(jié)15316312763643132151678NNNNNN+1N+2N+4N+8IA-32結(jié)構(gòu)的基本數(shù)據(jù)類型圖圖2-9 IA-32結(jié)構(gòu)的基本數(shù)據(jù)類型結(jié)構(gòu)的基本數(shù)據(jù)類型721.無符號整數(shù) 無符號整數(shù)是包含字節(jié)、字、雙字無符號整數(shù)是包含字節(jié)、字、雙字和四字的無符號的二進制數(shù)。無符號整和四字的無符號的二進制數(shù)。無符號整數(shù)的范圍,對于字節(jié),從數(shù)的范圍,對于字節(jié),從0255;對于;對于字,從字,從065535;對于雙字,從;對于雙字,從0232 -1;對于四字,從;對于四字,從0264-1。 2.帶符號整數(shù)帶符

57、號整數(shù) 帶符號整數(shù)是包含字節(jié)、字、雙字帶符號整數(shù)是包含字節(jié)、字、雙字和四字的帶符號的二進制定點整數(shù)。正和四字的帶符號的二進制定點整數(shù)。正數(shù)的符號位為數(shù)的符號位為0,負(fù)數(shù)的符號位為,負(fù)數(shù)的符號位為1。對。對于字節(jié),從于字節(jié),從-128+127;對于字,從;對于字,從 -32768+32767;對于雙字,從;對于雙字,從-231+231-1;對于四字,從;對于四字,從-263+263-1。733.浮點數(shù) 與與IEEE 754標(biāo)準(zhǔn)所規(guī)定的格式直接標(biāo)準(zhǔn)所規(guī)定的格式直接對應(yīng)。對應(yīng)。4.指針數(shù)據(jù)指針數(shù)據(jù) 指針是主存單元的地址,指針是主存單元的地址,IA-32 結(jié)結(jié)構(gòu)定義了兩種類型的指針:近指針(構(gòu)定義了兩

58、種類型的指針:近指針(32位)和遠(yuǎn)指針(位)和遠(yuǎn)指針(48位)。位)。5.串?dāng)?shù)據(jù)串?dāng)?shù)據(jù) 包括位串、字節(jié)串、字串和雙字串。包括位串、字節(jié)串、字串和雙字串。一個串可以包含從一個字節(jié)到一個串可以包含從一個字節(jié)到4GB的內(nèi)的內(nèi)容。容。74 6.BCD數(shù) IA-32 結(jié)構(gòu)結(jié)構(gòu)中所指的中所指的BCD碼實際上碼實際上是指是指8421碼。碼。BCD數(shù)又分成未拼裝的數(shù)又分成未拼裝的BCD(UBCD)數(shù)和拼裝的數(shù)和拼裝的BCD數(shù)兩種。數(shù)兩種。UBCD數(shù)的一個字節(jié)僅包含一位十進制數(shù)的一個字節(jié)僅包含一位十進制數(shù),在數(shù),在30位上;而經(jīng)過拼裝的位上;而經(jīng)過拼裝的BCD數(shù),數(shù),一個字節(jié)包含兩位十進制數(shù),其低位在一個字節(jié)包

59、含兩位十進制數(shù),其低位在30位上,高位在位上,高位在74位上。位上。 752.6 數(shù)據(jù)校驗碼 數(shù)據(jù)校驗碼是指那些能夠發(fā)現(xiàn)錯誤數(shù)據(jù)校驗碼是指那些能夠發(fā)現(xiàn)錯誤或能夠自動糾正錯誤的數(shù)據(jù)編碼,又稱之或能夠自動糾正錯誤的數(shù)據(jù)編碼,又稱之為為“檢錯糾錯編碼檢錯糾錯編碼”。任何一種編碼都由。任何一種編碼都由許多碼字構(gòu)成,任意兩個碼字之間最少變許多碼字構(gòu)成,任意兩個碼字之間最少變化的二進制位數(shù),被稱為數(shù)據(jù)校驗碼的碼化的二進制位數(shù),被稱為數(shù)據(jù)校驗碼的碼距。例如,用四位二進制表示距。例如,用四位二進制表示16種狀態(tài),種狀態(tài),則有則有16個不同的碼字,此時碼距為個不同的碼字,此時碼距為1,即,即兩個碼字之間最少僅有

60、一個二進制位不同兩個碼字之間最少僅有一個二進制位不同(如(如0000與與0001之間)。這種編碼沒有之間)。這種編碼沒有檢錯能力,因為當(dāng)某一個合法碼字中有一檢錯能力,因為當(dāng)某一個合法碼字中有一位或幾位出錯,就變成為另一個合法碼字位或幾位出錯,就變成為另一個合法碼字了。了。762.6.1 奇偶校驗碼1.奇偶校驗概念奇偶校驗概念 奇偶校驗碼是一種最簡單的數(shù)據(jù)校奇偶校驗碼是一種最簡單的數(shù)據(jù)校驗碼,它的碼距等于驗碼,它的碼距等于2,可以檢測出一位,可以檢測出一位錯誤(或奇數(shù)位錯誤),但不能確定出錯錯誤(或奇數(shù)位錯誤),但不能確定出錯的位置,也不能檢測出偶數(shù)位錯誤。的位置,也不能檢測出偶數(shù)位錯誤。 奇偶

溫馨提示

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

評論

0/150

提交評論