計(jì)算機(jī)組成原理:第2章 計(jì)算機(jī)中數(shù)據(jù)信息的表示_第1頁
計(jì)算機(jī)組成原理:第2章 計(jì)算機(jī)中數(shù)據(jù)信息的表示_第2頁
計(jì)算機(jī)組成原理:第2章 計(jì)算機(jī)中數(shù)據(jù)信息的表示_第3頁
計(jì)算機(jī)組成原理:第2章 計(jì)算機(jī)中數(shù)據(jù)信息的表示_第4頁
計(jì)算機(jī)組成原理:第2章 計(jì)算機(jī)中數(shù)據(jù)信息的表示_第5頁
已閱讀5頁,還剩146頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第2章 計(jì)算機(jī)中數(shù)據(jù)信息的表示 7/31/20221計(jì)算機(jī)內(nèi)部信息信息控制信息數(shù)據(jù)信息指令控制字?jǐn)?shù)值型數(shù)據(jù)非數(shù)值型數(shù)據(jù)定點(diǎn)數(shù)浮點(diǎn)數(shù)數(shù)字串字符與字符串漢字與漢字串7/31/20222本章學(xué)習(xí)內(nèi)容計(jì)算機(jī)中數(shù)制與數(shù)制轉(zhuǎn)換方法機(jī)器數(shù)的概念原碼、補(bǔ)碼、移碼表示及運(yùn)算方法數(shù)的定點(diǎn)與浮點(diǎn)表示及運(yùn)算方法非數(shù)值數(shù)據(jù)的表示十進(jìn)制數(shù)串的表示數(shù)據(jù)校驗(yàn)碼7/31/202232.1 數(shù)制與數(shù)制轉(zhuǎn)換任何 R 進(jìn)制數(shù) N 均可表示為(N)RK0R-m K-(m-1)R-(m-1)K0R0K1R1 KnRn R:基值。表示系數(shù)Ki可以取0,1,R-1共R個(gè)數(shù)字并且是逢R進(jìn)一的。 Ri:位權(quán)值。KiRi表示Ki在數(shù)列中所代表的實(shí)

2、際數(shù)值。任何進(jìn)位計(jì)數(shù)制都具有兩個(gè)基本因素:基值和位權(quán)值。7/31/20224計(jì)算機(jī)中常用進(jìn)位計(jì)數(shù)制二進(jìn)制數(shù)字: 0,1進(jìn)位方式: 逢二進(jìn)一 后綴:B 如10100011B八進(jìn)制數(shù)字:0,1,2,3,4,5,6,7 進(jìn)位方式: 逢八進(jìn)一后綴:O 或 Q 如137.67Q7/31/20225十進(jìn)制數(shù)字:0,1,2,3,4,5,6,7,8,9進(jìn)位方式:逢十進(jìn)一后綴:D 或 無 如1357.26十六進(jìn)制數(shù)字: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F(xiàn) 進(jìn)位方式:逢十六進(jìn)一后綴:H 如 19BF.36EH7/31/20226數(shù)制轉(zhuǎn)換原則:兩個(gè)有理數(shù)相等= 這兩個(gè)有理數(shù)的整數(shù)部分、

3、小數(shù)部分分別相等, 因此, 整數(shù)部分、小數(shù)部分 分別進(jìn)行轉(zhuǎn)換7/31/202271. 任意進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)方法:按權(quán)相加。即利用按位展開公式將系數(shù)與位權(quán)值相乘后求和。例1. 將二進(jìn)制數(shù)10110011.10111轉(zhuǎn)換為十進(jìn)制數(shù)。(10110011.10111)22725242120212324251283216210.50.1250.06250.03125(179.71875)107/31/20228例2.將八進(jìn)制數(shù)263.56轉(zhuǎn)換為十進(jìn)制數(shù)。(263.56)82826813805816821284830.6250.09375(179.71875)10例3.將十六進(jìn)制數(shù)B3.B8轉(zhuǎn)換為十進(jìn)

4、制數(shù)。(B3.B8)16B1613160B1618162111613160111618162 17630.68750.03125(179.71875)107/31/202292.十進(jìn)制數(shù)轉(zhuǎn)換為任意進(jìn)制數(shù)整數(shù)部分:除基取余 把被轉(zhuǎn)換的十進(jìn)制整數(shù)除以基數(shù)R,取其余數(shù)即為R進(jìn)制整數(shù)的最低位的數(shù)字。 再用基數(shù)R去除前次所得的商,所得余數(shù)即為R進(jìn)制整數(shù)相應(yīng)位的數(shù)字。 重復(fù),直到商為0為止。小數(shù)部分:乘基取整 把被轉(zhuǎn)換的十進(jìn)制小數(shù)乘以基數(shù)R,取乘積的整數(shù)部分作為R進(jìn)制小數(shù)的最高位的數(shù)字。 再用基數(shù)R乘前一步乘積的小數(shù)部分,取新的乘積的整數(shù)部分為R進(jìn)制小數(shù)相應(yīng)位的數(shù)字。 重復(fù),直到乘積的小數(shù)部分為。或求得所

5、要求的位數(shù)為止。7/31/202210例4. 將(233.8125)10轉(zhuǎn)換為二進(jìn)制數(shù)。整數(shù)部分 2 233 1 余數(shù) 2 116 0 2 58 0 2 29 1 2 14 0 2 7 1 2 3 1 2 1 1 0(233)10(11101001)27/31/202211小數(shù)部分 0.8125 2 1.6250 2 1.2500 2 0.5000 2 1.0000(0.8125)10(0.1101)2(233.8125)10(11101001.1101)27/31/202212例5. 將(233.8125)10轉(zhuǎn)換為十六進(jìn)制數(shù)。整數(shù)部分 16 233 9 16 14 14 0 小數(shù)部分 0.

6、8125 16 13.0000 (233.8125)10(E9.D)167/31/2022133. 二、八、十六進(jìn)制數(shù)之間的轉(zhuǎn)換因?yàn)?624,823二進(jìn)制數(shù)與八進(jìn)制數(shù)之間的轉(zhuǎn)換方法:整數(shù)部分從最低有效位開始,每三位二進(jìn)制數(shù)對應(yīng)一位八進(jìn)制數(shù),不足三位高位補(bǔ)“0”。小數(shù)部分從最高有效位開始,每三位二進(jìn)制數(shù)對應(yīng)一位八進(jìn)制數(shù),不足三位,低位補(bǔ)“0”。 二進(jìn)制與十六進(jìn)制數(shù)間的轉(zhuǎn)換方法:整數(shù)部分從最低有效位開始,每四位二進(jìn)制數(shù)對應(yīng)一位十六進(jìn)制數(shù),不足四位高位補(bǔ)“0”。小數(shù)部分從最高有效位開始,每四位二進(jìn)制數(shù)對應(yīng)一位十六進(jìn)制數(shù),不足四位,低位補(bǔ)“0”。7/31/202214例6. 將轉(zhuǎn)換(1011100.1

7、0111)2為八進(jìn)制和十六進(jìn)制數(shù)。 001011100.101110 1 3 4 . 5 6(1011100.10111)2(134.56)8 01011100.10111000 5 C . B 8(1011100.10111)2(5C.B8)167/31/2022152.2.1 機(jī)器數(shù)與真值由于計(jì)算機(jī)中的硬件電路只能直接表示和處理二進(jìn)制數(shù),所以需要研究帶符號數(shù)的符號和小數(shù)點(diǎn)在計(jì)算機(jī)中如何表示。1. 機(jī)器數(shù) 數(shù)在計(jì)算機(jī)中的二進(jìn)制表示形式。機(jī)器數(shù)的數(shù)值部分和符號均用二進(jìn)制代碼表示。2. 真值:按一般表示方法所表示的數(shù)值2.2 帶符號數(shù)的表示7/31/2022163. 機(jī)器數(shù)的特點(diǎn): 數(shù)的符號二進(jìn)

8、制代碼化?!?”代表,“1”代表,且放在數(shù)據(jù)的最高位。 小數(shù)點(diǎn)隱含在數(shù)據(jù)的某一固定位置上,不占用存儲(chǔ)空間。 每個(gè)機(jī)器數(shù)數(shù)據(jù)所占的二進(jìn)制位數(shù)受機(jī)器硬件規(guī)模的限制,與機(jī)器字長有關(guān)。超過機(jī)器字長的數(shù)值要舍去。 例如,x=+0.101100111在字長為8位的機(jī)器中表示為一個(gè)單字長的數(shù),則只能表示為01011001,最低位的兩個(gè)1無法在機(jī)器中表示。7/31/202217機(jī)器數(shù)可分為無符號數(shù):機(jī)器字長的所有二進(jìn)制位均表示數(shù)值帶符號數(shù):數(shù)值部分和符號均用二進(jìn)制代碼表示例: 8位機(jī)器數(shù)為:11011011若為無符號整數(shù),則 11011011 表示二進(jìn)制整數(shù)。其真值為 11011011(219)10若為帶符號

9、整數(shù),則最高位為符號, 1 1011011 表示二進(jìn)制整數(shù) -1011011其真值為 -1011011(-91)10思考:機(jī)器數(shù)的表示范圍?7/31/2022182.2.2 原碼表示原碼表示:保持原有的數(shù)值部分的形式不變,只將符號用二進(jìn)制代碼表示。原碼表示是最簡單的機(jī)器數(shù)表示方法。純小數(shù)原碼定義:例:0.10011001原0.10011001 0.10011001原1.100110017/31/202219純整數(shù)原碼定義:式中 n 為除符號位以外的數(shù)值部分的位數(shù)例:10011001原010011001 10011001原1100110017/31/202220例:設(shè)機(jī)器字長為8位,寫出+0.3

10、75和-0.6875的二進(jìn)制原碼表示。解: (0.375)10(0.011)2 (0.0110000)2 0.0110000原 0.0110000 (-0.6875)10(-0.1011)2 (-0.1011000)2 -0.1011000原1.10110007/31/202221例:設(shè)機(jī)器字長為8位,寫出37和37的二進(jìn)制原碼表示。解: (37)10(100101)2 (00100101)2 00100101原0010010125H (-37)10(-100101)2 (-00100101)2 -00100101原10100101=A5H可見將x原的符號取反即可得到x原 7/31/20222

11、2原碼中 0 的表示原碼中“0”有兩種表示純小數(shù)原碼 0原0.000 0原1.000純整數(shù)原碼 0原000 0原1007/31/202223原碼的左移和右移二進(jìn)制純小數(shù)的移位規(guī)則二進(jìn)制純整數(shù)的移位規(guī)則原碼的移位規(guī)則符號位不變,數(shù)值部分左移或右移,移出的空位填0 例如, x原=0.0101001和10011010 分別求2x原和1/2x原7/31/202224原碼的特點(diǎn)原碼表示直觀、易懂原碼表示中0有兩種不同的表示形式,給使用帶來了不便原碼表示的加減運(yùn)算復(fù)雜首先判斷符號位是否相同, 同號加, 異號減若符號位不同則需判斷絕對值, 絕對值大的減去絕對值小的, 符號為絕對值大的數(shù)的符號7/31/202

12、2252.2.3 補(bǔ)碼表示引入補(bǔ)碼的目的是為了解決原碼表示在加減運(yùn)算時(shí)的不便。根據(jù)運(yùn)算時(shí)“?!钡母拍?52583 (Mod 10)對于某一確定的模,某數(shù)減去一個(gè)數(shù),可以用加上那個(gè)數(shù)的負(fù)數(shù)的補(bǔ)數(shù)來代替。 x補(bǔ)Mx (Mod M)當(dāng)x0時(shí),Mx 大于M,把M丟掉,所以x補(bǔ)x ,即正數(shù)的補(bǔ)數(shù)等于其本身。當(dāng)x0時(shí),x補(bǔ)MxM|x|,所以負(fù)數(shù)的補(bǔ)數(shù)等于模與該數(shù)絕對值之差。7/31/202226補(bǔ)碼的定義在計(jì)算機(jī)中,由于數(shù)據(jù)是用二進(jìn)制編碼表示的,所以把補(bǔ)數(shù)稱為補(bǔ)碼。對于純小數(shù)表示,通常取模 M2對于純整數(shù)表示,通常取模 M2n1 (n為除符號位以外數(shù)值位的位數(shù))純小數(shù)的補(bǔ)碼定義7/31/202227純整數(shù)

13、的補(bǔ)碼定義例:x0.1011, x補(bǔ)0.1011例:x0.1011, x補(bǔ)10 x10.00000.10111.0101例:x1011, x補(bǔ)01011例:x1011, x補(bǔ)25x1000001011101017/31/202228補(bǔ)碼的求法若x0 則x補(bǔ)x,符號位為0若x0,則將x的各位取反,然后在最低位上加1,符號位等于1,即得到x補(bǔ)例:若x0.1011001 則x補(bǔ)0.1011001 若 x0.1011001 則 x補(bǔ)1.01001100.0000001 1.0100111若 x1101010 則x補(bǔ)01101010若 x1101010 則x補(bǔ)10010110簡單求補(bǔ)方法是:在取反過程中

14、,低位最后一個(gè)1不變,最后一個(gè)1后的0也都不變。7/31/202229例: x0.1001100 則x補(bǔ)0.1001100 x0.1001100 則x補(bǔ)1.0110100 x1001100 則x補(bǔ)01001100 x1001100 則x補(bǔ)101101007/31/202230補(bǔ)碼中“0”的表示是唯一的0補(bǔ)0補(bǔ)0.000 (純小數(shù))0補(bǔ)0補(bǔ)000 (純整數(shù))補(bǔ)碼表示的最小數(shù)可以表示到1或2n對于純小數(shù)1補(bǔ)2(1)1.000 (Mod 2)對于純整數(shù)2n補(bǔ)2n1(2n)1000 (Mod 2n1)7/31/202231補(bǔ)碼與原碼的關(guān)系若 x0,則x補(bǔ)x原若 x0,則將除符號位以外的x原各位取反(符

15、號位不變),然后在最低位上加1,即得到x補(bǔ)。若x0,將除符號位以外的x補(bǔ)的各位取反(符號位不變),然后在最低位上加1,即得到x原。注意:補(bǔ)碼中特殊數(shù)1(純小數(shù))和2n(純整數(shù))的表示,在原碼中沒有對應(yīng)表示。7/31/202232補(bǔ)碼與機(jī)器負(fù)數(shù)的關(guān)系在補(bǔ)碼運(yùn)算中稱 x補(bǔ) 為機(jī)器正數(shù), x補(bǔ)為機(jī)器負(fù)數(shù)已知x補(bǔ) ,將x補(bǔ)的各位(含符號位)取反,然后在最低位上加1,即得到x補(bǔ)。反之亦然。求x補(bǔ),也稱為對x補(bǔ)的求補(bǔ)例: x補(bǔ)1.0011010 x補(bǔ)0.1100110 x補(bǔ)10110010 x補(bǔ)010011107/31/202233補(bǔ)碼的移位關(guān)系補(bǔ)碼數(shù)右移規(guī)則是:符號位不變,數(shù)值位各位向右移位,移空位置補(bǔ)

16、與符號位相同的代碼。補(bǔ)碼的左移規(guī)則是:連同符號位同時(shí)左移,移空位置補(bǔ)0。如果移位后符號位與移位前符號位不一致,說明移位出錯(cuò),將有效位移出了。7/31/202234例: x補(bǔ)1.0011010 x補(bǔ)1.1001101 x補(bǔ)0.0110010 x補(bǔ)0.0011001 x補(bǔ)10110010 x補(bǔ)11011001 x補(bǔ)1.1111010 2x補(bǔ)1.1110100 x補(bǔ)10110010 2x補(bǔ)01100100 出錯(cuò)!7/31/202235補(bǔ)碼的幾何性質(zhì)當(dāng)n3時(shí) (字長為4位),純整數(shù)的補(bǔ)碼為:7/31/2022367/31/202237補(bǔ)碼的幾何性質(zhì): 正數(shù)的補(bǔ)碼就是其本身,負(fù)數(shù)的補(bǔ)碼表示的實(shí)質(zhì)是把負(fù)數(shù)

17、映像到正值區(qū)域,因此加上一個(gè)負(fù)數(shù)或減去一個(gè)正數(shù)可以用加上另一個(gè)數(shù)(補(bǔ)碼)來代替。 從表示符號的角度看,符號位的值代表了數(shù)的符號,0表示正數(shù),1表示負(fù)數(shù)。從映像值來看,符號位的值是映像值的一個(gè)數(shù)位,因此在補(bǔ)碼運(yùn)算中,符號位與數(shù)值位一樣參加運(yùn)算。補(bǔ)碼的幾何性質(zhì)說明了補(bǔ)碼運(yùn)算的基礎(chǔ)。注意:原碼運(yùn)算時(shí)符號位不能參加運(yùn)算。7/31/202238補(bǔ)碼的模補(bǔ)碼總是對確定的模而言的。如果補(bǔ)碼運(yùn)算結(jié)果超過了模,則模將自動(dòng)丟失。不能將不同位數(shù)的補(bǔ)碼直接進(jìn)行運(yùn)算。若整數(shù)補(bǔ)碼的模不同,需要進(jìn)行符號擴(kuò)展。例: x補(bǔ)y補(bǔ)01101101 1 00110011x補(bǔ)y補(bǔ)110101111011 110101111111101

18、1 1 11010010110100107/31/2022392.2.4 移碼表示移碼也稱為增碼、余碼。在計(jì)算機(jī)中,移碼主要用于表示浮點(diǎn)數(shù)的階碼。純小數(shù)移碼的定義 x移1x 1x1純整數(shù)移碼的定義 x移2nx 2nx2n由于移碼通常用于表示浮點(diǎn)數(shù)的階碼。所以主要考慮整數(shù)的移碼表示。7/31/202240例:在字長為8位的機(jī)器中,x移27x設(shè) x1100101 則 x移27110010110000000110010111100101設(shè) x1100101 則 x移2711001011000000011100101000110117/31/202241移碼的幾何性質(zhì)當(dāng)n3時(shí),純整數(shù)的移碼為: 真值

19、移碼 真值 移碼000(0) 1000 001(1) 0111001(1) 1001 010(2) 0110010(2) 1010 011(3) 0101011(3) 1011 100(4) 0100100(4) 1100 101(5) 0011101(5) 1101 110(6) 0010110(6) 1110 111(7) 0001111(7) 1111 1000(8) 00007/31/20224201234567-1-2-3-4-5-6-7-80000001001001000101011001110011000010011010110011011110111110111移碼的幾何性質(zhì)真

20、值移碼7/31/202243移碼表示的實(shí)質(zhì)是把真值映像到一個(gè)正數(shù)域,因此移碼的大小可直觀地反映真值的大小。不管正數(shù)還是負(fù)數(shù),用移碼表示時(shí),可以按無符號數(shù)比較大小。7/31/202244移碼中“0”的表示移碼中“0”的表示是唯一的0移0移100 (純整數(shù))移碼的表數(shù)范圍與補(bǔ)碼一致純整數(shù)移碼表示的最小數(shù)可以表示到2n2n移0007/31/202245移碼與補(bǔ)碼的關(guān)系補(bǔ)碼的數(shù)值部分不變,符號取反,即得移碼。反之亦然。即 x0時(shí) x移x補(bǔ)2n x0時(shí) x移x補(bǔ)2n7/31/202246不同碼制之間的轉(zhuǎn)換7/31/202247例:設(shè)某計(jì)算機(jī)的字長為8位,采用整數(shù)表示。求表中機(jī)器數(shù)在不同表示形式中對應(yīng)的十

21、進(jìn)制真值。 表示方法機(jī)器數(shù)原碼補(bǔ)碼移碼無符號數(shù)010010011010110111111111若機(jī)器數(shù)為純小數(shù),相應(yīng)的值是什么?7/31/202248例:設(shè)某計(jì)算機(jī)的字長為8位,采用整數(shù)表示。求表中機(jī)器數(shù)在不同表示形式中對應(yīng)的十進(jìn)制真值。 表示方法機(jī)器數(shù)原碼補(bǔ)碼移碼無符號數(shù)010010017373557310101101458345173111111111271127255若機(jī)器數(shù)為純小數(shù),相應(yīng)的值是什么?7/31/2022492.3 數(shù)的定點(diǎn)表示與浮點(diǎn)表示任何一個(gè)數(shù)均可表示為: (N)RSReR:基值。計(jì)算機(jī)中常用的R可取2、8、16等。S:尾數(shù)。代表數(shù)N的有效數(shù)字。計(jì)算機(jī)中一般表示為純小數(shù)

22、。e:階碼。代表數(shù)N的小數(shù)點(diǎn)的實(shí)際位置。一般表示為純整數(shù)。例:(123.45)10=12345*10-20.12345103(11011.101)20.1101110125 1101110123 0.110111012101 110111012117/31/2022502.3.1 定點(diǎn)表示定點(diǎn)表示:約定計(jì)算機(jī)中所有數(shù)據(jù)的小數(shù)點(diǎn)位置均是相同的而且是固定不變的。定點(diǎn)表示是一種階碼e的取值固定不變的機(jī)器數(shù)表示。當(dāng)采用定點(diǎn)表示時(shí),(N)RSRe 中e的取值固定不變。定點(diǎn)數(shù)有兩種表示方法。定點(diǎn)小數(shù)和定點(diǎn)整數(shù)。機(jī)器確定后,e就確定了,不能更改,也不能兩者并存。7/31/202251定點(diǎn)小數(shù)e0,表示純小數(shù)

23、,約定小數(shù)點(diǎn)在符號位與最高數(shù)值位之間。定點(diǎn)小數(shù)的格式數(shù)符尾數(shù)x0 x1 x2 xn小數(shù)點(diǎn)7/31/202252定點(diǎn)整數(shù)en,表示純整數(shù),約定小數(shù)點(diǎn)在最低有效數(shù)值位之后。定點(diǎn)整數(shù)的格式數(shù)符尾數(shù)x0 x1 x2 xn小數(shù)點(diǎn)7/31/202253從數(shù)軸中可見,最大負(fù)數(shù)到最小負(fù)數(shù),最小正數(shù)到最大正數(shù)之間以及 0,為機(jī)器數(shù)所能表達(dá)的數(shù)。0最小負(fù)數(shù)負(fù)數(shù)區(qū)機(jī)器零上溢區(qū)下溢區(qū)正數(shù)區(qū)上溢區(qū)最大負(fù)數(shù)最小正數(shù)最大正數(shù)7/31/202254機(jī)器零:小于機(jī)器數(shù)最小正數(shù),大于機(jī)器數(shù)最大負(fù)數(shù)的數(shù)。正溢出:大于機(jī)器數(shù)最大正數(shù)的數(shù)。負(fù)溢出:小于機(jī)器數(shù)最小負(fù)數(shù)的數(shù)。因?yàn)檎绯龊拓?fù)溢出都表示數(shù)的絕對值超出了機(jī)器數(shù)所能表示的最大絕對

24、值,所以稱這類數(shù)處于上溢區(qū)。因?yàn)閷儆跈C(jī)器零的數(shù)均小于機(jī)器數(shù)所能表示的最小絕對值,所以稱這類數(shù)處于下溢區(qū)。7/31/202255定點(diǎn)數(shù)的表示范圍設(shè)數(shù)據(jù)為N,機(jī)器字長為n1,其中1位符號位,n位數(shù)值位。在不同的表示方法下,所能表示的數(shù)的范圍不同。 原碼表示二進(jìn)制定點(diǎn)小數(shù)的表示范圍為: 0N12n二進(jìn)制定點(diǎn)整數(shù)的表示范圍為: 0N 2n17/31/202256機(jī)器數(shù)真值數(shù)符尾數(shù)(n位)定點(diǎn)小數(shù)定點(diǎn)整數(shù)最小正數(shù)000 012n1最大正數(shù)011 1112n2n1最大負(fù)數(shù)100 012n1最小負(fù)數(shù)111 11(12n)(2n1)定點(diǎn)原碼數(shù)的表示范圍7/31/202257(2) 補(bǔ)碼表示二進(jìn)制定點(diǎn)小數(shù)的表示

25、范圍為: 1N12n二進(jìn)制定點(diǎn)整數(shù)的表示范圍為: 2nN 2n17/31/202258定點(diǎn)補(bǔ)碼數(shù)的表示范圍機(jī)器數(shù)真值數(shù)符尾數(shù)(n位)定點(diǎn)小數(shù)定點(diǎn)整數(shù)最小正數(shù)000 012n1最大正數(shù)011 1112n2n1最大負(fù)數(shù)111 112n1最小負(fù)數(shù)100 0012n7/31/202259 移碼表示定點(diǎn)移碼數(shù)的表示范圍與定點(diǎn)補(bǔ)碼數(shù)的表示范圍相同。其表示范圍為:機(jī)器數(shù)真值數(shù)符尾數(shù)(n位)定點(diǎn)小數(shù)定點(diǎn)整數(shù)最小正數(shù)100 012n1最大正數(shù)111 1112n2n1最大負(fù)數(shù)011 112n1最小負(fù)數(shù)000 0012n7/31/202260在補(bǔ)碼和移碼表示范圍中,最小負(fù)數(shù)比原碼表示范圍大一個(gè)數(shù),“1”。以定點(diǎn)整數(shù)

26、為例,原碼和補(bǔ)碼表示范圍的數(shù)軸表示形式為:0+12n-1-1-(2n-1)111110000000100100010111原碼0+12n-1-1-(2n-1)10010000111100010111補(bǔ)碼-2n10007/31/202261比例因子的選擇與溢出在定點(diǎn)運(yùn)算中,參加運(yùn)算的數(shù)據(jù)必須是定點(diǎn)小數(shù)或定點(diǎn)整數(shù)。因此在運(yùn)算之前,必須選擇一個(gè)恰當(dāng)?shù)谋壤蜃樱瑢⑺袇⒓舆\(yùn)算的數(shù)均化成純小數(shù)或純整數(shù),然后再進(jìn)行運(yùn)算。運(yùn)算結(jié)果再根據(jù)所選的比例因子轉(zhuǎn)換成正確的值。比例因子必須選擇恰當(dāng)。選擇太大,將會(huì)影響運(yùn)算精度;選擇太小,會(huì)使運(yùn)算結(jié)果超出機(jī)器所能表示的數(shù)據(jù)范圍,即出現(xiàn)溢出。溢出:運(yùn)算結(jié)果超出機(jī)器所能表示的

27、數(shù)據(jù)范圍。7/31/202262比例因子的選擇,早期是由用戶自己進(jìn)行的。在現(xiàn)代的計(jì)算機(jī)中,比例因子的選擇是由系統(tǒng)程序(如編譯程序)完成的,對用戶往往是透明的。結(jié)論: 定點(diǎn)表示計(jì)算簡單,但數(shù)據(jù)表示范圍小,比例因子選擇困難,不適合科學(xué)計(jì)算。7/31/2022632.3.2 浮點(diǎn)表示在科學(xué)計(jì)算中,數(shù)值的分布范圍很大,如果用比例因子來處理,很難兼顧數(shù)值范圍和運(yùn)算精度的要求,為此引入了浮點(diǎn)表示法。 浮點(diǎn)表示:是指各個(gè)數(shù)的小數(shù)點(diǎn)位置不是固定不變的,而是可以浮動(dòng)的。即 (N)RSRe 中的 e 值是可變的。由于 e 的取值可變,因此在機(jī)器中必須將 e 表示出來。7/31/202264浮點(diǎn)數(shù)的表示格式浮點(diǎn)數(shù)由

28、階碼和尾數(shù)兩部分組成,階碼表示數(shù)的小數(shù)點(diǎn)實(shí)際位置,尾數(shù)表示數(shù)的有效數(shù)字?;鶖?shù)R是設(shè)計(jì)者約定的,用隱含方法表示。通常取基數(shù) R2。浮點(diǎn)數(shù)的表示格式中,包括1位數(shù)符、用 n 位純小數(shù)表示的尾數(shù)部分、1位階符和用 m 位純整數(shù)表示的階碼部分?jǐn)?shù)符階符階碼尾數(shù)1位1位m位n位7/31/202265浮點(diǎn)數(shù)的兩種表示格式在實(shí)際機(jī)器中,通常都采用后一種表示格式。7/31/202266浮點(diǎn)數(shù)的規(guī)格化表示浮點(diǎn)數(shù)采用規(guī)格化表示方法的目的: 為了提高運(yùn)算精度,充分利用尾數(shù)的有效數(shù)位,為了浮點(diǎn)數(shù)表示的唯一性。例:0.100100230.00100125為達(dá)到上述目的,需要盡可能去掉尾數(shù)中的前置“0” 。即盡量使小數(shù)點(diǎn)后

29、第一位為“1”。對于二進(jìn)制數(shù),就是要滿足7/31/202267規(guī)格化數(shù)的定義原碼表示的規(guī)格化數(shù)若S原Sf.S1S2Sn,則滿足 的數(shù)為規(guī)格化數(shù)。對于S原Sf.S1S2Sn,其規(guī)格化標(biāo)志是: S1 1即:S原0.1xxx 或 S原1.1xxx 例:S原0.1101101 和 S原1.1101101 是規(guī)格化數(shù)S原0.0101101 和 S原1.0101101 不是規(guī)格化數(shù)7/31/202268補(bǔ)碼表示的規(guī)格化數(shù)若S補(bǔ)Sf.S1S2Sn,則滿足 和 的數(shù)為規(guī)格化數(shù)。對于S補(bǔ)Sf.S1S2Sn,其規(guī)格化標(biāo)志是: SfS11即:S補(bǔ)0.1xxx 或 S補(bǔ)1.01xxx7/31/202269注意:補(bǔ)碼表

30、示的規(guī)格化數(shù)中, 不是規(guī)格化數(shù),而1是規(guī)格化數(shù)。因?yàn)?0.1,寫成補(bǔ)碼為1.1,不符合規(guī)格化規(guī)定,所以 不是規(guī)格化數(shù)。1的補(bǔ)碼是1.000,符合規(guī)格化規(guī)定,所以1是規(guī)格化數(shù)。例:S補(bǔ)0.1101101 和 S補(bǔ)1.0101101 是規(guī)格化數(shù)S補(bǔ)0.0101101 和 S補(bǔ)1.1101101 不是規(guī)格化數(shù)7/31/202270浮點(diǎn)數(shù)的表示范圍要求浮點(diǎn)數(shù)的表示范圍,實(shí)質(zhì)是求出浮點(diǎn)數(shù)所能表示的最小負(fù)數(shù)、最大負(fù)數(shù),最小正數(shù)和最大正數(shù)這四個(gè)典型數(shù)據(jù)。設(shè)浮點(diǎn)數(shù)的格式為:數(shù)符階符階碼尾數(shù)1位1位m位n位7/31/202271尾數(shù):Smin-, Smax-, Smin+, Smax+ S非max-, S非mi

31、n+階:emin-, emax-, emin+, emax+最大負(fù)數(shù)最小負(fù)數(shù)最大正數(shù)最小正數(shù)07/31/202272規(guī)格化的4個(gè)特征值7/31/202273非規(guī)格化的兩個(gè)特征值非規(guī)格化最小正數(shù):非規(guī)格化最大負(fù)數(shù):7/31/202274階碼和尾數(shù)均用原碼表示時(shí)的浮點(diǎn)數(shù)表示范圍數(shù)符階符階碼(m位)尾數(shù)(n位)真 值非規(guī)格化最小正數(shù)0111110001規(guī)格化最小正數(shù)0111111000最大正數(shù)0011111111非規(guī)格化最大負(fù)數(shù)1111110001規(guī)格化最大負(fù)數(shù)1111111000最小負(fù)數(shù)10111111117/31/202275階碼和尾數(shù)均用補(bǔ)碼表示時(shí)的浮點(diǎn)數(shù)表示范圍數(shù)符階符階碼(m位)尾數(shù)(n位

32、)真 值非規(guī)格化最小正數(shù)0100000001規(guī)格化最小正數(shù)0100001000最大正數(shù)0011111111非規(guī)格化最大負(fù)數(shù)1100001111規(guī)格化最大負(fù)數(shù)1100000111最小負(fù)數(shù)10111100007/31/202276階碼用移碼,尾數(shù)用補(bǔ)碼表示時(shí)的浮點(diǎn)數(shù)表示范圍數(shù)符階符階碼(m位)尾數(shù)(n位)真 值非規(guī)格化最小正數(shù)0000000001規(guī)格化最小正數(shù)0000001000最大正數(shù)0111111111非規(guī)格化最大負(fù)數(shù)1000001111規(guī)格化最大負(fù)數(shù)1000000111最小負(fù)數(shù)11111100007/31/202277浮點(diǎn)表示中階碼與尾數(shù)位數(shù)的選擇在浮點(diǎn)數(shù)表示中尾數(shù)的位數(shù)決定了數(shù)據(jù)表示的精度

33、。增加尾數(shù)的位數(shù)可增加有效數(shù)字位數(shù),即提高數(shù)據(jù)表示精度。階碼的位數(shù)決定了數(shù)據(jù)表示的范圍。增加階碼的位數(shù),可擴(kuò)大數(shù)據(jù)表示的范圍。因此當(dāng)字長一定的條件下,必須合理地分配階碼和尾數(shù)的位數(shù),以滿足應(yīng)用的需要。7/31/202278為了得到較高的精度和較大的數(shù)據(jù)表示范圍,在很多機(jī)器中都設(shè)置單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)等不同的浮點(diǎn)數(shù)格式。單精度浮點(diǎn)數(shù)就是用一個(gè)字長表示一個(gè)浮點(diǎn)數(shù)。雙精度浮點(diǎn)數(shù)是用二個(gè)字長表示一個(gè)浮點(diǎn)數(shù)。7/31/202279例:32位的VAX11機(jī)的浮點(diǎn)數(shù)格式單精度浮點(diǎn)數(shù) F浮點(diǎn)雙精度浮點(diǎn)數(shù) D浮點(diǎn)數(shù)符階碼尾數(shù)1位8位23位數(shù)符階碼尾數(shù)1位8位55位32位64位7/31/202280G浮點(diǎn)H

34、浮點(diǎn)數(shù)符階碼尾數(shù)1位11位52位數(shù)符階碼尾數(shù)1位15位112位64位128位7/31/202281IEEE754 浮點(diǎn)數(shù)標(biāo)準(zhǔn)二進(jìn)制浮點(diǎn)數(shù)的表示,由于不同機(jī)器所選用的基值、尾數(shù)位長度和階碼位長度不同,因此對浮點(diǎn)數(shù)表示有較大差別,這就不利于軟件在不同計(jì)算機(jī)間的移植。美國IEEE(電氣及電子工程師協(xié)會(huì))為此提出了一個(gè)從系統(tǒng)結(jié)構(gòu)角度支持浮點(diǎn)數(shù)的表示方法,稱為IEEE標(biāo)準(zhǔn)754(1EEE,1985),當(dāng)今流行的計(jì)算機(jī)幾乎都采用了這一標(biāo)準(zhǔn)。 如:80X86的浮點(diǎn)部件- 80X877/31/202282IEEE 754標(biāo)準(zhǔn)在表示浮點(diǎn)數(shù)時(shí),每個(gè)浮點(diǎn)數(shù)均由三部分組成:符號位S,指數(shù)部分E和尾數(shù)部分M。 浮點(diǎn)數(shù)可

35、采用以下四種基本格式:(1)單精度格式(32位):E8位,M23位。(2)擴(kuò)展單精度格式:E11位,M31位。(3)雙精度格式(64位):E11位,M52位。(4)擴(kuò)展雙精度格式:E15位,M63位。SEM數(shù)符 指數(shù) 尾數(shù) 7/31/202283IEEE754單精度浮點(diǎn)數(shù)格式目前廣泛采用的浮點(diǎn)數(shù)據(jù)編碼標(biāo)準(zhǔn)是IEEE754標(biāo)準(zhǔn),其中32位單精度浮點(diǎn)數(shù)表示格式為: 在IEEE 754標(biāo)準(zhǔn)中由32位單精度所表示的浮點(diǎn)數(shù) N 的數(shù)值為: 1位 8位 23位SEM數(shù)符 指數(shù) 尾數(shù) 7/31/202284S:數(shù)符,0 表示“”,1 表示“”。 E:指數(shù)即階碼部分。其中包括1位階符和7位數(shù)值。采用移127碼

36、,移碼值為127。即 階碼127實(shí)際指數(shù)值規(guī)定階碼的取值范圍為1254,階碼值255和0,用于表示特殊數(shù)值。M:共23位。由于尾數(shù)采用規(guī)格化表示,所以IEEE754標(biāo)準(zhǔn)約定在小數(shù)點(diǎn)左部有一位隱含位為1,從而使尾數(shù)的實(shí)際有效位為24位,即尾數(shù)的有效值為1.M。 7/31/202285IEEE 754標(biāo)準(zhǔn)32位單精度浮點(diǎn)數(shù)N的解釋如下: 若E0,且M0,則 N為0。若E0,且M0,則 N(-1)S2-126(0.M)。為非規(guī)格化數(shù)。若1E254,則 N(-1)S2E-127(1.M)。為規(guī)格化數(shù)。 若E255,且M0,則 NNaN (“非數(shù)值”)。若E255,且M0,則 N(1)S (無窮大)。7

37、/31/202286例:將5/32及 4120表示成IEEE754單精度格式,并用十六進(jìn)制書寫。解:(1) (5/32)10 (0.00101)21.01*2-3按IEEE754單精度格式 得:S0M0100000E127(3)124(01111100)2其機(jī)器數(shù)表示形式為:0 01111100 01000000000000000000000十六進(jìn)制形式:3E200000H 1位 8位 23位SEM數(shù)符 指數(shù) 尾數(shù) 7/31/202287(2) (4120)101000000011000 1.000000011*212 S1M00000001100E12712139(10001011)2其機(jī)器

38、數(shù)表示形式為:1 10001011 00000001100000000000000十六進(jìn)制形式:C580C000H注意:在IEEE754單精度格式中尾數(shù)默認(rèn)小數(shù)點(diǎn)前為1,即真正的尾數(shù)為1.M。階碼為移127碼,所以 階碼127實(shí)際指數(shù)值。 7/31/202288將十六進(jìn)制的IEEE單精度浮點(diǎn)數(shù)代碼42E48000轉(zhuǎn)換成十進(jìn)制數(shù)值表示42E4800001000010111001001000000000000000按IEEE754標(biāo)準(zhǔn)可寫成:0 10000101 11001001000000000000000其中符號位s0,階碼部分值e133,尾數(shù)部分f0.78515625,根據(jù)IEEE754標(biāo)準(zhǔn)

39、的表示公式,得:(-1)0(1+0.78515625)2133-1271.785156252611425 7/31/202289IEEE754雙精度浮點(diǎn)數(shù)格式64位雙精度浮點(diǎn)數(shù)表示格式為: 由64位雙精度所表示的浮點(diǎn)數(shù) N 的數(shù)值為: 1位 11位 52位SEM數(shù)符 指數(shù) 尾數(shù) 7/31/2022902.3.3 定點(diǎn)表示與浮點(diǎn)表示的比較1. 在字長相同的條件下,浮點(diǎn)表示的數(shù)據(jù)范圍大,精度高。例:對于數(shù)據(jù) N,設(shè)機(jī)器字長為16位,補(bǔ)碼表示。當(dāng)采用定點(diǎn)整數(shù)表示時(shí),有1位數(shù)符,15位尾數(shù);采用浮點(diǎn)數(shù)表示時(shí),有1位數(shù)符,1位階符,3位階碼,11位尾數(shù)。定點(diǎn)整數(shù)的表示范圍 215N1 和 1N2151

40、浮點(diǎn)數(shù)的表示范圍 127N21128 和 21128 N(1211)277/31/202291由于浮點(diǎn)數(shù)運(yùn)算中隨時(shí)對中間結(jié)果進(jìn)行規(guī)格化處理,所以減少了有效數(shù)字的丟失,提高了運(yùn)算精度。2. 浮點(diǎn)運(yùn)算算法復(fù)雜,所需設(shè)備量大,運(yùn)算速度慢。定點(diǎn)數(shù)小數(shù)點(diǎn)固定,可以直接運(yùn)算。而浮點(diǎn)數(shù)運(yùn)算需要進(jìn)行對階(對齊小數(shù)點(diǎn))與規(guī)格化,既有尾數(shù)運(yùn)算又有階碼運(yùn)算,算法復(fù)雜,因此所需設(shè)備量大,線路復(fù)雜,運(yùn)算速度也比定點(diǎn)數(shù)運(yùn)算慢。數(shù)據(jù)表示是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的重要問題,同時(shí)也是算法設(shè)計(jì)的重要問題。7/31/2022922.4 非數(shù)值型數(shù)據(jù)的表示為了處理非數(shù)值領(lǐng)域的問題,需要在計(jì)算機(jī)中引入文字、字母及一些專用符號等,以便表示文

41、字語言、邏輯語言等信息。但由于計(jì)算機(jī)硬件能夠直接識別和處理的只是“0”、“1”二進(jìn)制信息,因此在計(jì)算機(jī)中對這類數(shù)據(jù)必須用二進(jìn)制代碼來表示。非數(shù)值型數(shù)據(jù)表示:邏輯數(shù)、字符、字符串、文字及某些專用符號等的二進(jìn)制代碼。這些二進(jìn)制代碼并不表示數(shù)值,所以稱為非數(shù)值型數(shù)據(jù)或符號數(shù)據(jù)。7/31/2022932.4.1 邏輯數(shù) 二進(jìn)制串在計(jì)算機(jī)中一個(gè)邏輯數(shù)是用一個(gè)二進(jìn)制串來表示的。邏輯數(shù)具有下面幾個(gè)特點(diǎn):(1) 邏輯數(shù)沒有符號的問題。邏輯數(shù)中各位之間是相互獨(dú)立的,既沒有位權(quán)問題,也沒有進(jìn)位問題。(2) 邏輯數(shù)中的“0”與“1”不代表值的大小,僅代表一個(gè)命題的真與假、是與非等邏輯關(guān)系。(3) 邏輯數(shù)只能參加邏輯

42、運(yùn)算,并且是按位進(jìn)行的。例:1011110011117/31/2022942.4.2 字符與字符串字符與字符串?dāng)?shù)據(jù)是計(jì)算機(jī)中用得最多的符號數(shù)據(jù),它是人和計(jì)算機(jī)聯(lián)系的橋梁。為使計(jì)算機(jī)硬件能夠識別和處理字符,必須對字符按一定規(guī)則用二進(jìn)制編碼。目前廣泛使用的是 ASCII碼(美國國家信息交換標(biāo)準(zhǔn)字符碼)和EBCDIC碼(擴(kuò)展的二 十進(jìn)制交換碼)。7/31/202295ASCII碼ASCII碼是用七位二進(jìn)制表示一個(gè)字符,它包括10個(gè)數(shù)字(09),52個(gè)英文大、小寫字母(AZ,a2),33個(gè)專用字符(如,、#等)和33個(gè)控制字符(如NUL、LF、CR、DEL等)共128個(gè)字符。ASCII字符編碼符號的排

43、列次序?yàn)閎6b5b4b3b2blb0,其中b6b5b4為高位部分,b3b2blb0為低位部分。7/31/202296ASCII字符編碼表7/31/202297NUL 空 VT 垂直制表SOH 標(biāo)題開始 FF 走紙控制STX 正文結(jié)束 CR 回車ETX 本文結(jié)束 SO 移位輸出EOT 傳輸結(jié)果 SI 移位輸入ENQ 詢問 SP 空間(空格)ACK 承認(rèn) DLE 數(shù)據(jù)鏈換碼BEL 報(bào)警符 DCl 設(shè)備控制1BS 退一格 DC2 設(shè)備控制2HT 橫向列表 DC3 設(shè)備控制3LF 換行 DC4 投備控制4SYN 空轉(zhuǎn)同步 NAK 否定ETB 信息組傳送結(jié)束 FS 文字分隔符CAN 作廢 GS 組分隔符

44、EM 紙盡 RS 記錄分隔符SUB 減 US 單元分隔符ESC 換碼 DEL 作廢7/31/202298在計(jì)算機(jī)中,通常用一個(gè)字節(jié)表示一個(gè)字符。由于ASCII編碼為七位二進(jìn)制,字節(jié)的最高位的作用: 用作奇偶校驗(yàn)位,用來檢測錯(cuò)誤。 用于表示字符,形成擴(kuò)展的ASCII碼。如EBCDIC碼。EBCDIC(EstendedBinary Coded Decimal Interchange Code)是IBM公司常用的一種字符編碼。它采用八位二進(jìn)制數(shù)表示一個(gè)字符。 在我國用于區(qū)分漢字和字符。如規(guī)定字節(jié)的最高位為“0” 表示ASCII碼,為“1” 表示漢字編碼。7/31/202299 字符串字符串:連續(xù)的一

45、串字符。通常一個(gè)字符串占用主存中多個(gè)連續(xù)的字節(jié)進(jìn)行存放。字節(jié)1字節(jié)2字節(jié)LA+0A+1A+L+17/31/20221002.4.3 漢字信息的表示為使計(jì)算機(jī)能夠處理各種漢字信息,必須對漢字進(jìn)行編碼。漢字在計(jì)算機(jī)中的表示比較特殊。因?yàn)樵谟?jì)算機(jī)中使用漢字,需要涉及到漢字的輸入,存儲(chǔ)與處理、漢字的輸出等幾方面的問題,因此漢字的編碼也有多種類型。漢字輸入碼漢字機(jī)內(nèi)碼漢字交換碼漢字字形碼存儲(chǔ)處理鍵盤輸入交換漢字信息顯示、打印7/31/2022101漢字處理過程在漢字信息處理系統(tǒng)中,人們使用鍵盤把漢字以漢字輸入碼的形式輸入到計(jì)算機(jī)內(nèi),將其變換成計(jì)算機(jī)內(nèi)部表示的漢字機(jī)內(nèi)碼,進(jìn)行存儲(chǔ)和處理。處理結(jié)果,如果送往

46、終端設(shè)備或其它漢字系統(tǒng),則把漢字機(jī)內(nèi)碼變換成標(biāo)準(zhǔn)漢字交換碼,再傳送出去。如果把處理結(jié)果顯示或打印,則把漢字機(jī)內(nèi)碼變換成漢字地址碼到字庫取出漢字字形碼送往顯示器或打印機(jī)。7/31/2022102漢字輸入碼漢字輸入碼:漢字輸入操作者使用的漢字編碼。 音碼:利用漢字的字音屬性對漢字的編碼。如:全拼、雙拼、智能ABC、紫光拼音輸入法等。特點(diǎn):易記。但擊鍵次數(shù)多,重碼多,不能盲打。形碼:以漢字的筆劃和順序?yàn)榛A(chǔ)的編碼。也稱字形編碼。如:五筆字型、鄭碼等。特點(diǎn):便于快速輸入和盲打,但要經(jīng)過訓(xùn)練和記憶。7/31/2022103 音形結(jié)合碼:將音碼和形碼結(jié)合起來的編碼。如:聲韻筆形碼。數(shù)字碼:用固定數(shù)目的數(shù)字

47、來代表漢字。如:電報(bào)碼、區(qū)位碼。特點(diǎn):無重碼,輸入碼與機(jī)內(nèi)碼的轉(zhuǎn)換比較方便,但難記憶。 電報(bào)碼:用4位十進(jìn)制數(shù)字表示一個(gè)漢字。 區(qū)位碼:用數(shù)字串代表一個(gè)漢字輸入。常用的是國標(biāo)區(qū)位碼,它是將國家標(biāo)準(zhǔn)局公布的6763個(gè)兩級漢字分為94個(gè)區(qū),每個(gè)區(qū)分94位,實(shí)際上把漢字表示成二維數(shù)組,每個(gè)漢字在數(shù)組中的下標(biāo)就是區(qū)位碼。區(qū)碼和位碼各兩位十進(jìn)制數(shù)字,因此輸入一個(gè)漢字需按鍵四次。例如“中”字位于第54區(qū)48位,區(qū)位碼為5448。7/31/2022104漢字交換碼漢字交換碼:用于不同漢字系統(tǒng)間交換漢字信息,具有統(tǒng)一的標(biāo)準(zhǔn)。1981年國家標(biāo)準(zhǔn)總局公布了信息交換用漢字編碼字符集,即GB231280,簡稱國標(biāo)碼。

48、該標(biāo)準(zhǔn)共收集漢字6763個(gè),其中一級漢字3755個(gè),二級漢字3008個(gè),再加上各種圖形符號682個(gè),共計(jì)7445個(gè)。國標(biāo)碼規(guī)定每個(gè)漢字、圖形符號都用兩個(gè)字節(jié)表示,每個(gè)字節(jié)只使用最低七位。7/31/2022105漢字內(nèi)碼漢字內(nèi)碼:用于漢字信息的存儲(chǔ)、交換、檢索等操作的機(jī)內(nèi)代碼,一般采用兩個(gè)字節(jié)表示。英文字符的機(jī)內(nèi)代碼是七位的ASCII碼,當(dāng)用一個(gè)字節(jié)表示時(shí),最高位為“0”。為了與英文字符能相互區(qū)別,目前我國的計(jì)算機(jī)系統(tǒng)中漢字內(nèi)碼都是以國標(biāo)碼為基礎(chǔ),在國標(biāo)碼基礎(chǔ)上把每個(gè)字節(jié)的最高位置“1”,作為漢字標(biāo)識符。即機(jī)內(nèi)碼國標(biāo)碼8080H有些系統(tǒng)中,字節(jié)的最高位作為奇偶校驗(yàn)位,在這種情況下就用三個(gè)字節(jié)表示

49、漢字內(nèi)碼。7/31/2022106例:二進(jìn)制編碼 00111100和01000110兩個(gè)字節(jié)分別表示ASCII碼字符的“=e+1(2)在一個(gè)碼組內(nèi)為了糾正t個(gè)誤碼,要求滿足: d=2t+1碼距為1至7的碼的糾錯(cuò)和檢錯(cuò)能力 碼距碼 能 力檢錯(cuò) 糾錯(cuò)12345670 01 02 或 12 加 12 加 23 加 23 加 37/31/2022124碼距與檢錯(cuò)糾錯(cuò)的關(guān)系舉例 用1位長度的二進(jìn)制編碼 若A=1,B=0。這樣A,B之間的最小碼距為1。 合法碼:0, 1 非法碼:0, 1 此編碼的檢錯(cuò)糾錯(cuò)能力均為0,即無檢錯(cuò)糾錯(cuò)能力 假如要對A、B兩個(gè)字母進(jìn)行編碼。7/31/2022125碼距與檢錯(cuò)糾錯(cuò)的

50、關(guān)系舉例 用2位長度的二進(jìn)制編碼 可選用11、00作為合法編碼,也可以選用01、10作為合法編碼。若以A=11,B=00為例,A、B之間的最小碼距為2。 合法碼:11, 00 非法碼:01, 10 此編碼的檢錯(cuò)位數(shù)為1位,無法糾錯(cuò) 。假如要對A,B兩個(gè)字母進(jìn)行編碼。7/31/2022126碼距與檢錯(cuò)糾錯(cuò)的關(guān)系舉例 用3位長度的二進(jìn)制編碼 可選用111,000作為合法編碼。A,B之間的最小碼距為3。 合法碼:111, 000 非法碼:001, 010, 011, 100, 101, 110 此編碼的檢錯(cuò)位數(shù)為2位,糾錯(cuò)位數(shù)為1位 。假如要對A,B兩個(gè)字母進(jìn)行編碼。7/31/20221272.6.

51、1 奇偶校驗(yàn)碼奇偶校驗(yàn)碼是一種最簡單、最常用的校驗(yàn)碼,廣泛用于主存的讀寫校驗(yàn)或ASCII碼字符傳送過程中的檢查。基本原理:在n位有效信息位上增加一個(gè)二進(jìn)制位作為校驗(yàn)位,構(gòu)成n十1位的奇偶校驗(yàn)碼。校驗(yàn)位P的取值(0或1)使nl位的奇偶校驗(yàn)碼中“1”的個(gè)數(shù)為奇數(shù)(稱為奇校驗(yàn)Odd)或?yàn)榕紨?shù)(稱為偶校驗(yàn)Even)。校驗(yàn)位的位置在有效信息位的最高位之前或者在最低位之后。7/31/2022128例:A6A5A4A3A2A1A0為7位有效信息,加一個(gè)校驗(yàn)位P,構(gòu)成8位的奇偶校驗(yàn)碼為A6A5A4A3A2A1A0P 或 PA6A5A4A3A2A1A0若采用偶校驗(yàn),則: PevenA6A5A4A3A2A1A0若

52、采用奇校驗(yàn),則 Podd Peven奇偶校驗(yàn)碼的形成7/31/2022129例:求7位信息碼1100111的奇校驗(yàn)碼和偶校驗(yàn)碼(設(shè)校驗(yàn)位在最低位)。解:(1)1100111的奇校驗(yàn)碼因?yàn)?100111中“1”的個(gè)數(shù)為奇,所以奇校驗(yàn)位P0,1100111的奇校驗(yàn)碼為11001110。(2)1100111的偶校驗(yàn)碼因?yàn)?100111中“1”的個(gè)數(shù)為奇,所以偶校驗(yàn)位P1,1100111的偶校驗(yàn)碼為11001111。7/31/2022130奇偶校驗(yàn)碼的校驗(yàn)方法若接到一奇校驗(yàn)碼中“1”的個(gè)數(shù)為偶數(shù),或接到一偶校驗(yàn)碼中“1”的個(gè)數(shù)為奇數(shù),則表示有一位出錯(cuò)。以上面的七位有效信息的奇偶校驗(yàn)碼為例:偶校驗(yàn)錯(cuò):E

53、A6A5A4A3A2A1A0Peven奇校驗(yàn)錯(cuò):EA6A5A4A3A2A1A0PoddE0,表示無錯(cuò); E1,表示校驗(yàn)出錯(cuò)7/31/2022131奇偶校驗(yàn)碼的形成電路7/31/2022132奇偶校驗(yàn)碼的校驗(yàn)電路7/31/2022133奇偶校驗(yàn)碼的校錯(cuò)能力奇偶校驗(yàn)碼只能發(fā)現(xiàn)奇數(shù)位個(gè)錯(cuò)誤,而無法發(fā)現(xiàn)偶數(shù)位個(gè)錯(cuò)誤,而且即使發(fā)現(xiàn)奇數(shù)位個(gè)錯(cuò)誤也無法確定出錯(cuò)的位置;因而無法自動(dòng)糾正錯(cuò)誤。但由于現(xiàn)代計(jì)算機(jī)可靠性比較高,出錯(cuò)概率很低,而出錯(cuò)中只有一位出錯(cuò)的概率最高,因此用奇偶校驗(yàn)檢測一位出錯(cuò),能夠滿足一般可靠性要求。在CPU與主存的信息傳送過程中,奇偶校驗(yàn)被廣泛應(yīng)用。7/31/2022134課堂練習(xí)(1)假定

54、下列字符碼中有奇偶校驗(yàn)位,但沒有數(shù)據(jù)錯(cuò)誤,采用偶校驗(yàn)的字符碼是 。 A. 11001011 B. 11010110 C. 11000001 D. 11001001(2)設(shè)在7位字符碼的最高位加1位奇偶校驗(yàn)位,則下列的奇校驗(yàn)碼,出錯(cuò)的是 。 A. 11010101 B. 10010100 C. 01110000 D. 10111000答案: (1)D;(2)D7/31/2022135延展:屠夫砍人游戲 有一個(gè)屠夫抓了100人,讓他們面朝一個(gè)方向排成一堅(jiān)列,然后給這100人分別戴上帽子,帽子只有黑和白兩種顏色,屠夫是隨機(jī)給他們帶上的,且自己看不見自己帽子的顏色,也不能回頭,只能看到自己前面人的顏色

55、。 他們的視力很好,排最后的那個(gè)人(100號)可以看見前面所有人的帽子顏色,他們的聽力都很好,最前面的那個(gè)人(1號),可以聽見后面所有人說的話。屠夫會(huì)從100號開始要他猜自己帽子的顏色,如果猜中,則生;否,則死。然后又問99號,以此類推。這些人只能回答“黑”或“白”兩種答案,如果說這兩個(gè)字以外的字,所有人都得死。他們都很團(tuán)結(jié),為了能讓最多的人生存,他們愿意犧牲。問題:為了能讓盡量多的人生存,請你幫他們事先想一個(gè)方法。7/31/20221362.6.2 海明校驗(yàn)碼海明校驗(yàn)碼的實(shí)質(zhì)在奇偶校驗(yàn)的基礎(chǔ)上,增加校驗(yàn)位的位數(shù),構(gòu)成多組奇偶校驗(yàn),以便發(fā)現(xiàn)錯(cuò)誤并自動(dòng)糾正錯(cuò)誤。海明校驗(yàn)碼校驗(yàn)位數(shù)的選擇設(shè)有效信息

56、位的位數(shù)為n,校驗(yàn)位數(shù)為k,則能夠檢測一位出錯(cuò)并能自動(dòng)糾正一位錯(cuò)誤的海明校驗(yàn)碼應(yīng)滿足下面關(guān)系: 2kn+k+1 由此式可計(jì)算出具有檢1糾1錯(cuò)能力的海明校驗(yàn)碼中n與k的關(guān)系,如表2.6所示。7/31/2022137有效信息位與校驗(yàn)位的關(guān)系 7/31/2022138海明校驗(yàn)碼的編碼規(guī)則(1) n位有效信息選擇k個(gè)校驗(yàn)位,構(gòu)成n+k位的海明校驗(yàn)碼。若校驗(yàn)碼位號從左向右(或從右向左)按從1到n+k排列,則校驗(yàn)位的位號分別為2i,i0,1,2k1,有效信息位按原排列次序安排在其它位號中。 例:一個(gè)字符的ASCH碼為A6A5A4A3A2A1A0,根據(jù)表2.6選擇k4。構(gòu)成7+411位的海明校驗(yàn)碼。位號 1

57、 2 3 4 5 6 7 8 9 10 11編碼 P1 P2 A6 P4 A5 A4 A3 P8 A2 A1 A0 P1、P2、P4、P8分別為四個(gè)校驗(yàn)位,其下標(biāo)是它們在海明碼中的位號,即20、21、22、23的位置 。 7/31/2022139(2) k個(gè)校驗(yàn)位構(gòu)成k組奇偶校驗(yàn),每個(gè)有效信息位都被2個(gè)或2個(gè)以上的校驗(yàn)位校驗(yàn)。被校驗(yàn)的位號等于校驗(yàn)它的校驗(yàn)位位號之和。如上例中,A6的位號為3,31+2,所以A6被P1、P2校驗(yàn)。A3位號為7,71+2+4,所以A3被P1、P2、P4校驗(yàn)。以此方法可知每個(gè)信息位分別被哪些校驗(yàn)位校驗(yàn)。A6:P1、P2 A5:P1、P4 A4:P2、P4 A3:P1、P2、P4A2:P1、P8 A1:P2、P8A0:P1、P2、P87/31/2022140由此可得形成k個(gè)校驗(yàn)位的校驗(yàn)組 P1:A6、A5、A3、A2、A0 (第一組) P2:A6、A4、A3、A1、A0 (第二組) P4:A5、A

溫馨提示

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

評論

0/150

提交評論