版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1蔣本珊蔣本珊 編著編著中國計算機學會“21世紀大學本科計算機專業(yè)系列教材”23 數據是計算機加工和處理的對象,數據是計算機加工和處理的對象,數據的機器層次表示將直接影響到計算數據的機器層次表示將直接影響到計算機的結構和性能。本章主要介紹無符號機的結構和性能。本章主要介紹無符號數和帶符號數的表示方法、數的定點與數和帶符號數的表示方法、數的定點與浮點表示方法、字符和漢字的編碼方法、浮點表示方法、字符和漢字的編碼方法、數據校驗碼等。熟悉和掌握本章的內容,數據校驗碼等。熟悉和掌握本章的內容,是學習計算機原理的最基本要求。是學習計算機原理的最基本要求。 4本章學習內容 2.1 數值數據的表示數值數據的
2、表示 2.2 機器數的定點表示和浮點表示機器數的定點表示和浮點表示 2.3 非數值數據的表示非數值數據的表示 2.4 十進制數和數串的表示十進制數和數串的表示 2.5 現代微型計算機中的數據表示舉例現代微型計算機中的數據表示舉例 2.6 數據校驗碼數據校驗碼5本章學習要求 了解:了解:無符號數與帶符號數,真值和機器數等無符號數與帶符號數,真值和機器數等概念概念 掌握:原碼、補碼、反碼表示法以及三種碼制掌握:原碼、補碼、反碼表示法以及三種碼制與真值之間的轉換方法與真值之間的轉換方法 掌握:定點數和浮點數的表示范圍掌握:定點數和浮點數的表示范圍 理解:浮點數階碼的移碼理解:浮點數階碼的移碼 了解了
3、解:IEEE754浮點數標準浮點數標準 掌握:常見的字符編碼方法(掌握:常見的字符編碼方法(ASCII碼)、漢字碼)、漢字國標碼、區(qū)位碼、機內碼國標碼、區(qū)位碼、機內碼 掌握:掌握:8241碼、碼、2421碼和余碼和余3碼碼 掌握:奇偶校驗位及其形成方法掌握:奇偶校驗位及其形成方法 了解:海明校驗碼和循環(huán)冗余校驗碼了解:海明校驗碼和循環(huán)冗余校驗碼 62.1 數值數據的表示 在計算機中,采用數字化方式來表在計算機中,采用數字化方式來表示數據,數據有無符號數和帶符號數之示數據,數據有無符號數和帶符號數之分,其中帶符號數根據其編碼的不同又分,其中帶符號數根據其編碼的不同又有原碼、補碼和反碼有原碼、補碼
4、和反碼3種形式。種形式。72.1.1 計算機中的數值數據 二進制數:后綴二進制數:后綴B 八進制數:后綴八進制數:后綴Q 十進制數:后綴十進制數:后綴D或省略后綴或省略后綴 十六進制數:后綴十六進制數:后綴H82.1.2 無符號數和帶符號數 無符號數,就是整個機器字長的全無符號數,就是整個機器字長的全部二進制位均表示數值位(沒有符號位),部二進制位均表示數值位(沒有符號位),相當于數的絕對值。例如:相當于數的絕對值。例如: N1=01001 表示無符號數表示無符號數9 N2=11001 表示無符號數表示無符號數25 機器字長為機器字長為n+1位的無符號數的表位的無符號數的表示范圍是示范圍是0(
5、2n+1-1),此時二進制的最高此時二進制的最高位也是數值位,其權值等于位也是數值位,其權值等于2n。若字長為若字長為8位,則數的表示范圍為位,則數的表示范圍為0255。 92.1.2 無符號數和帶符號數(續(xù)) 帶符號數,即正、負數。在日常生帶符號數,即正、負數。在日常生活中,我們用活中,我們用“+”、“-”號加絕對值來號加絕對值來表示數值的大小,用這種形式表示的數表示數值的大小,用這種形式表示的數值在計算機技術中稱為值在計算機技術中稱為“真值真值”。 在計算機中需要把數的符號數碼化。在計算機中需要把數的符號數碼化。通常,約定二進制數的最高位為符號位,通常,約定二進制數的最高位為符號位,“0”
6、表示正號,表示正號,“1”表示負號。這種在表示負號。這種在計算機中使用的表示數的形式稱為計算機中使用的表示數的形式稱為機器機器數數。102.1.2 無符號數和帶符號數(續(xù)) 常見的機器數有原碼、反碼、補碼常見的機器數有原碼、反碼、補碼等等3種不同的表示形式。種不同的表示形式。 帶符號數的最高位被用來表示符號帶符號數的最高位被用來表示符號位,而不再表示數值位。前例中的位,而不再表示數值位。前例中的N1、N2 在這里的含義變?yōu)椋涸谶@里的含義變?yōu)椋?N1=01001 表示表示+9。 N2=11001 根據機器數的不同形根據機器數的不同形式表示不同的值,如是原碼則表示式表示不同的值,如是原碼則表示-9
7、,補碼則表示補碼則表示-7,反碼則表示,反碼則表示-6。 112.1.3 原碼表示法 原碼表示法是一種最簡單的機器數原碼表示法是一種最簡單的機器數表示法,用最高位表示符號位,符號位表示法,用最高位表示符號位,符號位為為“0”表示該數為正,符號位為表示該數為正,符號位為“1”表示該數為負,數值部分與真值相同。表示該數為負,數值部分與真值相同。 設二進制純小數的原碼形式為設二進制純小數的原碼形式為Xs.X1X2Xn,字長字長n+1位,其中位,其中Xs表示表示符號位。符號位。 例例1:X1=0.0110, X1原原=0.0110 X2=-0.0110, X2原原=1.0110122.1.3 原碼表示
8、法(續(xù)) 設二進制純整數的原碼形式為設二進制純整數的原碼形式為XsX1X2Xn,其中其中Xs表示符號位。表示符號位。 例例2: X1=1101, X1原原=01101 X2=-1101, X2原原=11101 在原碼表示中,真值在原碼表示中,真值0有兩種不同有兩種不同的表示形式:的表示形式: +0原原=00000 -0原原=10000132.1.4 補碼表示法 1.模和同余模和同余 模模是指一個計量器的容量,可用是指一個計量器的容量,可用M表示。表示。例如:一個例如:一個4位的二進制計數器,當計數器從位的二進制計數器,當計數器從0計到計到15之后,再加之后,再加1,計數值又變?yōu)椋嫈抵涤肿優(yōu)?
9、。這個計。這個計數器的容量數器的容量M=24=16,即模為即模為16。由此可見,。由此可見,純小數的模為純小數的模為2,一個字長為,一個字長為n+1位的純整數位的純整數的模為的模為2n+1。 同余同余是指兩整數是指兩整數A、B除以同一正整數除以同一正整數M,所得余數相同,則稱所得余數相同,則稱A、B對對M同余,即同余,即A、B在以在以M為模時是相等的,可寫作為模時是相等的,可寫作 A=B (mod M) 14時鐘正撥和倒撥 對鐘表而言,對鐘表而言,M=12。假設:時鐘假設:時鐘停在停在8點,而現在正確的時間是點,而現在正確的時間是6點,這點,這時撥準時鐘的方法有兩種:正撥和倒撥時撥準時鐘的方法
10、有兩種:正撥和倒撥。 分針倒著旋轉分針倒著旋轉2圈,等于分針正著圈,等于分針正著旋轉旋轉10圈。故有:圈。故有:-2=10 (mod 12) ,即即 -2和和10同余。同余。 8-2=8+10 (mod 12) 倒撥時鐘倒撥時鐘正撥時鐘正撥時鐘點擊播放15 補碼的符號位表示方法與原碼相同,補碼的符號位表示方法與原碼相同,其數值部分的表示與數的正負有關:對于其數值部分的表示與數的正負有關:對于正數,數值部分與真值形式相同;對于負正數,數值部分與真值形式相同;對于負數,將真值的數值部分按位取反,且在最數,將真值的數值部分按位取反,且在最低位上加低位上加1。 若真值為純小數,它的補碼形式為若真值為純
11、小數,它的補碼形式為Xs.X1X2Xn,其中其中Xs表示符號位。表示符號位。 例例5:X1=0.0110, X1補補=0.0110 X2=-0.0110, X2補補=1.10102.補碼表示16 若真值為純整數,它的補碼形式為若真值為純整數,它的補碼形式為XsX1X2Xn,其中其中Xs表示符號位。表示符號位。 例例6:X1=1101, X1補補=01101 X2=-1101, X2補補=10011 在補碼表示中,真值在補碼表示中,真值0的表示形式是的表示形式是唯一的:唯一的: +0補補=-0補補=000002.補碼表示(續(xù))17 當當X為正數時,為正數時,X補補=X原原=X 當當X為負數時,由
12、為負數時,由X原原轉換為轉換為X補補的的方法:方法: X原原除掉符號位外的各位取反加除掉符號位外的各位取反加“1”。 自低位向高位,尾數的第一個自低位向高位,尾數的第一個“1”及其右部的及其右部的“0”保持不變,左部的各位保持不變,左部的各位取反,符號位保持不變。取反,符號位保持不變。 例例7:X原原 =1.1110011000 X補補 =1.00011010003.由真值、原碼轉換為補碼不變不變不變不變變反變反182.1.5 反碼表示法 反碼表示法與補碼表示法有許多類反碼表示法與補碼表示法有許多類似之處,對于正數,數值部分與真值形似之處,對于正數,數值部分與真值形式相同;對于負數,將真值的數
13、值部分式相同;對于負數,將真值的數值部分按位取反。按位取反。 若真值為純小數,它的反碼形式為若真值為純小數,它的反碼形式為Xs.X1X2Xn,其中其中Xs表示符號位。表示符號位。 例例9:X1=0.0110, X1反反=0.0110 X2=-0.0110, X2反反=1.1001192.1.5 反碼表示法(續(xù)) 若真值為純整數,它的反碼形式為若真值為純整數,它的反碼形式為XsX1X2Xn,其中其中Xs表示符號位。表示符號位。 例例10:X1=1101, X1補補=01101 X2=-1101, X2補補=10010 在反碼表示中,真值在反碼表示中,真值0也有兩種不也有兩種不同的表示形式:同的表
14、示形式: +0反反=00000 -0反反=1111120 1.比較比較 對于正數它們都等于真值本身,而對于負數各對于正數它們都等于真值本身,而對于負數各有不同的表示。有不同的表示。 最高位都表示符號位,補碼和反碼的符號位可最高位都表示符號位,補碼和反碼的符號位可作為數值位的一部分看待,和數值位一起參加作為數值位的一部分看待,和數值位一起參加運算;但原碼的符號位不允許和數值位同等看運算;但原碼的符號位不允許和數值位同等看待,必須分開進行處理。待,必須分開進行處理。 對于真值對于真值0,原碼和反碼各有兩種不同的表示,原碼和反碼各有兩種不同的表示形式,而補碼只有唯一的一種表示形式。形式,而補碼只有唯
15、一的一種表示形式。 原碼、反碼表示的正、負數范圍相對零來說是原碼、反碼表示的正、負數范圍相對零來說是對稱的;但補碼負數表示范圍較正數表示范圍對稱的;但補碼負數表示范圍較正數表示范圍寬,能多表示一個最負的數(絕對值最大的負寬,能多表示一個最負的數(絕對值最大的負數),其值等于數),其值等于-2n(純整數)或純整數)或-1(純小數)。(純小數)。2.1.6 三種碼制的比較與轉換21真值與3種機器數間的對照真值真值 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.轉換 如果已知機器的字長,則機器
18、數的位數應如果已知機器的字長,則機器數的位數應補夠相應的位。例如,設機器字長為補夠相應的位。例如,設機器字長為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 機器數的定點表示與浮點表示 計算機在
19、進行算術運算時,需要指計算機在進行算術運算時,需要指出小數點的位置。根據小數點的位置是出小數點的位置。根據小數點的位置是否固定,在計算機中有兩種數據格式:否固定,在計算機中有兩種數據格式:定點表示和浮點表示。定點表示和浮點表示。242.2.1 定點表示法 在定點表示法中約定:所有數據的在定點表示法中約定:所有數據的小數點位置固定不變小數點位置固定不變。1.定點小數定點小數 小數點的位置固定在最高有效數位小數點的位置固定在最高有效數位之前,符號位之后之前,符號位之后,記作,記作Xs.X1X2Xn,這個數是一個純小數。定點小數的小數這個數是一個純小數。定點小數的小數點位置是隱含約定的,小數點并不需
20、要點位置是隱含約定的,小數點并不需要真正地占據一個二進制位。真正地占據一個二進制位。25定點小數表示范圍圖圖2-2 定點小數格式定點小數格式 當當Xs=0,X1Xn=1時,時,X為最大正數。為最大正數。 X最大正數最大正數 =1-2-n 當當Xn=1,XsXn-1=0時,時,X為最小正數。為最小正數。 X最小正數最小正數 =2-nn位數值位數符小數點位置(隱含)XsX1Xn-1Xn26定點小數表示范圍(續(xù)) 當當Xs=1,表示表示X為負數,此時情況要為負數,此時情況要稍微復雜一些,這是因為在計算機中帶符稍微復雜一些,這是因為在計算機中帶符號數可用補碼表示,也可用原碼表示。原號數可用補碼表示,也
21、可用原碼表示。原碼和補碼的表示范圍有一些差別。碼和補碼的表示范圍有一些差別。 若機器數為原碼表示,當若機器數為原碼表示,當XsXn均均等于等于1時,時,X為絕對值最大的負數。為絕對值最大的負數。 X絕對值最大負數絕對值最大負數=-(1-2-n) 若機器數為補碼表示,當若機器數為補碼表示,當Xs=1,X1Xn均等于均等于0時,時,X為絕對值最大的負數。為絕對值最大的負數。 X絕對值最大負數絕對值最大負數=-127 若機器字長有若機器字長有n+1位,則有:位,則有: 原碼定點小數表示范圍:原碼定點小數表示范圍: -(1-2-n)(1-2-n) 補碼定點小數表示范圍:補碼定點小數表示范圍: -1(1
22、-2-n) 若機器字長有若機器字長有8位,則有:位,則有: 原碼定點小數表示范圍:原碼定點小數表示范圍: - 補碼定點小數表示范圍:補碼定點小數表示范圍: -1定點小數表示范圍(續(xù))128127128127128127282.定點整數 定點整數即純整數,定點整數即純整數,小數點位置隱小數點位置隱含固定在最低有效數位之后含固定在最低有效數位之后,記作,記作XsX1X2Xn。圖圖2-3 定點整數格式定點整數格式XsX1Xn-1n位數值位數符小數點位置(隱含)Xn29若機器字長有若機器字長有n+1位,則有:位,則有:原碼定點整數的表示范圍:原碼定點整數的表示范圍: -(2n-1)(2n-1)補碼定點
23、整數的表示范圍:補碼定點整數的表示范圍: -2n (2n-1)若機器字長有若機器字長有8位,則有:位,則有:原碼定點整數表示范圍:原碼定點整數表示范圍: -127127補碼定點整數表示范圍:補碼定點整數表示范圍: -128127定點整數表示范圍30 小數點的位置根據需要而浮動,這小數點的位置根據需要而浮動,這就是浮點數就是浮點數。例如:。例如: N=MrE 式中:式中:r為浮點數階碼的底,與尾數為浮點數階碼的底,與尾數的基數相同,通常的基數相同,通常r=2。E和和M都是帶符號都是帶符號數,數,E叫做階碼,叫做階碼,M叫做尾數。在大多數叫做尾數。在大多數計算機中,尾數為純小數,常用原碼或補計算機
24、中,尾數為純小數,常用原碼或補碼表示;階碼為純整數,常用移碼或補碼碼表示;階碼為純整數,常用移碼或補碼表示。表示。2.2.2 浮點表示法 31圖圖2-5 浮點數的一般格式浮點數的一般格式 浮點數的底是隱含的,在整個機器浮點數的底是隱含的,在整個機器數中不出現。階碼的符號位為數中不出現。階碼的符號位為es,階碼的階碼的大小反映了在數大小反映了在數N中小數點的實際位置;中小數點的實際位置;尾數的符號位為尾數的符號位為ms,它是整個浮點數的它是整個浮點數的符號位,表示了該浮點數的正負。符號位,表示了該浮點數的正負。浮點數的一般格式尾數部分M階碼部分Eesemsmk位n位1位1位321.浮點數的表示范
25、圍 當當es=0,ms=0,階碼和尾數的數值階碼和尾數的數值位各位全為位各位全為1(即階碼和尾數都為最大正(即階碼和尾數都為最大正數)時,該浮點數為最大正數:數)時,該浮點數為最大正數: X最大正數最大正數=(1-2-n) 當當es=1,ms=0,尾數的最低位尾數的最低位mn=1,其余各位為其余各位為0(即階碼為絕對值(即階碼為絕對值最大的負數,尾數為最小正數)時,該最大的負數,尾數為最小正數)時,該浮點數為最小正數:浮點數為最小正數: X最小正數最小正數=2-n 122kk22331.浮點數的表示范圍(續(xù)) 當當es=0,階碼的數值位為全階碼的數值位為全1;ms=1,尾數的數值位為全尾數的數
26、值位為全0(即階碼為最(即階碼為最大正數,尾數為絕對值最大的負數)時,大正數,尾數為絕對值最大的負數)時,該浮點數為絕對值最大負數:該浮點數為絕對值最大負數: X絕對值最大負數絕對值最大負數= -1 122 k34 為了提高運算的精度,需要充分地為了提高運算的精度,需要充分地利用尾數的有效數位,通常采取浮點數規(guī)利用尾數的有效數位,通常采取浮點數規(guī)格化形式,即規(guī)定格化形式,即規(guī)定尾數的最高數位必須是尾數的最高數位必須是一個有效值一個有效值。 1/2 |M| 12.規(guī)格化浮點數352.規(guī)格化浮點數(續(xù)) 在尾數用補碼表示時,規(guī)格化浮點數在尾數用補碼表示時,規(guī)格化浮點數應滿足應滿足尾數最高數位與符號
27、位不同尾數最高數位與符號位不同(ms m1 =1),),即當即當1/2M1時,應有時,應有0.1xxx形式,當形式,當-1M-1/2時,應有時,應有1.0 xxx形式。形式。 需要注意的是當需要注意的是當M=-1/2,對于原碼對于原碼來說,是規(guī)格化數,而對于補碼來說,不來說,是規(guī)格化數,而對于補碼來說,不是規(guī)格化數。是規(guī)格化數。362.規(guī)格化浮點數(續(xù)) 當當es=1,ms=0,尾數的最高位尾數的最高位m1=1,其余各位為其余各位為0時,該浮點數為規(guī)格化的最時,該浮點數為規(guī)格化的最小正數:小正數: X規(guī)格化的最小正數規(guī)格化的最小正數=2-1 規(guī)格化的最小正數大于非規(guī)格化的規(guī)格化的最小正數大于非
28、規(guī)格化的最小正數最小正數。k2237浮點數的典型值 382.2.3 移碼表示法 移碼就是在真值移碼就是在真值X上加一個常數(偏置上加一個常數(偏置值),相當于值),相當于X在數軸上向正方向平移了一段距在數軸上向正方向平移了一段距離,這就是離,這就是“移碼移碼”一詞的來由。一詞的來由。 X移移=偏置值偏置值+X 對于字長對于字長8位的定點整數,偏置值為位的定點整數,偏置值為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的移碼、補碼和真值之間的關系 40偏置值為2n的移碼的特點 在移碼中,最高位為在移碼中,最高位為“0”表示負表示負數,最高位為數,最高位為“1”表示正數。表示正數。 移碼為全移碼為全0時,它所對應的真值最時,它所對應的真值最小,為全小,為全1時,它所對應的真值最大。時,它所對應的真值最大。 真值真值0在移碼中的表示形式是唯一在移碼中的表示形式是唯一的,即的,即+0移移=-0移移=1000。 移碼把真值映射到一個正數域,移碼把真值映射到一個正數域,所以可將移碼視為無符號數,直接按無符所以可將移碼視為無符號數,直接按無符號數規(guī)則比較大小。號數規(guī)
30、則比較大小。 同一數值的移碼和補碼除最高位同一數值的移碼和補碼除最高位相反外,其他各位相同相反外,其他各位相同。41浮點數的階碼采用移碼的原因 便于比較浮點數的大小。階碼大的,其對便于比較浮點數的大小。階碼大的,其對應的真值就大,階碼小的,對應的真值就應的真值就大,階碼小的,對應的真值就小。小。 簡化機器中的判零電路。當階碼全為簡化機器中的判零電路。當階碼全為0,尾數也全為尾數也全為0時,表示機器零。時,表示機器零。421.定點、浮點表示法的區(qū)別定點、浮點表示法的區(qū)別數值的表示范圍數值的表示范圍 假設定點數和浮點數的字長相同,假設定點數和浮點數的字長相同,浮點表示法所能表示的數值范圍將遠遠大浮
31、點表示法所能表示的數值范圍將遠遠大于定點數。于定點數。精度精度 對于字長相同的定點數和浮點數來對于字長相同的定點數和浮點數來說,浮點數雖然擴大了數的表示范圍,但說,浮點數雖然擴大了數的表示范圍,但這正是以降低精度為代價的,也就是數軸這正是以降低精度為代價的,也就是數軸上各點的排列更稀疏了。上各點的排列更稀疏了。2.2.4 定點、浮點表示法和定點、浮點計算機43數的運算數的運算 浮點運算要比定點運算復雜得多。浮點運算要比定點運算復雜得多。溢出處理溢出處理 在定點運算時,當運算結果超出數在定點運算時,當運算結果超出數的表示范圍,就發(fā)生溢出。而在浮點運算的表示范圍,就發(fā)生溢出。而在浮點運算時,運算結
32、果超出尾數的表示范圍卻并不時,運算結果超出尾數的表示范圍卻并不一定溢出,只有當階碼超出所能表示的范一定溢出,只有當階碼超出所能表示的范圍時,才發(fā)生溢出。圍時,才發(fā)生溢出。1.定點、浮點表示法的區(qū)別(續(xù))442.定點機與浮點機通??梢詫⒂嬎銠C分為幾檔:通??梢詫⒂嬎銠C分為幾檔:定點機定點機 以定點運算為主,浮點運算是通過軟以定點運算為主,浮點運算是通過軟件來實現的。件來實現的。定點機浮點運算部件定點機浮點運算部件 浮點運算部件是專門用于對浮點數浮點運算部件是專門用于對浮點數進行運算的部件。進行運算的部件。浮點機浮點機 具有浮點運算指令和基本的浮點運具有浮點運算指令和基本的浮點運算器。算器。45圖
33、圖2-6 IEEE 754標準的浮點數格式標準的浮點數格式 2.2.6 實用浮點數舉例類型類型 數符數符 m ms s 階碼階碼 E E 尾數尾數 m m 總位數總位數 偏偏置值置值 短浮點數短浮點數 1 1 8 8 2323 3232 7FH7FH 127127 長浮點數長浮點數 1 1 1111 5252 6464 3FFH3FFH 10231023 臨時浮點數臨時浮點數 1 1 1515 6464 8080 3FFFH3FFFH 1638316383 Emsm階碼部分,用移碼表示尾符尾數數值位尾數部分,用原碼表示46IEEE754標準的浮點數 以短浮點數為例討論浮點代碼與其以短浮點數為例
34、討論浮點代碼與其真值之間的關系。最高位為數符位;其后真值之間的關系。最高位為數符位;其后是是8位階碼,以位階碼,以2為底,階碼的偏置值為為底,階碼的偏置值為127;其余;其余23位是尾數。為了使尾數部分位是尾數。為了使尾數部分能表示更多一位的有效值,能表示更多一位的有效值,IEEE754采用采用隱含尾數最高數位隱含尾數最高數位1(即這一位(即這一位1不表示出不表示出來)的方法,因此尾數實際上是來)的方法,因此尾數實際上是24位。應位。應注意的是,注意的是,隱含的隱含的1是一位整數(即位權是一位整數(即位權為為20),在浮點格式中表示出來的,在浮點格式中表示出來的23位尾位尾數是純小數,并用原碼
35、表示。數是純小數,并用原碼表示。47IEEE754標準的浮點數(續(xù)) 例例13:將:將(100.25)10轉換成短浮點數格式。轉換成短浮點數格式。 十進制數十進制數二進制數二進制數 (100.25)10=(1100100.01)2 非規(guī)格化數非規(guī)格化數規(guī)格化數規(guī)格化數 1100100.01=1.1001000126 計算移碼表示的階碼(偏置值階碼真值)計算移碼表示的階碼(偏置值階碼真值) 1111111+110=10000101 以短浮點數格式存儲該數。以短浮點數格式存儲該數。 符號位符號位=0 階碼階碼=10000101 尾數尾數=1001000100000000000000048IEEE7
36、54標準的浮點數(續(xù)) 短浮點數代碼為短浮點數代碼為 0;100 0010 1;100 1000 1000 0000 0000 0000 表示為十六進制的代碼:表示為十六進制的代碼:42C88000H。例例14:把短浮點數:把短浮點數C1C90000H轉換成為十進制數。轉換成為十進制數。 十六進制十六進制二進制形式,并分離出符號位、階二進制形式,并分離出符號位、階碼和尾數。碼和尾數。 C1C90000H= 1;10000011;10010010000000000000000階碼階碼符號位符號位尾數尾數49IEEE754標準的浮點數(續(xù)) 計算出階碼真值(移碼偏置值)計算出階碼真值(移碼偏置值)
37、 10000011-1111111=100 以規(guī)格化二進制數形式寫出此數以規(guī)格化二進制數形式寫出此數 1.100100124 寫成非規(guī)格化二進制數形式寫成非規(guī)格化二進制數形式 11001.001 轉換成十進制數,并加上符號位。轉換成十進制數,并加上符號位。 (11001.001)2=(25.125)10 所以,該浮點數所以,該浮點數=-25.125502.3 非數值數據的表示 非數值數據,又稱為字符數據,通常非數值數據,又稱為字符數據,通常是指字符、字符串、圖形符號和漢字等各是指字符、字符串、圖形符號和漢字等各種數據,它們不用來表示數值的大小,一種數據,它們不用來表示數值的大小,一般情況下不對
38、它們進行算術運算。般情況下不對它們進行算術運算。512.3.1 字符和字符串的表示1.ASCII字符編碼字符編碼 常見的常見的ASCII碼用七位二進制表示一個字碼用七位二進制表示一個字符,它包括符,它包括10個十進制數字(個十進制數字(09)、)、52個英個英文大寫和小寫字母(文大寫和小寫字母(AZ,az)、)、34個專用個專用符號和符號和32個控制符號,共計個控制符號,共計128個字符。個字符。 在計算機中,通常用一個字節(jié)來存放一個在計算機中,通常用一個字節(jié)來存放一個字符。字符。 在在ASCII碼表中,數字和英文字母都是按碼表中,數字和英文字母都是按順序排列的,只要知道其中一個的二進制代碼,
39、順序排列的,只要知道其中一個的二進制代碼,不要查表就可以推導出其他數字或字母的二進不要查表就可以推導出其他數字或字母的二進制代碼。制代碼。52ASCII字符編碼表532.字符串的存放 字符串是指一串連續(xù)的字符。例如,字符串是指一串連續(xù)的字符。例如,字符串字符串IF X0 THEN READ (C)。 向量存放法在存儲器中占用一片連續(xù)向量存放法在存儲器中占用一片連續(xù)的空間,每個字節(jié)存放一個字符代碼,字的空間,每個字節(jié)存放一個字符代碼,字符串的所有元素(字符)在物理上是鄰接符串的所有元素(字符)在物理上是鄰接的。在字長為的。在字長為32位的存儲器,每一個主存位的存儲器,每一個主存單元可存放單元可存
40、放4個字符,整個字符串需個字符,整個字符串需5個主個主存單元。在每個字節(jié)中實際存放的是相應存單元。在每個字節(jié)中實際存放的是相應字符的字符的ASCII碼。碼。54IFX0THENREA(C)D字符串的向量存放方案5449462020202030454541444852433E2928584E圖圖2-7 字符串的向量存放方案字符串的向量存放方案551.漢字國標碼漢字國標碼 漢字國標碼亦可稱為漢字交換碼,漢字國標碼亦可稱為漢字交換碼,主要用于漢字信息處理系統(tǒng)之間或者通信主要用于漢字信息處理系統(tǒng)之間或者通信系統(tǒng)之間交換信息使用,簡稱系統(tǒng)之間交換信息使用,簡稱GB碼。該碼。該標準共收集常用漢字標準共收集
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ū)和位組成一個二維數組,每個(位),區(qū)和位組成一個二維數組,每個漢字在數組中對應一個唯一的區(qū)位碼。漢漢字在數組
42、中對應一個唯一的區(qū)位碼。漢字的區(qū)位碼定長字的區(qū)位碼定長4位,前位,前2位表示區(qū)號,后位表示區(qū)號,后2位表示位號,區(qū)號和位號用十進制數表位表示位號,區(qū)號和位號用十進制數表示,區(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ū)位碼并不等于漢字國標碼,它們兩者之間的關系可用以下公式表國標碼,它們兩者之間的關系可用以下公式表示:示: 國標碼區(qū)位
43、碼(十六進制)國標碼區(qū)位碼(十六進制)2020H 例例15:已知漢字:已知漢字“春春”的區(qū)位碼為的區(qū)位碼為“20-26”,計算它的國標碼。計算它的國標碼。 區(qū)位碼:第區(qū)位碼:第1字節(jié)字節(jié) 第第2字節(jié)字節(jié) 20 26 十進制十進制 14H 1AH 十六進制十六進制 +20H +20H 國標碼:國標碼: 34H 3AH2.漢字區(qū)位碼(續(xù))58 漢字在計算機內部其內碼是唯一的。因為漢字在計算機內部其內碼是唯一的。因為漢字處理系統(tǒng)要保證中西文的兼容,當系統(tǒng)中漢字處理系統(tǒng)要保證中西文的兼容,當系統(tǒng)中同時存在同時存在ASCII碼和漢字國標碼時,將會產生二碼和漢字國標碼時,將會產生二義性。例如:有兩個字節(jié)的
44、內容為義性。例如:有兩個字節(jié)的內容為30H和和21H,它既可表示漢字它既可表示漢字“啊啊”的國標碼,又可表示西的國標碼,又可表示西文文“0”和和“!”的的ASCII碼。為此,漢字機內碼碼。為此,漢字機內碼應對國標碼加以適當處理和變換。應對國標碼加以適當處理和變換。 GB碼的機內碼為二字節(jié)長的代碼,它是碼的機內碼為二字節(jié)長的代碼,它是在相應在相應GB碼的每個字節(jié)最高位上加碼的每個字節(jié)最高位上加“1”,即,即 漢字機內碼漢字國標碼漢字機內碼漢字國標碼8080H 例如,上述例如,上述“啊啊”字的國標碼是字的國標碼是3021H,其漢字機內碼則是其漢字機內碼則是B0A1H。 3.漢字機內碼 59 Uni
45、code的基本方法是用一個的基本方法是用一個16位位的數來表示每個符號,這種符號集可表示的數來表示每個符號,這種符號集可表示65536個不同的字符或符號。被稱為基本個不同的字符或符號。被稱為基本多語言平面(多語言平面(BMP)。)。這個空間已經非這個空間已經非常大了,但設計者考慮到將來某一天它可常大了,但設計者考慮到將來某一天它可能也會不夠用,所以采用了一種可使這種能也會不夠用,所以采用了一種可使這種表示法使用得更遠的方法。表示法使用得更遠的方法。2.3.3 統(tǒng)一代碼60 當用兩字節(jié)來表示當用兩字節(jié)來表示Unicode字符時,字符時,使用的是使用的是UCS-2編碼,但盡管如此,也允編碼,但盡管
46、如此,也允許在許在UCS-2文本中插入一些文本中插入一些UCS-4字符。字符。為此,在為此,在BMP中,保留了兩個大小為中,保留了兩個大小為1024的塊,這兩個塊中任何位置都不能的塊,這兩個塊中任何位置都不能用來表示任何符號。用來表示任何符號。UCS-4的兩個的兩個16位字位字每個表示一個數,這個數是每個表示一個數,這個數是UCS-2 BMP中中1024個數值中的一個。這兩個數的組個數值中的一個。這兩個數的組合可以表示多達合可以表示多達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 十進制數和數串的表示 十進制是人們最常用的數據表示方十進制是人們最常用的數據表示方法,一些通用性較強的計算機上設有十進法,一些通用性較強的計算機上設有十進制數據的表示,可以直接對十進制數進行制數據的表示,可以直接對十進制數進行運算和處理。運算和處理。632.4.1 十進制數的編碼 用四位二進制數來表示一位十進制用四位二進制數來表示一位十進制數,稱為數,稱為二進制編碼的十進制數,簡稱二進制編碼的十進制數,簡稱BCD碼碼。 四位二進制數可以組合出四位二進制數
48、可以組合出16種代碼,種代碼,能表示能表示16種不同的狀態(tài),我們只需要使用種不同的狀態(tài),我們只需要使用其中的其中的10種狀態(tài),就可以表示十進制數的種狀態(tài),就可以表示十進制數的09十個數碼,而其他的六種狀態(tài)為冗余十個數碼,而其他的六種狀態(tài)為冗余狀態(tài)。由于可以取任意的狀態(tài)。由于可以取任意的10種代碼來表示種代碼來表示十個數碼,所以就可能產生多種十個數碼,所以就可能產生多種BCD編碼。編碼。BCD編碼既具有二進制數的形式,又保持編碼既具有二進制數的形式,又保持了十進制數的特點。了十進制數的特點。64幾種常見的BCD碼十進制十進制84218421 碼碼24212421 碼碼余余 3 3 碼碼0 01
49、12 23 34 45 56 67 78 89 9000000000001000100100010001100110100010001010101011001100111011110001000100110010000000000010001001000100011001101000100101110111100110011011101111011101111111100110011010001000101010101100110011101111000100010011001101010101011101111001100651.8421碼 8421碼又稱為碼又稱為NBCD碼,其主要特點碼,
50、其主要特點是:是: 它是一種有權碼,四位二進制代它是一種有權碼,四位二進制代碼的位權從高到低分別為碼的位權從高到低分別為8、4、2、1。 簡單直觀。每個代碼與它所代表簡單直觀。每個代碼與它所代表的十進制數之間符合二進制數和十進制數的十進制數之間符合二進制數和十進制數相互轉換的規(guī)則。相互轉換的規(guī)則。 不允許出現不允許出現10101111。這。這6個代個代碼在碼在8421碼中是非法碼。碼中是非法碼。662.2421碼 2421碼的主要特點是:碼的主要特點是: 它也是一種有權碼,四位二進制它也是一種有權碼,四位二進制代碼的位權從高到低分別為代碼的位權從高到低分別為2、4、2、1。 它又是一種對它又是
51、一種對9的的自補碼自補碼。即某。即某數的數的2421碼,只要自身按位取反,就能碼,只要自身按位取反,就能得到該數對得到該數對9之補的之補的2421碼。例如:碼。例如: 3的的2421碼是碼是0011。3對對9之補是之補是6,而而6的的2421碼是碼是1100。 不允許出現不允許出現01011010。這。這6個個代碼在代碼在2421碼中是非法碼。碼中是非法碼。673.余3碼 余余3碼的主要特點是:碼的主要特點是: 這是一種無權碼,但也可看作這是一種無權碼,但也可看作是一種特殊的有權碼,即在是一種特殊的有權碼,即在8421碼的基碼的基礎上加礎上加+3(+0011)形成的,故稱余)形成的,故稱余3碼
52、。碼。在這種編碼中各位的在這種編碼中各位的“1”不表示一個固不表示一個固定的十進制數值,因而不直觀。定的十進制數值,因而不直觀。 它也是一種對它也是一種對9的的自補碼自補碼。 不允許出現不允許出現00000010、11011111。這。這6個代碼在余個代碼在余3碼中是非碼中是非法碼。法碼。682.4.2 十進制數串1.非壓縮的十進制數串非壓縮的十進制數串 非壓縮的十進制數串中一個字節(jié)存放一個非壓縮的十進制數串中一個字節(jié)存放一個十進制數或符號的十進制數或符號的ASCII-7碼。碼。 非壓縮的十進制數串又分成前分隔式數字非壓縮的十進制數串又分成前分隔式數字串和后嵌入式數字串兩種格式。在前分隔式數串
53、和后嵌入式數字串兩種格式。在前分隔式數字串中,符號位占用單獨一個字節(jié),放在數值字串中,符號位占用單獨一個字節(jié),放在數值位之前,正號對應的位之前,正號對應的ASCII碼為碼為2BH,負號對應負號對應的的ASCII碼為碼為2DH。在后嵌入式數字串中,符號在后嵌入式數字串中,符號位不單獨占用一個字節(jié),而是嵌入到最低一位位不單獨占用一個字節(jié),而是嵌入到最低一位數字里邊去。若數串為正,則最低一位數字數字里邊去。若數串為正,則最低一位數字09的的ASCII碼不變(碼不變(30H39H););若數串為負,若數串為負,把負號變?yōu)榘沿撎栕優(yōu)?0H,并將其與最低數值位相加,此并將其與最低數值位相加,此時數字時數字
54、09的的ASCII碼變?yōu)榇a變?yōu)?0H79H。 692.壓縮的十進制數串 壓縮的十進制數串,一個字節(jié)可存壓縮的十進制數串,一個字節(jié)可存放兩位放兩位BCD碼表示的十進制數,既節(jié)省了碼表示的十進制數,既節(jié)省了存儲空間,又便于直接進行十進制算術運存儲空間,又便于直接進行十進制算術運算。算。 在主存中,一個壓縮的十進制數串在主存中,一個壓縮的十進制數串占用連續(xù)的多個字節(jié),每位數字僅占半個占用連續(xù)的多個字節(jié),每位數字僅占半個字節(jié),其值常用字節(jié),其值常用8421碼表示。符號位也占碼表示。符號位也占半個字節(jié),并存放在最低數值位之后,通半個字節(jié),并存放在最低數值位之后,通常用常用CH表示正號,表示正號,DH表示
55、負號。在這種表示負號。在這種表示中,規(guī)定數字的個數加符號位之和必表示中,規(guī)定數字的個數加符號位之和必須為偶數;當和為奇數時,應在最高數值須為偶數;當和為奇數時,應在最高數值位之前補位之前補0H(即第一個字節(jié)的高半字節(jié)為即第一個字節(jié)的高半字節(jié)為“0000”)。)。 702.5 現代微機系統(tǒng)中的數據表示舉例 現代的微機系統(tǒng)大多采用現代的微機系統(tǒng)大多采用Intel系列的系列的微處理器,微處理器,近年來近年來,Intel的微處理器有了的微處理器有了極大的發(fā)展,形成了極大的發(fā)展,形成了IA-32結構。結構。 IA-32結構的基本數據類型是字節(jié)、字、結構的基本數據類型是字節(jié)、字、雙字雙字、四字和雙四字。四
56、字和雙四字。 71070000字節(jié)字雙字四字雙四字低四字高四字低雙字高雙字低字高字低字節(jié)高字節(jié)15316312763643132151678NNNNNN+1N+2N+4N+8IA-32結構的基本數據類型圖圖2-9 IA-32結構的基本數據類型結構的基本數據類型721.無符號整數 無符號整數是包含字節(jié)、字、雙字無符號整數是包含字節(jié)、字、雙字和四字的無符號的二進制數。無符號整和四字的無符號的二進制數。無符號整數的范圍,對于字節(jié),從數的范圍,對于字節(jié),從0255;對于;對于字,從字,從065535;對于雙字,從;對于雙字,從0232 -1;對于四字,從;對于四字,從0264-1。 2.帶符號整數帶符
57、號整數 帶符號整數是包含字節(jié)、字、雙字帶符號整數是包含字節(jié)、字、雙字和四字的帶符號的二進制定點整數。正和四字的帶符號的二進制定點整數。正數的符號位為數的符號位為0,負數的符號位為,負數的符號位為1。對。對于字節(jié),從于字節(jié),從-128+127;對于字,從;對于字,從 -32768+32767;對于雙字,從;對于雙字,從-231+231-1;對于四字,從;對于四字,從-263+263-1。733.浮點數 與與IEEE 754標準所規(guī)定的格式直接標準所規(guī)定的格式直接對應。對應。4.指針數據指針數據 指針是主存單元的地址,指針是主存單元的地址,IA-32 結結構定義了兩種類型的指針:近指針(構定義了兩
58、種類型的指針:近指針(32位)和遠指針(位)和遠指針(48位)。位)。5.串數據串數據 包括位串、字節(jié)串、字串和雙字串。包括位串、字節(jié)串、字串和雙字串。一個串可以包含從一個字節(jié)到一個串可以包含從一個字節(jié)到4GB的內的內容。容。74 6.BCD數 IA-32 結構結構中所指的中所指的BCD碼實際上碼實際上是指是指8421碼。碼。BCD數又分成未拼裝的數又分成未拼裝的BCD(UBCD)數和拼裝的數和拼裝的BCD數兩種。數兩種。UBCD數的一個字節(jié)僅包含一位十進制數的一個字節(jié)僅包含一位十進制數,在數,在30位上;而經過拼裝的位上;而經過拼裝的BCD數,數,一個字節(jié)包含兩位十進制數,其低位在一個字節(jié)包
59、含兩位十進制數,其低位在30位上,高位在位上,高位在74位上。位上。 752.6 數據校驗碼 數據校驗碼是指那些能夠發(fā)現錯誤數據校驗碼是指那些能夠發(fā)現錯誤或能夠自動糾正錯誤的數據編碼,又稱之或能夠自動糾正錯誤的數據編碼,又稱之為為“檢錯糾錯編碼檢錯糾錯編碼”。任何一種編碼都由。任何一種編碼都由許多碼字構成,任意兩個碼字之間最少變許多碼字構成,任意兩個碼字之間最少變化的二進制位數,被稱為數據校驗碼的碼化的二進制位數,被稱為數據校驗碼的碼距。例如,用四位二進制表示距。例如,用四位二進制表示16種狀態(tài),種狀態(tài),則有則有16個不同的碼字,此時碼距為個不同的碼字,此時碼距為1,即,即兩個碼字之間最少僅有
60、一個二進制位不同兩個碼字之間最少僅有一個二進制位不同(如(如0000與與0001之間)。這種編碼沒有之間)。這種編碼沒有檢錯能力,因為當某一個合法碼字中有一檢錯能力,因為當某一個合法碼字中有一位或幾位出錯,就變成為另一個合法碼字位或幾位出錯,就變成為另一個合法碼字了。了。762.6.1 奇偶校驗碼1.奇偶校驗概念奇偶校驗概念 奇偶校驗碼是一種最簡單的數據校奇偶校驗碼是一種最簡單的數據校驗碼,它的碼距等于驗碼,它的碼距等于2,可以檢測出一位,可以檢測出一位錯誤(或奇數位錯誤),但不能確定出錯錯誤(或奇數位錯誤),但不能確定出錯的位置,也不能檢測出偶數位錯誤。的位置,也不能檢測出偶數位錯誤。 奇偶
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球3D生物打印植入物行業(yè)調研及趨勢分析報告
- 2024年軍隊文職人員招聘考試題庫二
- 2025年度旅游產業(yè)轉型升級個人咨詢服務協(xié)議
- 2025版文化產業(yè)投資合作開發(fā)協(xié)議3篇
- 2025版住宅小區(qū)物業(yè)委托維護管理協(xié)議3篇
- 二零二五年度藝術場地租賃合同中的藝術創(chuàng)作與展覽指導2篇
- 二零二五年度阿拉爾經濟技術開發(fā)區(qū)環(huán)保產業(yè)合作開發(fā)合同3篇
- 2024版影視器材租賃合同下載
- 2025版房地產銷售合同標準模板
- 2024糯玉米采購協(xié)議書
- 廣東省深圳市2024-2025學年高一上學期期末考試英語試題(含答案)
- 醫(yī)藥行業(yè)2025年策略報告:曙光初現機遇增加
- 社會主義核心價值觀課件
- 《公路養(yǎng)護安全培訓》課件
- 第七講推動構建新時代的大國關系格局-2024年形勢與政策(課件)
- 2024年高考真題-化學(天津卷) 含解析
- 醫(yī)院食材采購與配送實施方案
- 文書模板-護理規(guī)培生座談會記錄
- 2025年高考作文備考:議論文寫作的論證手法
- 投餌機相關項目實施方案
- 2024年可行性研究報告投資估算及財務分析全套計算表格(含附表-帶只更改標紅部分-操作簡單)
評論
0/150
提交評論