




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第2講講 數據的機器層次表示數據的機器層次表示1第第2講講 數據的機器層次表示數據的機器層次表示2 數據是計算機加工和處理的對象,數數據是計算機加工和處理的對象,數據的機器層次表示將直接影響到計算機的據的機器層次表示將直接影響到計算機的結構和性能。本章主要介紹無符號數和帶結構和性能。本章主要介紹無符號數和帶符號數的表示方法、數的定點與浮點表示符號數的表示方法、數的定點與浮點表示方法、字符和漢字的編碼方法、數據校驗方法、字符和漢字的編碼方法、數據校驗碼等。熟悉和掌握本章的內容,是學習計碼等。熟悉和掌握本章的內容,是學習計算機原理的最基本要求。算機原理的最基本要求。 第第2講講 數據的機器層次表
2、示數據的機器層次表示3本章學習內容本章學習內容 2.1 數值數據的表示數值數據的表示 2.2 機器數的定點表示和浮點表示機器數的定點表示和浮點表示 2.3 非數值數據的表示非數值數據的表示 2.4 十進制數和數串的表示十進制數和數串的表示 2.5 現代微型計算機中的數據表示舉例現代微型計算機中的數據表示舉例 2.6 數據校驗碼數據校驗碼第第2講講 數據的機器層次表示數據的機器層次表示4本章學習要求本章學習要求 了解:了解:無符號數與帶符號數,真值和機器數等無符號數與帶符號數,真值和機器數等概念概念 掌握:原碼、補碼、反碼表示法以及三種碼制掌握:原碼、補碼、反碼表示法以及三種碼制與真值之間的轉換
3、方法與真值之間的轉換方法 掌握:定點數和浮點數的表示范圍掌握:定點數和浮點數的表示范圍 理解:浮點數階碼的移碼理解:浮點數階碼的移碼 理解:理解:IEEE754浮點數標準浮點數標準 掌握:常見的字符編碼方法(掌握:常見的字符編碼方法(ASCII碼)、漢碼)、漢字國標碼、區位碼、機內碼、字型碼字國標碼、區位碼、機內碼、字型碼 掌握:掌握:8241碼、碼、2421碼和余碼和余3碼碼 掌握:奇偶校驗位及其形成方法掌握:奇偶校驗位及其形成方法 了解:海明校驗碼和循環冗余校驗碼了解:海明校驗碼和循環冗余校驗碼 第第2講講 數據的機器層次表示數據的機器層次表示52.1 2.1 數值數據的表示數值數據的表示
4、 在計算機中,采用數字化方式來表示在計算機中,采用數字化方式來表示數據,數據有無符號數和帶符號數之分,數據,數據有無符號數和帶符號數之分,其中帶符號數根據其編碼的不同又有原碼其中帶符號數根據其編碼的不同又有原碼、補碼和反碼、補碼和反碼3種形式。種形式。第第2講講 數據的機器層次表示數據的機器層次表示62.1.1 2.1.1 計算機中的數值數據計算機中的數值數據 二進制數:后綴二進制數:后綴B 八進制數:后綴八進制數:后綴Q 十進制數:后綴十進制數:后綴D或省略后綴或省略后綴 十六進制數:后綴十六進制數:后綴H 計算機系統設計師和程序員更鐘情于計算機系統設計師和程序員更鐘情于采用程序設計語言的記
5、號來表示不同進制采用程序設計語言的記號來表示不同進制的數,這就是前綴表示法,如:在的數,這就是前綴表示法,如:在C語言語言中,八進制常數以前綴中,八進制常數以前綴0開始,十六進制常開始,十六進制常數以前綴數以前綴0 x開始。開始。第第2講講 數據的機器層次表示數據的機器層次表示72.1.2 2.1.2 無符號數和帶符號數無符號數和帶符號數 無符號數,就是整個機器字長的全部無符號數,就是整個機器字長的全部二進制位均表示數值位(沒有符號位),二進制位均表示數值位(沒有符號位),相當于數的絕對值。例如:相當于數的絕對值。例如: N1=01001 表示無符號數表示無符號數9 N2=11001 表示無符
6、號數表示無符號數25 機器字長為機器字長為n+1位的無符號數的表示范位的無符號數的表示范圍是圍是0(2n+1-1),此時二進制的最高位也是此時二進制的最高位也是數值位,其權值等于數值位,其權值等于2n。若字長為若字長為8位,則位,則數的表示范圍為數的表示范圍為0255。 第第2講講 數據的機器層次表示數據的機器層次表示82.1.2 2.1.2 無符號數和帶符號數(續)無符號數和帶符號數(續) 帶符號數,即正、負數。在日常生活帶符號數,即正、負數。在日常生活中,我們用中,我們用“+”、“-”號加絕對值來表號加絕對值來表示數值的大小,用這種形式表示的數值在示數值的大小,用這種形式表示的數值在計算機
7、技術中稱為計算機技術中稱為“真值真值”。 在計算機中需要把數的符號數碼化。在計算機中需要把數的符號數碼化。通常,約定二進制數的最高位為符號位,通常,約定二進制數的最高位為符號位,“0”表示正號,表示正號,“1”表示負號。這種在表示負號。這種在計算機中使用的表示數的形式稱為計算機中使用的表示數的形式稱為機器數機器數。第第2講講 數據的機器層次表示數據的機器層次表示92.1.2 2.1.2 無符號數和帶符號數(續)無符號數和帶符號數(續) 常見的機器數有原碼、反碼、補碼等常見的機器數有原碼、反碼、補碼等3種不同的表示形式。種不同的表示形式。 帶符號數的最高位被用來表示符號位,帶符號數的最高位被用來
8、表示符號位,而不再表示數值位。前例中的而不再表示數值位。前例中的N1、N2 在這在這里的含義變為:里的含義變為: N1=01001 表示表示+9。 N2=11001 根據機器數的不同形式表根據機器數的不同形式表示不同的值,如是原碼則表示示不同的值,如是原碼則表示-9,補碼則,補碼則表示表示-7,反碼則表示,反碼則表示-6。 第第2講講 數據的機器層次表示數據的機器層次表示102.1.3 2.1.3 原碼表示法原碼表示法 原碼表示法是一種最簡單的機器數原碼表示法是一種最簡單的機器數表示法,用最高位表示符號位,符號位表示法,用最高位表示符號位,符號位為為“0”表示該數為正,符號位為表示該數為正,符
9、號位為“1”表示該數為負,數值部分與真值相同。表示該數為負,數值部分與真值相同。 設二進制純小數的原碼形式為設二進制純小數的原碼形式為Xs.X1X2Xn,字長字長n+1位,其中位,其中Xs表示表示符號位。符號位。 例例1:X1=0.0110, X1原原=0.0110 X2=-0.0110, X2原原=1.0110第第2講講 數據的機器層次表示數據的機器層次表示112.1.3 2.1.3 原碼表示法(續)原碼表示法(續) 設 二 進 制 純 整 數 的 原 碼 形 式 為設 二 進 制 純 整 數 的 原 碼 形 式 為XsX1X2Xn,其中其中Xs表示符號位。表示符號位。例例2: X1=110
10、1, X1原原=01101 X2=-1101, X2原原=11101 在原碼表示中,真值在原碼表示中,真值0有兩種不同的表有兩種不同的表示形式:示形式: +0原原=00000 -0原原=10000第第2講講 數據的機器層次表示數據的機器層次表示122.1.4 2.1.4 補碼表示法補碼表示法 1.模和同余模和同余 模模是指一個計量器的容量,可用是指一個計量器的容量,可用M表示。例表示。例如:一個如:一個4位的二進制計數器,當計數器從位的二進制計數器,當計數器從0計到計到15之后,再加之后,再加1,計數值又變為,計數值又變為0。這個計數器的。這個計數器的容量容量M=24=16,即模為即模為16。
11、由此可見,純小數的。由此可見,純小數的模為模為2,一個字長為,一個字長為n+1位的純整數的模為位的純整數的模為2n+1。 同余同余是指兩整數是指兩整數A、B除以同一正整數除以同一正整數M,所得余數相同,則稱所得余數相同,則稱A、B對對M同余,即同余,即A、B在在以以M為模時是相等的,可寫作為模時是相等的,可寫作 A=B (mod M) 第第2講講 數據的機器層次表示數據的機器層次表示13時鐘正撥和倒撥時鐘正撥和倒撥 對鐘表而言,對鐘表而言,M=12。假設:時鐘停在假設:時鐘停在8點,而現在正確的時間是點,而現在正確的時間是6點,這時撥準點,這時撥準時鐘的方法有兩種:正撥和倒撥。時鐘的方法有兩種
12、:正撥和倒撥。 分針倒著旋轉分針倒著旋轉2圈,等于分針正著旋轉圈,等于分針正著旋轉10圈。故有:圈。故有:-2=10 (mod 12) ,即即 -2和和10同余。同余。 8-2=8+10 (mod 12) 倒撥時鐘倒撥時鐘正撥時鐘正撥時鐘點擊播放第第2講講 數據的機器層次表示數據的機器層次表示14 補碼的符號位表示方法與原碼相同,補碼的符號位表示方法與原碼相同,其數值部分的表示與數的正負有關:對于其數值部分的表示與數的正負有關:對于正數,數值部分與真值形式相同;對于負正數,數值部分與真值形式相同;對于負數,將真值的數值部分按位取反,且在最數,將真值的數值部分按位取反,且在最低位上加低位上加1。
13、 若真值為純小數,它的補碼形式為若真值為純小數,它的補碼形式為Xs.X1X2Xn,其中其中Xs表示符號位。表示符號位。 例例5:X1=0.0110, X1補補=0.0110 X2=-0.0110, X2補補=1.10102.補碼表示補碼表示第第2講講 數據的機器層次表示數據的機器層次表示15 若真值為純整數,它的補碼形式為若真值為純整數,它的補碼形式為XsX1X2Xn,其中其中Xs表示符號位。表示符號位。例例6:X1=1101, X1補補=01101 X2=-1101, X2補補=10011 在補碼表示中,真值在補碼表示中,真值0的表示形式是唯的表示形式是唯一的:一的: +0補補=-0補補=0
14、00002.補碼表示(續)補碼表示(續)第第2講講 數據的機器層次表示數據的機器層次表示16 當當X為正數時,為正數時,X補補=X原原=X 當當X為負數時,由為負數時,由X原原轉換為轉換為X補補的方的方法:法: X原原除掉符號位外的各位取反加除掉符號位外的各位取反加“1”。 自低位向高位,尾數的第一個自低位向高位,尾數的第一個“1”及其右部的及其右部的“0”保持不變,左部的各位取保持不變,左部的各位取反,符號位保持不變。反,符號位保持不變。例例7:X原原 =1.1110011000 X補補 =1.00011010003.由真值、原碼轉換為補碼由真值、原碼轉換為補碼不變不變不變不變變反變反第第2
15、講講 數據的機器層次表示數據的機器層次表示172.1.5 2.1.5 反碼表示法反碼表示法 反碼表示法與補碼表示法有許多類似反碼表示法與補碼表示法有許多類似之處,對于正數,數值部分與真值形式相之處,對于正數,數值部分與真值形式相同;對于負數,將真值的數值部分按位取同;對于負數,將真值的數值部分按位取反。反。 若真值為純小數,它的反碼形式為若真值為純小數,它的反碼形式為Xs.X1X2Xn,其中其中Xs表示符號位。表示符號位。例例9:X1=0.0110, X1反反=0.0110 X2=-0.0110, X2反反=1.1001第第2講講 數據的機器層次表示數據的機器層次表示182.1.5 2.1.5
16、 反碼表示法(續)反碼表示法(續) 若真值為純整數,它的反碼形式為若真值為純整數,它的反碼形式為XsX1X2Xn,其中其中Xs表示符號位。表示符號位。例例10:X1=1101, X1補補=01101 X2=-1101, X2補補=10010 在反碼表示中,真值在反碼表示中,真值0也有兩種不同的也有兩種不同的表示形式:表示形式: +0反反=00000 -0反反=11111第第2講講 數據的機器層次表示數據的機器層次表示19 1.比較比較 對于正數它們都等于真值本身,而對于負數各對于正數它們都等于真值本身,而對于負數各有不同的表示。有不同的表示。 最高位都表示符號位,補碼和反碼的符號位可最高位都表
17、示符號位,補碼和反碼的符號位可作為數值位的一部分看待,和數值位一起參加作為數值位的一部分看待,和數值位一起參加運算;但原碼的符號位不允許和數值位同等看運算;但原碼的符號位不允許和數值位同等看待,必須分開進行處理。待,必須分開進行處理。 對于真值對于真值0,原碼和反碼各有兩種不同的表示,原碼和反碼各有兩種不同的表示形式,而補碼只有唯一的一種表示形式。形式,而補碼只有唯一的一種表示形式。 原碼、反碼表示的正、負數范圍相對零來說是原碼、反碼表示的正、負數范圍相對零來說是對稱的;但補碼負數表示范圍較正數表示范圍對稱的;但補碼負數表示范圍較正數表示范圍寬,能多表示一個最負的數(絕對值最大的負寬,能多表示
18、一個最負的數(絕對值最大的負數),其值等于數),其值等于-2n(純整數)或純整數)或-1(純小數)。(純小數)。2.1.6 2.1.6 三種碼制的比較與轉換三種碼制的比較與轉換第第2講講 數據的機器層次表示數據的機器層次表示20真值與真值與3種機器數間的對照種機器數間的對照真值真值 X X 真值真值 X X 十進制十進制 二進制二進制 XX 原原XX 反反XX 補補 十進制十進制 二進制二進制 XX 原原 XX 反反 XX 補補 +0+0 +1+1 +2+2 +3+3 +4+4 +5+5 +6+6 +7+7 +8+8 +000+000 +001+001 +010+010 +011+011 +1
19、00+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 - -101101 - -110110 - -111111 - -10001000 10001000 10011001 10101010 1011
20、1011 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 第第2講講 數據的機器層次表示數據的機器層次表示212.轉換轉換 如果已知機器的字長,則機器數的位數應如果已知機器的字長,則機器數的位數應補夠相應的位。例如,設機器字長為
21、補夠相應的位。例如,設機器字長為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.0100111第第2講講 數據的機器層次表示數據的機器層次表示222.2 2.2 機器數的定點表示與浮點表示機器數的定點表示與浮點表示 計算
22、機在進行算術運算時,需要指出計算機在進行算術運算時,需要指出小數點的位置。根據小數點的位置是否固小數點的位置。根據小數點的位置是否固定,在計算機中有兩種數據格式:定點表定,在計算機中有兩種數據格式:定點表示和浮點表示。示和浮點表示。第第2講講 數據的機器層次表示數據的機器層次表示232.2.1 2.2.1 定點表示法定點表示法 在定點表示法中約定:所有數據的小在定點表示法中約定:所有數據的小數點位置固定不變數點位置固定不變。1.定點小數定點小數 小數點的位置固定在最高有效數位之小數點的位置固定在最高有效數位之前,符號位之后前,符號位之后,記作,記作Xs.X1X2Xn,這個這個數是一個純小數。定
23、點小數的小數點位置數是一個純小數。定點小數的小數點位置是隱含約定的,小數點并不需要真正地占是隱含約定的,小數點并不需要真正地占據一個二進制位。據一個二進制位。第第2講講 數據的機器層次表示數據的機器層次表示24定點小數表示范圍定點小數表示范圍圖圖2-2 定點小數格式定點小數格式 當當Xs=0,X1Xn=1時,時,X為最大正數。為最大正數。 X最大正數最大正數 =1-2-n 當當Xn=1,XsXn-1=0時,時,X為最小正數。為最小正數。 X最小正數最小正數 =2-nn位數值位數符小數點位置(隱含)XsX1Xn-1Xn第第2講講 數據的機器層次表示數據的機器層次表示25定點小數表示范圍(續)定點
24、小數表示范圍(續) 當當Xs=1,表示表示X為負數,此時情況要稍為負數,此時情況要稍微復雜一些,這是因為在計算機中帶符號數微復雜一些,這是因為在計算機中帶符號數可用補碼表示,也可用原碼表示。原碼和補可用補碼表示,也可用原碼表示。原碼和補碼的表示范圍有一些差別。碼的表示范圍有一些差別。 若機器數為原碼表示,當若機器數為原碼表示,當XsXn均等于均等于1時,時,X為絕對值最大的負數。為絕對值最大的負數。 X絕對值最大負數絕對值最大負數=-(1-2-n) 若機器數為補碼表示,當若機器數為補碼表示,當Xs=1,X1Xn均等于均等于0時,時,X為絕對值最大的負數。為絕對值最大的負數。 X絕對值最大負數絕
25、對值最大負數=-1第第2講講 數據的機器層次表示數據的機器層次表示26 若機器字長有若機器字長有n+1位,則有:位,則有: 原碼定點小數表示范圍:原碼定點小數表示范圍: -(1-2-n)(1-2-n) 補碼定點小數表示范圍:補碼定點小數表示范圍: -1(1-2-n) 若機器字長有若機器字長有8位,則有:位,則有: 原碼定點小數表示范圍:原碼定點小數表示范圍: - 補碼定點小數表示范圍:補碼定點小數表示范圍: -1定點小數表示范圍(續)定點小數表示范圍(續)128127128127128127第第2講講 數據的機器層次表示數據的機器層次表示272.定點整數定點整數 定點整數即純整數,定點整數即純
26、整數,小數點位置隱含小數點位置隱含固 定 在 最 低 有 效 數 位 之 后固 定 在 最 低 有 效 數 位 之 后 , 記 作, 記 作XsX1X2Xn。圖圖2-3 定點整數格式定點整數格式XsX1Xn-1n位數值位數符小數點位置(隱含)Xn第第2講講 數據的機器層次表示數據的機器層次表示28若機器字長有若機器字長有n+1位,則有:位,則有:原碼定點整數的表示范圍:原碼定點整數的表示范圍: -(2n-1)(2n-1)補碼定點整數的表示范圍:補碼定點整數的表示范圍: -2n (2n-1)若機器字長有若機器字長有8位,則有:位,則有:原碼定點整數表示范圍:原碼定點整數表示范圍: -127127
27、補碼定點整數表示范圍:補碼定點整數表示范圍: -128127定點整數表示范圍定點整數表示范圍第第2講講 數據的機器層次表示數據的機器層次表示29 小數點的位置根據需要而浮動,這就小數點的位置根據需要而浮動,這就是浮點數是浮點數。例如:。例如: N=MrE 式中:式中:r為浮點數階碼的底,與尾數的為浮點數階碼的底,與尾數的基數相同,通常基數相同,通常r=2。E和和M都是帶符號數都是帶符號數,E叫做階碼,叫做階碼,M叫做尾數。在大多數計算叫做尾數。在大多數計算機中,尾數為純小數,常用原碼或補碼表機中,尾數為純小數,常用原碼或補碼表示;階碼為純整數,常用移碼或補碼表示示;階碼為純整數,常用移碼或補碼
28、表示。2.2.2 2.2.2 浮點表示法浮點表示法 第第2講講 數據的機器層次表示數據的機器層次表示30圖圖2-5 浮點數的一般格式浮點數的一般格式 浮點數的底是隱含的,在整個機器浮點數的底是隱含的,在整個機器數中不出現。階碼的符號位為數中不出現。階碼的符號位為es,階碼的階碼的大小反映了在數大小反映了在數N中小數點的實際位置;中小數點的實際位置;尾數的符號位為尾數的符號位為ms,它是整個浮點數的符它是整個浮點數的符號位,表示了該浮點數的正負。號位,表示了該浮點數的正負。浮點數的一般格式浮點數的一般格式尾數部分M階碼部分Eesemsmk位n位1位1位第第2講講 數據的機器層次表示數據的機器層次
29、表示311.浮點數的表示范圍浮點數的表示范圍 當當es=0,ms=0,階碼和尾數的數值位階碼和尾數的數值位各位全為各位全為1(即階碼和尾數都為最大正數)(即階碼和尾數都為最大正數)時,該浮點數為最大正數:時,該浮點數為最大正數: X最大正數最大正數=(1-2-n) 當當es=1,ms=0,尾數的最低位尾數的最低位mn=1,其余各位為其余各位為0(即階碼為絕對值最大的負數,(即階碼為絕對值最大的負數,尾數為最小正數)時,該浮點數為最小正尾數為最小正數)時,該浮點數為最小正數:數: X最小正數最小正數=2-n 122kk22第第2講講 數據的機器層次表示數據的機器層次表示321.浮點數的表示范圍(
30、續)浮點數的表示范圍(續) 當當es=0,階碼的數值位為全階碼的數值位為全1;ms=1,尾數的數值位為全尾數的數值位為全0(即階碼為最大正數,(即階碼為最大正數,尾數為絕對值最大的負數)時,該浮點尾數為絕對值最大的負數)時,該浮點數為絕對值最大負數:數為絕對值最大負數: X絕對值最大負數絕對值最大負數= -1 122 k第第2講講 數據的機器層次表示數據的機器層次表示33 為了提高運算的精度,需要充分地為了提高運算的精度,需要充分地利用尾數的有效數位,通常采取浮點數規利用尾數的有效數位,通常采取浮點數規格化形式,即規定格化形式,即規定尾數的最高數位必須是尾數的最高數位必須是一個有效值一個有效值
31、。 1/2 |M| 12.規格化浮點數規格化浮點數第第2講講 數據的機器層次表示數據的機器層次表示342.規格化浮點數(續)規格化浮點數(續) 在尾數用補碼表示時,規格化浮點數在尾數用補碼表示時,規格化浮點數應滿足應滿足尾數最高數位與符號位不同尾數最高數位與符號位不同(ms m1 =1),),即當即當1/2M1時,應有時,應有0.1xxx形式,當形式,當-1M-1/2時,應有時,應有1.0 xxx形式。形式。 需要注意的是當需要注意的是當M=-1/2,對于原碼對于原碼來說,是規格化數,而對于補碼來說,不來說,是規格化數,而對于補碼來說,不是規格化數。是規格化數。第第2講講 數據的機器層次表示數
32、據的機器層次表示352.規格化浮點數(續)規格化浮點數(續) 當當es=1,ms=0,尾數的最高位尾數的最高位m1=1,其余各位為其余各位為0時,該浮點數為規格化的最時,該浮點數為規格化的最小正數:小正數: X規格化的最小正數規格化的最小正數=2-1 規格化的最小正數大于非規格化的最規格化的最小正數大于非規格化的最小正數小正數。k22第第2講講 數據的機器層次表示數據的機器層次表示36浮點數的典型值浮點數的典型值 第第2講講 數據的機器層次表示數據的機器層次表示372.2.3 2.2.3 浮點數階碼的移碼表示法浮點數階碼的移碼表示法 移碼就是在真值移碼就是在真值X上加一個常數(偏置上加一個常數
33、(偏置值),相當于值),相當于X在數軸上向正方向平移了一段在數軸上向正方向平移了一段距離,這就是距離,這就是“移碼移碼”一詞的來由。一詞的來由。 X移移=偏置值偏置值+X 對于字長對于字長8位的定點整數,偏置值為位的定點整數,偏置值為27。 例例11:X=1011101 X移移=27+X=10000000+1011101=11011101 X補補=01011101 例例12:X=-1011101 X移移= 27 +X=10000000-1011101=00100011 X補補=10100011第第2講講 數據的機器層次表示數據的機器層次表示38偏置值為偏置值為27的移碼、補碼和真值之間的關系的
34、移碼、補碼和真值之間的關系 第第2講講 數據的機器層次表示數據的機器層次表示39偏置值為偏置值為2n的移碼的特點的移碼的特點 在移碼中,最高位為在移碼中,最高位為“0”表示負數,表示負數,最高位為最高位為“1”表示正數。表示正數。 移碼為全移碼為全0時,它所對應的真值最小,時,它所對應的真值最小,為全為全1時,它所對應的真值最大。時,它所對應的真值最大。 真值真值0在移碼中的表示形式是唯一的,在移碼中的表示形式是唯一的,即即+0移移=-0移移=1000。 移碼把真值映射到一個正數域,所移碼把真值映射到一個正數域,所以可將移碼視為無符號數,直接按無符號數以可將移碼視為無符號數,直接按無符號數規則
35、比較大小。規則比較大小。 同一數值的移碼和補碼除最高位相同一數值的移碼和補碼除最高位相反外,其他各位相同反外,其他各位相同。第第2講講 數據的機器層次表示數據的機器層次表示40浮點數的階碼采用移碼的原因浮點數的階碼采用移碼的原因 便于比較浮點數的大小。階碼大的,其對便于比較浮點數的大小。階碼大的,其對應的真值就大,階碼小的,對應的真值就應的真值就大,階碼小的,對應的真值就小。小。 簡化機器中的判零電路。當階碼全為簡化機器中的判零電路。當階碼全為0,尾數也全為尾數也全為0時,表示機器零。時,表示機器零。第第2講講 數據的機器層次表示數據的機器層次表示412.2.2.2.4 4 浮點數尾數的基數浮
36、點數尾數的基數 浮點數尾數基數的選擇對浮點數的特性起著浮點數尾數基數的選擇對浮點數的特性起著主要作用,它既影響浮點運算的精度,也影響數主要作用,它既影響浮點運算的精度,也影響數值的表示范圍。值的表示范圍。 改變尾數基數改變尾數基數r,會使浮點數的特性有下列,會使浮點數的特性有下列影響:影響: 可表示數的范圍。可表示數的范圍。 可表示數的個數。可表示數的個數。 數在數軸上的分布。數在數軸上的分布。 可表示數的精度。可表示數的精度。 運算中的精度損失。運算中的精度損失。 運算速度。運算速度。第第2講講 數據的機器層次表示數據的機器層次表示42圖圖2-6 IEEE 754標準的浮點數格式標準的浮點數
37、格式 2.2.2.2.5 5 IEEE754IEEE754標準浮點數標準浮點數類型類型 數符數符 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階碼部分,用移碼表示尾符尾數數值位尾數部分,用原碼表示第第2講講 數據的機器層次表示數據的機器層次表示43 以短浮點數為例討論浮點代碼與其
38、真值以短浮點數為例討論浮點代碼與其真值之間的關系。最高位為數符位;其后是之間的關系。最高位為數符位;其后是8位位階碼,以階碼,以2為底,階碼的偏置值為為底,階碼的偏置值為127;其余;其余23位是尾數。為了使尾數部分能表示更多一位是尾數。為了使尾數部分能表示更多一位的有效值,位的有效值,IEEE754采用采用隱含尾數最高數隱含尾數最高數位位1(即這一位(即這一位1不表示出來)的方法,因此不表示出來)的方法,因此尾數實際上是尾數實際上是24位。應注意的是,位。應注意的是,隱含的隱含的1是一位整數(即位權為是一位整數(即位權為20),在浮點格式中,在浮點格式中表示出來的表示出來的23位尾數是純小數
39、,并用原碼表位尾數是純小數,并用原碼表示。示。2.2.2.2.5 5 IEEE754IEEE754標準浮點數(續)標準浮點數(續)第第2講講 數據的機器層次表示數據的機器層次表示44 例例13:將:將(100.25)10轉換成短浮點數格式。轉換成短浮點數格式。 十進制數十進制數二進制數二進制數 (100.25)10=(1100100.01)2 非規格化數非規格化數規格化數規格化數 1100100.01=1.1001000126 計算移碼表示的階碼(偏置值階碼真值)計算移碼表示的階碼(偏置值階碼真值) 1111111+110=10000101 以短浮點數格式存儲該數。以短浮點數格式存儲該數。 符
40、號位符號位=0 階碼階碼=10000101 尾數尾數=100100010000000000000002.2.2.2.5 5 IEEE754IEEE754標準浮點數(續)標準浮點數(續)第第2講講 數據的機器層次表示數據的機器層次表示45 短浮點數代碼為短浮點數代碼為 0;100 0010 1;100 1000 1000 0000 0000 0000 表示為十六進制的代碼:表示為十六進制的代碼:42C88000H。例例14:把短浮點數:把短浮點數C1C90000H轉換成為十進制數。轉換成為十進制數。 十六進制十六進制二進制形式,并分離出符號位、階二進制形式,并分離出符號位、階碼和尾數。碼和尾數。
41、 C1C90000H= 1;10000011;10010010000000000000000階碼階碼符號位符號位尾數尾數2.2.2.2.5 5 IEEE754IEEE754標準浮點數(續)標準浮點數(續)第第2講講 數據的機器層次表示數據的機器層次表示46 計算出階碼真值(移碼偏置值)計算出階碼真值(移碼偏置值) 10000011-1111111=100 以規格化二進制數形式寫出此數以規格化二進制數形式寫出此數 1.100100124 寫成非規格化二進制數形式寫成非規格化二進制數形式 11001.001 轉換成十進制數,并加上符號位。轉換成十進制數,并加上符號位。 (11001.001)2=(
42、25.125)10 所以,該浮點數所以,該浮點數=-25.1252.2.2.2.5 5 IEEE754IEEE754標準浮點數(續)標準浮點數(續)第第2講講 數據的機器層次表示數據的機器層次表示思考題:float型數據通常用IEEE754單精度浮點數格式表示。若編譯器將float型變量x分配在一個32位浮點寄存器FR1中,且x=-8.25,則FR1的內容是多少?分析:轉換為二進制數-1000.01,規格化、計算移碼,寫成十六進制數為C1040000H第第2講講 數據的機器層次表示數據的機器層次表示481.定點、浮點表示法的區別定點、浮點表示法的區別數值的表示范圍數值的表示范圍 假設定點數和浮
43、點數的字長相同,浮假設定點數和浮點數的字長相同,浮點表示法所能表示的數值范圍將遠遠大于點表示法所能表示的數值范圍將遠遠大于定點數。定點數。精度精度 對于字長相同的定點數和浮點數來說,對于字長相同的定點數和浮點數來說,浮點數雖然擴大了數的表示范圍,但這正浮點數雖然擴大了數的表示范圍,但這正是以降低精度為代價的,也就是數軸上各是以降低精度為代價的,也就是數軸上各點的排列更稀疏了。點的排列更稀疏了。2.2.2.2.6 6 定點、浮點表示法和定點、浮點計算機定點、浮點表示法和定點、浮點計算機第第2講講 數據的機器層次表示數據的機器層次表示49數的運算數的運算 浮點運算要比定點運算復雜得多。浮點運算要比
44、定點運算復雜得多。溢出處理溢出處理 在定點運算時,當運算結果超出數的表在定點運算時,當運算結果超出數的表示范圍,就發生溢出。而在浮點運算時,運示范圍,就發生溢出。而在浮點運算時,運算結果超出尾數的表示范圍卻并不一定溢出,算結果超出尾數的表示范圍卻并不一定溢出,只有當階碼超出所能表示的范圍時,才發生只有當階碼超出所能表示的范圍時,才發生溢出。溢出。1.定點、浮點表示法的區別(續)定點、浮點表示法的區別(續)第第2講講 數據的機器層次表示數據的機器層次表示502.定點機與浮點機定點機與浮點機通常可以將計算機分為幾檔:通常可以將計算機分為幾檔:定點機定點機 以定點運算為主,浮點運算是通過軟件以定點運
45、算為主,浮點運算是通過軟件來實現的。來實現的。定點機浮點運算部件定點機浮點運算部件 浮點運算部件是專門用于對浮點數進行浮點運算部件是專門用于對浮點數進行運算的部件。運算的部件。浮點機浮點機 具有浮點運算指令和基本的浮點運算器。具有浮點運算指令和基本的浮點運算器。第第2講講 數據的機器層次表示數據的機器層次表示512.3 2.3 非數值數據的表示非數值數據的表示 非數值數據,又稱為字符數據,通常非數值數據,又稱為字符數據,通常是指字符、字符串、圖形符號和漢字等各是指字符、字符串、圖形符號和漢字等各種數據,它們不用來表示數值的大小,一種數據,它們不用來表示數值的大小,一般情況下不對它們進行算術運算
46、。般情況下不對它們進行算術運算。第第2講講 數據的機器層次表示數據的機器層次表示522.3.1 2.3.1 字符和字符串的表示字符和字符串的表示1.ASCII字符編碼字符編碼 常見的常見的ASCII碼用七位二進制表示一個字符,碼用七位二進制表示一個字符,它包括它包括10個十進制數字(個十進制數字(09)、)、52個英文大個英文大寫和小寫字母(寫和小寫字母(AZ,az)、)、34個專用符號個專用符號和和32個控制符號,共計個控制符號,共計128個字符。個字符。 在計算機中,通常用一個字節來存放一個在計算機中,通常用一個字節來存放一個字符。字符。 在在ASCII碼表中,數字和英文字母都是按順碼表中
47、,數字和英文字母都是按順序排列的,只要知道其中一個的二進制代碼,序排列的,只要知道其中一個的二進制代碼,不要查表就可以推導出其他數字或字母的二進不要查表就可以推導出其他數字或字母的二進制代碼。制代碼。第第2講講 數據的機器層次表示數據的機器層次表示53ASCII字符編碼表字符編碼表第第2講講 數據的機器層次表示數據的機器層次表示542.字符串的存放字符串的存放 字符串是指一串連續的字符。例如,字符串是指一串連續的字符。例如,字符串字符串IF X0 THEN READ (C)。 向量存放法在存儲器中占用一片連續向量存放法在存儲器中占用一片連續的空間,每個字節存放一個字符代碼,字的空間,每個字節存
48、放一個字符代碼,字符串的所有元素(字符)在物理上是鄰接符串的所有元素(字符)在物理上是鄰接的。在字長為的。在字長為32位的存儲器,每一個主存位的存儲器,每一個主存單元可存放單元可存放4個字符,整個字符串需個字符,整個字符串需5個主個主存單元。在每個字節中實際存放的是相應存單元。在每個字節中實際存放的是相應字符的字符的ASCII碼。碼。第第2講講 數據的機器層次表示數據的機器層次表示55IFX0THENREA(C)D字符串的向量存放方案字符串的向量存放方案5449462020202030454541444852433E2928584E圖圖2-7 字符串的向量存放方案字符串的向量存放方案第第2講講
49、 數據的機器層次表示數據的機器層次表示561.漢字國標碼漢字國標碼 漢字國標碼亦可稱為漢字交換碼,漢字國標碼亦可稱為漢字交換碼,主要用于漢字信息處理系統之間或者通信主要用于漢字信息處理系統之間或者通信系統之間交換信息使用,簡稱系統之間交換信息使用,簡稱GB碼。該碼。該標準共收集常用漢字標準共收集常用漢字6 763個,另外還有個,另外還有各種圖形符號各種圖形符號682個,共計個,共計7 445個。個。 GB碼規定每個漢字、圖形符號都用碼規定每個漢字、圖形符號都用兩個字節表示,每個字節只使用低七位編兩個字節表示,每個字節只使用低七位編碼,因此最多能表示出碼,因此最多能表示出128128=16 38
50、4個漢字。個漢字。 2.3.2 2.3.2 漢字的表示漢字的表示第第2講講 數據的機器層次表示數據的機器層次表示57 區位碼將漢字編碼碼中的區位碼將漢字編碼碼中的6 763個漢個漢字分為字分為94個區,每個區中包含個區,每個區中包含94個漢字個漢字(位),區和位組成一個二維數組,每個(位),區和位組成一個二維數組,每個漢字在數組中對應一個唯一的區位碼。漢漢字在數組中對應一個唯一的區位碼。漢字的區位碼定長字的區位碼定長4位,前位,前2位表示區號,后位表示區號,后2位表示位號,區號和位號用十進制數表位表示位號,區號和位號用十進制數表示,區號從示,區號從01到到94,位號也從,位號也從01到到94。
51、例。例如,如,“中中”字在字在54區的區的48位上,其區位碼位上,其區位碼為為“54-48”,“國國”字在字在25區的區的90位上,位上,其區位碼為其區位碼為“25-90”。 2.漢字區位碼漢字區位碼第第2講講 數據的機器層次表示數據的機器層次表示58 需要注意的是:漢字區位碼并不等于漢字需要注意的是:漢字區位碼并不等于漢字國標碼,它們兩者之間的關系可用以下公式表國標碼,它們兩者之間的關系可用以下公式表示:示: 國標碼區位碼(十六進制)國標碼區位碼(十六進制)2020H 例例15:已知漢字:已知漢字“春春”的區位碼為的區位碼為“20-26”,計算它的國標碼。計算它的國標碼。 區位碼:第區位碼:
52、第1字節字節 第第2字節字節 20 26 十進制十進制 14H 1AH 十六進制十六進制 +20H +20H 國標碼:國標碼: 34H 3AH2.漢字區位碼(續)漢字區位碼(續)第第2講講 數據的機器層次表示數據的機器層次表示59 漢字在計算機內部其內碼是唯一的。因為漢字在計算機內部其內碼是唯一的。因為漢字處理系統要保證中西文的兼容,當系統中漢字處理系統要保證中西文的兼容,當系統中同時存在同時存在ASCII碼和漢字國標碼時,將會產生碼和漢字國標碼時,將會產生二義性。例如:有兩個字節的內容為二義性。例如:有兩個字節的內容為30H和和21H,它既可表示漢字它既可表示漢字“啊啊”的國標碼,又可表示西
53、的國標碼,又可表示西文文“0”和和“!”的的ASCII碼。為此,漢字機內碼碼。為此,漢字機內碼應對國標碼加以適當處理和變換。應對國標碼加以適當處理和變換。 GB碼的機內碼為二字節長的代碼,它是在碼的機內碼為二字節長的代碼,它是在相應相應GB碼的每個字節最高位上加碼的每個字節最高位上加“1”,即,即 漢字機內碼漢字國標碼漢字機內碼漢字國標碼8080H 例如,上述例如,上述“啊啊”字的國標碼是字的國標碼是3021H,其漢字機內碼則是其漢字機內碼則是B0A1H。 3.漢字機內碼漢字機內碼 第第2講講 數據的機器層次表示數據的機器層次表示60 漢字字形碼是指確定一個漢字字形點陣的代漢字字形碼是指確定一
54、個漢字字形點陣的代碼,又叫漢字字模碼或漢字輸出碼。在一個漢字碼,又叫漢字字模碼或漢字輸出碼。在一個漢字點陣中,凡筆畫所到之處,記為點陣中,凡筆畫所到之處,記為“1”,否則記為,否則記為“0”。 根據對漢字質量的不同要求,可有根據對漢字質量的不同要求,可有1616、2424、3232或或4848的點陣結構。顯然點陣的點陣結構。顯然點陣越大,輸出漢字的質量越高,每個漢字所占用的越大,輸出漢字的質量越高,每個漢字所占用的字節數也越高字節數也越高。4.漢字字形碼漢字字形碼 第第2講講 數據的機器層次表示數據的機器層次表示61 信息處理應用對字符集提出了多文種信息處理應用對字符集提出了多文種、大字量、多
55、用途的要求,解決問題的最、大字量、多用途的要求,解決問題的最佳方案是設計一種全新的編碼方法,這就佳方案是設計一種全新的編碼方法,這就是統一代碼(是統一代碼(Unicode)。)。 Unicode的基本方法是用一個的基本方法是用一個16位來表位來表示每個符號,這意味著允許表示示每個符號,這意味著允許表示65 536個不個不同的字符或符號。這種符號集被稱為基本同的字符或符號。這種符號集被稱為基本多語言平面(多語言平面(BMP),基本多語言平面的),基本多語言平面的字符編碼為字符編碼為U+hhhh,其中每個,其中每個h 代表一個代表一個十六進制數字,與十六進制數字,與UCS-2編碼完全相同。編碼完全
56、相同。2.3.3 2.3.3 統一代碼統一代碼第第2講講 數據的機器層次表示數據的機器層次表示62 UCS-4是一個更大的尚未填充完全的是一個更大的尚未填充完全的31位字符集,加上恒為位字符集,加上恒為0的首位,共需占據的首位,共需占據32位,即位,即4字節。理論上最多能表示字節。理論上最多能表示231個字個字符,完全可以涵蓋一切語言所用的符號。符,完全可以涵蓋一切語言所用的符號。目前,目前,Unicode計劃使用了計劃使用了17個平面(個平面(1個個基本語言平面和基本語言平面和16個輔助平面,一共有個輔助平面,一共有1765 536=1 114 112個碼位。個碼位。2.3.3 2.3.3
57、統一代碼(續)統一代碼(續)第第2講講 數據的機器層次表示數據的機器層次表示63微機中表示字符的微機中表示字符的3種方法種方法圖圖2-8 微機中表示字符的微機中表示字符的3種方法種方法00071531擴展ASCII字符的表示方法Unicode(UCS-2)的表示方法Unicode(UCS-4)的表示方法第第2講講 數據的機器層次表示數據的機器層次表示642.4 2.4 十進制數和數串的表示十進制數和數串的表示 十進制是人們最常用的數據表示方法,十進制是人們最常用的數據表示方法,一些通用性較強的計算機上設有十進制數據一些通用性較強的計算機上設有十進制數據的表示,可以直接對十進制數進行運算和處的表
58、示,可以直接對十進制數進行運算和處理。理。第第2講講 數據的機器層次表示數據的機器層次表示652.4.1 2.4.1 十進制數的編碼十進制數的編碼 用四位二進制數來表示一位十進制數,用四位二進制數來表示一位十進制數,稱為稱為二進制編碼的十進制數,簡稱二進制編碼的十進制數,簡稱BCD碼碼。 四位二進制數可以組合出四位二進制數可以組合出16種代碼,種代碼,能表示能表示16種不同的狀態,我們只需要使用種不同的狀態,我們只需要使用其中的其中的10種狀態,就可以表示十進制數的種狀態,就可以表示十進制數的09十個數碼,而其他的六種狀態為冗余十個數碼,而其他的六種狀態為冗余狀態。由于可以取任意的狀態。由于可
59、以取任意的10種代碼來表示種代碼來表示十個數碼,所以就可能產生多種十個數碼,所以就可能產生多種BCD編碼。編碼。BCD編碼既具有二進制數的形式,又保持編碼既具有二進制數的形式,又保持了十進制數的特點。了十進制數的特點。第第2講講 數據的機器層次表示數據的機器層次表示66幾種常見的幾種常見的BCD碼碼十進制十進制84218421 碼碼24212421 碼碼余余 3 3 碼碼0 01 12 23 34 45 56 67 78 89 900000000000100010010001000110011010001000101010101100110011101111000100010011001000
60、0000000010001001000100011001101000100101110111100110011011101111011101111111100110011010001000101010101100110011101111000100010011001101010101011101111001100第第2講講 數據的機器層次表示數據的機器層次表示671.8421碼碼 8421碼又稱為碼又稱為NBCD碼,其主要特點碼,其主要特點是:是: 它是一種有權碼,四位二進制代碼它是一種有權碼,四位二進制代碼的位權從高到低分別為的位權從高到低分別為8、4、2、1。 簡單直觀。每個代碼與它所代表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數據分析與商業智能的深度結合試題及答案
- 法學概論的個體關注點試題及答案
- 2025年行業變化對企業戰略方向的影響試題及答案
- 法學概論考試關注點及試題及答案
- 跨界融合技術應用試題及答案
- 法學概論復習攻略與試題及答案
- 云計算安全的重要性考核試題及答案
- 2025年軟考設計師復習策略試題及答案
- 網絡管理的戰略思維試題及答案
- 廊坊三中2025屆數學七下期末調研模擬試題含解析
- 口腔醫院前臺服務培訓標準
- 搬運卸貨合同協議書
- 學校“校園餐”專項整治推進工作情況匯報范文
- 2024年撫順市三支一扶考試真題
- 道德與法治教育資源整合與利用方案
- 《WEBGIS編程入門教程》課件
- 2024年合肥濱湖投資控股集團有限公司招聘真題
- 醫保基金管理專項整治部署
- 換藥術課件完整版本
- 乘法運算定律復習課1課件
- 網絡銷售授權合同范本
評論
0/150
提交評論