![計(jì)算機(jī)中數(shù)據(jù)信息的表示_第1頁(yè)](http://file4.renrendoc.com/view/d2f19cdeebb99ea0763be2a17fada92f/d2f19cdeebb99ea0763be2a17fada92f1.gif)
![計(jì)算機(jī)中數(shù)據(jù)信息的表示_第2頁(yè)](http://file4.renrendoc.com/view/d2f19cdeebb99ea0763be2a17fada92f/d2f19cdeebb99ea0763be2a17fada92f2.gif)
![計(jì)算機(jī)中數(shù)據(jù)信息的表示_第3頁(yè)](http://file4.renrendoc.com/view/d2f19cdeebb99ea0763be2a17fada92f/d2f19cdeebb99ea0763be2a17fada92f3.gif)
![計(jì)算機(jī)中數(shù)據(jù)信息的表示_第4頁(yè)](http://file4.renrendoc.com/view/d2f19cdeebb99ea0763be2a17fada92f/d2f19cdeebb99ea0763be2a17fada92f4.gif)
![計(jì)算機(jī)中數(shù)據(jù)信息的表示_第5頁(yè)](http://file4.renrendoc.com/view/d2f19cdeebb99ea0763be2a17fada92f/d2f19cdeebb99ea0763be2a17fada92f5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)中數(shù)據(jù)信息的表示本章學(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)碼4/5/20232計(jì)算機(jī)內(nèi)部信息信息控制信息數(shù)據(jù)信息指令控制字?jǐn)?shù)值型數(shù)據(jù)非數(shù)值型數(shù)據(jù)定點(diǎn)數(shù)浮點(diǎn)數(shù)數(shù)字串字符與字符串漢字與漢字串4/5/202332.1數(shù)制與數(shù)制轉(zhuǎn)換任何R進(jìn)制數(shù)N均可表示為(N)R=K0R-m+K-(m-1)R-(m-1)+…+K0R0+K1R1+…+KnRn
=R:基值。表示系數(shù)Ki可以取0,1,…,R-1共R個(gè)數(shù)字并且是逢R進(jìn)一的。Ri:位權(quán)值。KiRi表示Ki在數(shù)列中所代表的實(shí)際數(shù)值。任何進(jìn)位計(jì)數(shù)制都具有兩個(gè)基本因素:基值和位權(quán)值。4/5/20234計(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.67Q4/5/20235十進(jìn)制數(shù)字:0,1,2,3,4,5,6,7,8,9進(jìn)位方式:逢十進(jìn)一后綴:D或無(wú)如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.36EH4/5/20236數(shù)制轉(zhuǎn)換原則:兩個(gè)有理數(shù)相等=>這兩個(gè)有理數(shù)的整數(shù)部分、小數(shù)部分分別相等,因此,整數(shù)部分、小數(shù)部分分別進(jìn)行轉(zhuǎn)換4/5/202371.任意進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)方法:按權(quán)相加。即利用按位展開(kāi)公式將系數(shù)與位權(quán)值相乘后求和。例1.將二進(jìn)制數(shù)10110011.10111轉(zhuǎn)換為十進(jìn)制數(shù)。(10110011.10111)2
=27+25+24+21+20+2-1+2-3+2-4+2-5
=128+32+16+2+1+0.5+0.125+0.0625+0.03125
=(179.71875)104/5/20238例2.將八進(jìn)制數(shù)263.56轉(zhuǎn)換為十進(jìn)制數(shù)。(263.56)8
=2×82+6×81+3×80+5×8-1+6×8-2
=128+48+3+0.625+0.09375
=(179.71875)10例3.將十六進(jìn)制數(shù)B3.B8轉(zhuǎn)換為十進(jìn)制數(shù)。(B3.B8)16
=B×161+3×160+B×16-1+8×16-2
=11×161+3×160+11×16-1+8×16-2
=176+3+0.6875+0.03125
=(179.71875)104/5/202392.十進(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ù)部分為?;蚯蟮盟蟮奈粩?shù)為止。4/5/202310例3.將(233.8125)10轉(zhuǎn)換為二進(jìn)制數(shù)。整數(shù)部分22331…余數(shù)
21160
2580
2291
2140
271
231
211
0(233)10=(11101001)24/5/202311小數(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)24/5/202312例4.將(233.8125)10轉(zhuǎn)換為十六進(jìn)制數(shù)。整數(shù)部分162339
161414
0
小數(shù)部分0.8125
×16
4.8750
×16
13.0000(233.8125)10=(E9.D)164/5/2023133.二、八、十六進(jìn)制數(shù)之間的轉(zhuǎn)換因?yàn)?6=24,8=23二進(jìn)制數(shù)與八進(jìn)制數(shù)之間的轉(zhuǎn)換方法:整數(shù)部分從最低有效位開(kāi)始,每三位二進(jìn)制數(shù)對(duì)應(yīng)一位八進(jìn)制數(shù),不足三位高位補(bǔ)“0”。小數(shù)部分從最高有效位開(kāi)始,每三位二進(jìn)制數(shù)對(duì)應(yīng)一位八進(jìn)制數(shù),不足三位,低位補(bǔ)“0”。二進(jìn)制與十六進(jìn)制數(shù)間的轉(zhuǎn)換方法:整數(shù)部分從最低有效位開(kāi)始,每四位二進(jìn)制數(shù)對(duì)應(yīng)一位十六進(jìn)制數(shù),不足四位高位補(bǔ)“0”。小數(shù)部分從最高有效位開(kāi)始,每四位二進(jìn)制數(shù)對(duì)應(yīng)一位十六進(jìn)制數(shù),不足四位,低位補(bǔ)“0”。4/5/202314例5.將轉(zhuǎn)換(1011100.10111)2為八進(jìn)制和十六進(jìn)制數(shù)。001011100.101110134.56(1011100.10111)2=(134.56)801011100.101110005C.B8(1011100.10111)2=(5C.B8)164/5/2023152.2.1機(jī)器數(shù)與真值由于計(jì)算機(jī)中的硬件電路只能直接表示和處理二進(jìn)制數(shù),所以需要研究帶符號(hào)數(shù)的符號(hào)和小數(shù)點(diǎn)在計(jì)算機(jī)中如何表示。1.機(jī)器數(shù)數(shù)在計(jì)算機(jī)中的二進(jìn)制表示形式。機(jī)器數(shù)的數(shù)值部分和符號(hào)均用二進(jìn)制代碼表示。2.真值:機(jī)器數(shù)按一般表示方法所表示的數(shù)值2.2帶符號(hào)數(shù)的表示4/5/2023163.機(jī)器數(shù)的特點(diǎn):⑴數(shù)的符號(hào)二進(jìn)制代碼化。
“0”代表+,“1”代表-,且放在數(shù)據(jù)的最高位。⑵小數(shù)點(diǎn)隱含在數(shù)據(jù)的某一固定位置上,不占用存儲(chǔ)空間。⑶每個(gè)機(jī)器數(shù)數(shù)據(jù)所占的二進(jìn)制位數(shù)受機(jī)器硬件規(guī)模的限制,與機(jī)器字長(zhǎng)有關(guān)。超過(guò)機(jī)器字長(zhǎng)的數(shù)值要舍去。4/5/202317機(jī)器數(shù)可分為無(wú)符號(hào)數(shù):機(jī)器字長(zhǎng)的所有二進(jìn)制位均表示數(shù)值帶符號(hào)數(shù):數(shù)值部分和符號(hào)均用二進(jìn)制代碼表示例:8位機(jī)器數(shù)為:11011011若為無(wú)符號(hào)整數(shù),則11011011表示二進(jìn)制整數(shù)。其真值為11011011=(219)10若為帶符號(hào)整數(shù),則最高位為符號(hào),
11011011表示二進(jìn)制整數(shù)-1011011
其真值為-1011011=(-91)104/5/202318機(jī)器數(shù)表示的數(shù)值是不連續(xù)的例如:8位二進(jìn)制無(wú)符號(hào)數(shù)可以表示256個(gè)數(shù)
00000000~11111111=0~28-18位二進(jìn)制帶符號(hào)數(shù)可以表示-127~127,共256個(gè)數(shù)。
11111111~10000000,00000000~01111111即-1111111~0和0~+1111111,其中00000000表示+0,10000000表示-04/5/2023192.2.2原碼表示原碼表示:保持原有的數(shù)值部分的形式不變,只將符號(hào)用二進(jìn)制代碼表示。原碼表示是最簡(jiǎn)單的機(jī)器數(shù)表示方法。純小數(shù)原碼定義:例:[0.10011001]原=0.10011001[-0.10011001]原=1.100110014/5/202320純整數(shù)原碼定義:式中n為除符號(hào)位以外的數(shù)值部分的位數(shù)例:[10011001]原=010011001[-10011001]原=1100110014/5/202321例:設(shè)機(jī)器字長(zhǎng)為8位,寫(xiě)出+0.375和-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.10110004/5/202322例:設(shè)機(jī)器字長(zhǎng)為8位,寫(xiě)出+37和-37的二進(jìn)制原碼表示。解:(+37)10=(100101)2=(00100101)2[00100101]原=00100101=25H(-37)10=(-100101)2=(-00100101)2[-00100101]原=10100101=A5H可見(jiàn)將[x]原的符號(hào)取反即可得到[-x]原
4/5/202323原碼中0的表示原碼中“0”有兩種表示純小數(shù)原碼[+0]原=0.00…0[-0]原=1.00…0純整數(shù)原碼[+0]原=00…0[-0]原=10…04/5/202324對(duì)于純小數(shù),n+1位原碼的數(shù)據(jù)表示范圍:-0.111…11~+0.111…11n位n位即-(1-2-n)~(1-2-n)純小數(shù)n+1位原碼中有一位是符號(hào)對(duì)于純整數(shù),n+1位原碼的數(shù)據(jù)表示范圍:-111…11~+111…11n位n位即-(2n-1)~(2n-1)純整數(shù)n+1位原碼中有一位是符號(hào)原碼的范圍4/5/202325因?yàn)樵a中“0”有兩種表示方式,
所以n+1位原碼共可表示2n+1-1個(gè)數(shù)4/5/202326原碼的移位規(guī)則符號(hào)位不變,數(shù)值部分左移或右移,移出的空位填“0”。例:[0.0110000]原=0.0110000[0.0110000]原=0.00110002×[0.0110000]原=0.1100000左移時(shí)注意不要將有效位移出,否則將會(huì)出錯(cuò)。4/5/2023272.2.3補(bǔ)碼表示引入補(bǔ)碼的目的是為了解決原碼表示在加減運(yùn)算時(shí)的不便。根據(jù)運(yùn)算時(shí)“?!钡母拍?-2=5+8=3(Mod10)對(duì)于某一確定的模,某數(shù)減去一個(gè)數(shù),可以用加上那個(gè)數(shù)的負(fù)數(shù)的補(bǔ)數(shù)來(lái)代替。[x]補(bǔ)=M+x(ModM)當(dāng)x≥0時(shí),M+x大于M,把M丟掉,所以[x]補(bǔ)=x,即正數(shù)的補(bǔ)數(shù)等于其本身。當(dāng)x<0時(shí),[x]補(bǔ)=M+x=M-|x|,所以負(fù)數(shù)的補(bǔ)數(shù)等于模與該數(shù)絕對(duì)值之差。4/5/202328補(bǔ)碼的定義在計(jì)算機(jī)中,由于數(shù)據(jù)是用二進(jìn)制編碼表示的,所以把補(bǔ)數(shù)稱(chēng)為補(bǔ)碼。對(duì)于純小數(shù)表示,通常取模M=2對(duì)于純整數(shù)表示,通常取模M=2n+1(n為除符號(hào)位以外數(shù)值位的位數(shù))純小數(shù)的補(bǔ)碼定義4/5/202329純整數(shù)的補(bǔ)碼定義例:x=+0.1011,[x]補(bǔ)=0.1011例:x=-0.1011,[x]補(bǔ)=10+x=10.0000-0.1011=1.0101例:x=+1011,[x]補(bǔ)=01011例:x=-1011,[x]補(bǔ)=25+x=100000-1011=101014/5/202330補(bǔ)碼中“0”的表示是唯一的[+0]補(bǔ)=[-0]補(bǔ)=0.00…0(純小數(shù))[+0]補(bǔ)=[-0]補(bǔ)=00…0(純整數(shù))補(bǔ)碼表示的最小數(shù)可以表示到-1或-2n對(duì)于純小數(shù)[-1]補(bǔ)=2+(-1)=1.00…0(Mod2)對(duì)于純整數(shù)[-2n]補(bǔ)=2n+1+(-2n)=100…0(Mod2n+1)4/5/202331補(bǔ)碼的范圍因?yàn)檠a(bǔ)碼可以表示-1(純小數(shù))和-2n(純整數(shù)),所以補(bǔ)碼的數(shù)據(jù)表示范圍比原碼大。[-1]補(bǔ)=1.00…0[-2n]補(bǔ)=100…0對(duì)于-1和-2n的補(bǔ)碼,符號(hào)位上的1具有特殊意義,既表示符號(hào)也表示數(shù)值。補(bǔ)碼中每一種編碼都有獨(dú)立的意義。對(duì)于n+1位補(bǔ)碼,其表示范圍為:純小數(shù)-1~1-2-n
共2n+1個(gè)數(shù)純整數(shù)-2-n~2n-1共2n+1個(gè)數(shù)4/5/202332補(bǔ)碼的求法若x≥0則[x]補(bǔ)=x,符號(hào)位為0若x<0,則將x的各位取反,然后在最低位上加1,符號(hào)位等于1,即得到[x]補(bǔ)例:若x=+0.1011001則[x]補(bǔ)=0.1011001若x=-0.1011001則[x]補(bǔ)=1.0100110+0.0000001
=1.0100111若x=+1101010則[x]補(bǔ)=01101010若x=-1101010則[x]補(bǔ)=100101104/5/202333補(bǔ)碼與原碼的關(guān)系若x≥0,則[x]補(bǔ)=[x]原若x<0,則將除符號(hào)位以外的[x]原各位取反(符號(hào)位不變),然后在最低位上加1,即得到[x]補(bǔ)。若x<0,將除符號(hào)位以外的[x]補(bǔ)的各位取反(符號(hào)位不變),然后在最低位上加1,即得到[x]原。注意:補(bǔ)碼中特殊數(shù)-1(純小數(shù))和-2n(純整數(shù))的表示,在原碼中沒(méi)有對(duì)應(yīng)表示。4/5/202334例:x=+0.1001100則[x]補(bǔ)=0.1001100x=-0.1001100則[x]補(bǔ)=1.0110100x=+1001100則[x]補(bǔ)=01001100x=-1001100則[x]補(bǔ)=101101004/5/202335補(bǔ)碼與機(jī)器負(fù)數(shù)的關(guān)系在補(bǔ)碼運(yùn)算中稱(chēng)[x]補(bǔ)為機(jī)器正數(shù),[-x]補(bǔ)為機(jī)器負(fù)數(shù)已知[x]補(bǔ),將[x]補(bǔ)的各位(含符號(hào)位)取反,然后在最低位上加1,即得到[-x]補(bǔ)。反之亦然。求[-x]補(bǔ),也稱(chēng)為對(duì)[x]補(bǔ)的求補(bǔ)例:[x]補(bǔ)=1.0011010[-x]補(bǔ)=0.1100110[x]補(bǔ)=10110010[-x]補(bǔ)=01001110簡(jiǎn)單求補(bǔ)方法是:在取反過(guò)程中,低位最后一個(gè)1不變,最后一個(gè)1后的0也都不變。4/5/202336補(bǔ)碼的移位關(guān)系補(bǔ)碼數(shù)右移規(guī)則是:符號(hào)位不變,數(shù)值位各位向右移位,移空位置補(bǔ)與符號(hào)位相同的代碼。補(bǔ)碼的左移規(guī)則是:連同符號(hào)位同時(shí)左移,移空位置補(bǔ)0。如果移位后符號(hào)位與移位前符號(hào)位不一致,說(shuō)明移位出錯(cuò),將有效位移出了。4/5/202337例:[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ò)!4/5/202338補(bǔ)碼的幾何性質(zhì)當(dāng)n=3時(shí),純整數(shù)的補(bǔ)碼為:4/5/2023394/5/202340補(bǔ)碼的幾何性質(zhì):①正數(shù)的補(bǔ)碼就是其本身,負(fù)數(shù)的補(bǔ)碼表示的實(shí)質(zhì)是把負(fù)數(shù)映像到正值區(qū)域,因此加上一個(gè)負(fù)數(shù)或減去一個(gè)正數(shù)可以用加上另一個(gè)數(shù)(補(bǔ)碼)來(lái)代替。②從表示符號(hào)的角度看,符號(hào)位的值代表了數(shù)的正確符號(hào),0表示正數(shù),1表示負(fù)數(shù)。從映像值來(lái)看,符號(hào)位的值是映像值的一個(gè)數(shù)位,因此在補(bǔ)碼運(yùn)算中,符號(hào)位與數(shù)值位一樣參加運(yùn)算。補(bǔ)碼的幾何性質(zhì)說(shuō)明了補(bǔ)碼運(yùn)算的基礎(chǔ)。注意:原碼運(yùn)算時(shí)符號(hào)位不能參加運(yùn)算。4/5/202341補(bǔ)碼的模補(bǔ)碼總是對(duì)確定的模而言的。如果補(bǔ)碼運(yùn)算結(jié)果超過(guò)了模,則模將自動(dòng)丟失。補(bǔ)碼運(yùn)算在運(yùn)算過(guò)程中,模不能改變。因?yàn)檎麛?shù)補(bǔ)碼的模不同,所以不能將不同位數(shù)的補(bǔ)碼直接進(jìn)行運(yùn)算。如需進(jìn)行運(yùn)算,需要進(jìn)行符號(hào)擴(kuò)展。例:[x]補(bǔ)+[y]補(bǔ)=0110+1101=10011=0011[x]補(bǔ)+[y]補(bǔ)=11010111+1011=
=11010111+11111011
=111010010=110100104/5/2023422.2.4反碼表示反碼實(shí)質(zhì)上是補(bǔ)碼的一個(gè)特例,其特別之處在于反碼的模比補(bǔ)碼的模小一個(gè)最低位上的1。純小數(shù)反碼的定義(n為小數(shù)點(diǎn)后的數(shù)值位數(shù))純整數(shù)反碼的定義(n為除符號(hào)外的數(shù)值位數(shù))4/5/202343反碼的求法若x≥0則[x]反=x,符號(hào)位為0若x<0,則將x的各位取反,符號(hào)位等于1,即得到[x]反。例:x=+0.1001100則[x]反=0.1001100x=-0.1001100則[x]反=1.0110011x=+1001100則[x]反=01001100x=-1001100則[x]反=101100114/5/202344反碼中“0”的表示反碼中“0”有兩種表示純小數(shù)反碼[+0]反=0.00…0[-0]反=1.11…1純整數(shù)反碼[+0]反=00…0[-0]反=11…14/5/202345反碼的范圍反碼的數(shù)據(jù)表示范圍與原碼相同。在純小數(shù)反碼中不能表示“-1”在純整數(shù)反碼中不能表示“-2n”4/5/202346若x≥0,則[x]反=[x]原若x<0,則將除符號(hào)位以外的[x]原各位取反(符號(hào)位不變),即得到[x]反。若x<0,將除符號(hào)位以外的[x]反的各位取反(符號(hào)位不變),即得到[x]原。反碼與原碼的關(guān)系4/5/2023472.2.5移碼表示移碼也稱(chēng)為增碼、余碼。在計(jì)算機(jī)中,移碼主要用于表示浮點(diǎn)數(shù)的階碼。純小數(shù)移碼的定義[x]移=1+x-1≤x<1純整數(shù)移碼的定義[x]移=2n+x-2n≤x<2n由于移碼通常用于表示浮點(diǎn)數(shù)的階碼。所以主要考慮整數(shù)的移碼表示。4/5/202348例:在字長(zhǎng)為8位的機(jī)器中,[x]移=27+x設(shè)x=+1100101則[x]移=27+1100101=10000000+1100101=11100101設(shè)x=-1100101則[x]移=27-1100101=10000000-11100101=000110114/5/202349移碼的幾何性質(zhì)當(dāng)n=3時(shí),純整數(shù)的移碼為:真值移碼真值移碼+000(+0)1000-001(-1)0111
+001(+1)1001-010(-2)0110
+010(+2)1010-011(-3)0101
+011(+3)1011-100(-4)0100
+100(+4)1100-101(-5)0011
+101(+5)1101-110(-6)0010
+110(+6)1110-111(-7)0001
+111(+7)1111-1000(-8)00004/5/20235001234567-1-2-3-4-5-6-7-80000001001001000101011001110011000010011010110011011110111110111移碼的幾何性質(zhì)真值移碼4/5/202351移碼表示的實(shí)質(zhì)是把真值映像到一個(gè)正數(shù)域,因此移碼的大小可直觀地反映真值的大小。不管正數(shù)還是負(fù)數(shù),用移碼表示時(shí),可以按無(wú)符號(hào)數(shù)比較大小。4/5/202352移碼中“0”的表示移碼中“0”的表示是唯一的[+0]移=[-0]移=10…0(純整數(shù))移碼的表數(shù)范圍與補(bǔ)碼一致純整數(shù)移碼表示的最小數(shù)可以表示到-2n4/5/202353移碼與補(bǔ)碼的關(guān)系補(bǔ)碼的數(shù)值部分不變,符號(hào)取反,即得移碼。反之亦然。即x≥0時(shí)[x]移=[x]補(bǔ)+2nx<0時(shí)[x]移=[x]補(bǔ)-2n4/5/202354不同碼制之間的轉(zhuǎn)換4/5/202355例:設(shè)某計(jì)算機(jī)的字長(zhǎng)為8位,采用整數(shù)表示。求表中機(jī)器數(shù)在不同表示形式中對(duì)應(yīng)的十進(jìn)制真值。
表示方法機(jī)器數(shù)原碼補(bǔ)碼反碼移碼無(wú)符號(hào)數(shù)01001001+73+73+73-557310101101-45-83-82+4517311111111-127-1-0+127255若機(jī)器數(shù)為純小數(shù),相應(yīng)的值是什么?4/5/2023562.3數(shù)的定點(diǎn)表示與浮點(diǎn)表示任何一個(gè)數(shù)均可表示為:
(N)R=S×ReR:基值。計(jì)算機(jī)中常用的R可取2、8、16等。S:尾數(shù)。代表數(shù)N的有效數(shù)字。計(jì)算機(jī)中一般表示為純小數(shù)。e:階碼。代表數(shù)N的小數(shù)點(diǎn)的實(shí)際位置。一般表示為純整數(shù)。例:(123.45)10=12345*10-2=0.12345×103(11011.101)2=0.11011101×25
=11011101×2-3=0.11011101×2101
=11011101×2-114/5/2023572.3.1定點(diǎn)表示定點(diǎn)表示:約定計(jì)算機(jī)中所有數(shù)據(jù)的小數(shù)點(diǎn)位置均是相同的而且是固定不變的。定點(diǎn)表示是一種階碼e的取值固定不變的機(jī)器數(shù)表示。當(dāng)采用定點(diǎn)表示時(shí),(N)R=S×Re中e的取值固定不變。定點(diǎn)數(shù)有兩種表示方法。定點(diǎn)小數(shù)和定點(diǎn)整數(shù)。機(jī)器確定后,e就確定了,不能更改,也不能兩者并存。4/5/202358定點(diǎn)小數(shù)e=0,表示純小數(shù),約定小數(shù)點(diǎn)在符號(hào)位與最高數(shù)值位之間。定點(diǎn)小數(shù)的格式數(shù)符尾數(shù)x0x1x2……xn小數(shù)點(diǎn)4/5/202359定點(diǎn)整數(shù)e=n,表示純整數(shù),約定小數(shù)點(diǎn)在最低有效數(shù)值位之后。定點(diǎn)整數(shù)的格式數(shù)符尾數(shù)x0x1x2……xn小數(shù)點(diǎn)4/5/202360定點(diǎn)數(shù)的表示范圍設(shè)數(shù)據(jù)為N,機(jī)器字長(zhǎng)為n+1,其中1位符號(hào)位,n位數(shù)值位。在不同的表示方法下,所能表示的數(shù)的范圍不同。⑴原碼表示二進(jìn)制定點(diǎn)小數(shù)的表示范圍為:0≤︱N︱≤1-2-n二進(jìn)制定點(diǎn)整數(shù)的表示范圍為:0≤︱N︱≤2n-14/5/202361機(jī)器數(shù)真值數(shù)符尾數(shù)(n位)定點(diǎn)小數(shù)定點(diǎn)整數(shù)最小正數(shù)000…01+2-n+1最大正數(shù)011…111-2-n2n-1最大負(fù)數(shù)100…01-2-n-1最小負(fù)數(shù)111…11-(1-2-n)-(2n-1)定點(diǎn)原碼數(shù)的表示范圍4/5/202362⑵反碼表示定點(diǎn)反碼數(shù)的表示范圍與定點(diǎn)原碼數(shù)的表示范圍相同。定點(diǎn)反碼表示的表示范圍為:機(jī)器數(shù)真值數(shù)符尾數(shù)(n位)定點(diǎn)小數(shù)定點(diǎn)整數(shù)最小正數(shù)000…01+2-n+1最大正數(shù)011…111-2-n2n-1最大負(fù)數(shù)111…10-2-n-1最小負(fù)數(shù)100…00-(1-2-n)-(2n-1)4/5/202363⑶補(bǔ)碼表示二進(jìn)制定點(diǎn)小數(shù)的表示范圍為:-1≤N≤1-2-n二進(jìn)制定點(diǎn)整數(shù)的表示范圍為:-2n≤N≤2n-14/5/202364定點(diǎn)補(bǔ)碼數(shù)的表示范圍機(jī)器數(shù)真值數(shù)符尾數(shù)(n位)定點(diǎn)小數(shù)定點(diǎn)整數(shù)最小正數(shù)000…01+2-n+1最大正數(shù)011…111-2-n2n-1最大負(fù)數(shù)111…11-2-n-1最小負(fù)數(shù)100…00-1-2n4/5/202365⑷移碼表示定點(diǎn)移碼數(shù)的表示范圍與定點(diǎn)補(bǔ)碼數(shù)的表示范圍相同。其表示范圍為:機(jī)器數(shù)真值數(shù)符尾數(shù)(n位)定點(diǎn)小數(shù)定點(diǎn)整數(shù)最小正數(shù)100…01+2-n+1最大正數(shù)111…111-2-n2n-1最大負(fù)數(shù)011…11-2-n-1最小負(fù)數(shù)000…00-1-2n4/5/202366在補(bǔ)碼和移碼表示范圍中,最小負(fù)數(shù)比原碼和反碼表示范圍大一個(gè)數(shù),“-1”。以定點(diǎn)整數(shù)為例,原碼和補(bǔ)碼表示范圍的數(shù)軸表示形式為:0+12n-1-1-(2n-1)11…1110…0000…0010…0100…0101…11原碼0+12n-1-1-(2n-1)10…0100…0011…1100…0101…11補(bǔ)碼-2n10…004/5/202367從數(shù)軸中可見(jiàn),最大負(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ù)4/5/202368機(jī)器零:小于機(jī)器數(shù)最小正數(shù),大于機(jī)器數(shù)最大負(fù)數(shù)的數(shù)。正溢出:大于機(jī)器數(shù)最大正數(shù)的數(shù)。負(fù)溢出:小于機(jī)器數(shù)最小負(fù)數(shù)的數(shù)。因?yàn)檎绯龊拓?fù)溢出都表示數(shù)的絕對(duì)值超出了機(jī)器數(shù)所能表示的最大絕對(duì)值,所以稱(chēng)這類(lèi)數(shù)處于上溢區(qū)。因?yàn)閷儆跈C(jī)器零的數(shù)均小于機(jī)器數(shù)所能表示的最小絕對(duì)值,所以稱(chēng)這類(lèi)數(shù)處于下溢區(qū)。4/5/202369比例因子的選擇與溢出在定點(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ī)器所能表示的數(shù)據(jù)范圍。4/5/202370例:在定點(diǎn)小數(shù)機(jī)器中計(jì)算11.01+10.01選擇比例因子2-2=0.01,可將兩操作數(shù)變換為0.1101+0.1001但0.1101+0.1001=1.0110,運(yùn)算結(jié)果不是純小數(shù),出現(xiàn)了機(jī)器數(shù)不能表示的數(shù),即出現(xiàn)了正溢出。如果選擇比例因子2-3=0.001,可將兩操作數(shù)變換為0.01101+0.01001則運(yùn)算結(jié)果0.01101+0.01001=0.10110為正常結(jié)果。將0.10110除以比例因子2-3,可得到正確結(jié)果101.104/5/202371一旦出現(xiàn)溢出,機(jī)器將無(wú)法正確表示和處理,所以機(jī)器在運(yùn)算過(guò)程中必須及時(shí)地識(shí)別和處理溢出。比例因子的選擇,早期是由用戶(hù)自己進(jìn)行的。在現(xiàn)代的計(jì)算機(jī)中,比例因子的選擇是由系統(tǒng)程序(如編譯程序)完成的,對(duì)用戶(hù)往往是透明的。結(jié)論:
定點(diǎn)表示計(jì)算簡(jiǎn)單,但數(shù)據(jù)表示范圍小,比例因子選擇困難,不適合科學(xué)計(jì)算。4/5/2023722.3.2浮點(diǎn)表示在科學(xué)計(jì)算中,數(shù)值的分布范圍很大,如果用比例因子來(lái)處理,很難兼顧數(shù)值范圍和運(yùn)算精度的要求,為此引入了浮點(diǎn)表示法。浮點(diǎn)表示:是指各個(gè)數(shù)的小數(shù)點(diǎn)位置不是固定不變的,而是可以浮動(dòng)的。即(N)R=S×Re中的e值是可變的。由于e的取值可變,因此在機(jī)器中必須將e表示出來(lái)。4/5/202373浮點(diǎn)數(shù)的表示格式浮點(diǎn)數(shù)由階碼和尾數(shù)兩部分組成,階碼表示數(shù)的小數(shù)點(diǎn)實(shí)際位置,尾數(shù)表示數(shù)的有效數(shù)字?;鶖?shù)R是設(shè)計(jì)者約定的,用隱含方法表示。通常取基數(shù)R=2。浮點(diǎn)數(shù)的表示格式中,包括1位數(shù)符、用n位純小數(shù)表示的尾數(shù)部分、1位階符和用m位純整數(shù)表示的階碼部分?jǐn)?shù)符階符階碼尾數(shù)1位1位m位n位4/5/202374浮點(diǎn)數(shù)的兩種表示格式在實(shí)際機(jī)器中,通常都采用后一種表示格式。4/5/202375浮點(diǎn)數(shù)的表示范圍以階碼與尾數(shù)均采用原碼為例:數(shù)符階符階碼(m位)尾數(shù)(n位)真值最小正數(shù)0111…1100…01最大正數(shù)0011…1111…11最大負(fù)數(shù)1111…1100…01最小負(fù)數(shù)1011…1111…114/5/202376浮點(diǎn)數(shù)的規(guī)格化表示浮點(diǎn)數(shù)采用規(guī)格化表示方法的目的:⑴為了提高運(yùn)算精度,充分利用尾數(shù)的有效數(shù)位,盡可能占滿(mǎn)位數(shù),以保留更多的有效數(shù)字。⑵為了浮點(diǎn)數(shù)表示的唯一性。例:0.100100×23=0.001001×25為達(dá)到上述目的,需要盡可能去掉尾數(shù)中的前置“0”。即盡量使小數(shù)點(diǎn)后第一位為“1”。對(duì)于二進(jìn)制數(shù),就是要滿(mǎn)足4/5/202377規(guī)格化數(shù)的定義原碼表示的規(guī)格化數(shù)若[S]原=Sf.S1S2…Sn,則滿(mǎn)足的數(shù)為規(guī)格化數(shù)。對(duì)于[S]原=Sf.S1S2…Sn,其規(guī)格化標(biāo)志是:S1=1即:[S]原=0.1xx…x或[S]原=1.1xx…x例:[S]原=0.1101101和[S]原=1.1101101是規(guī)格化數(shù)[S]原=0.0101101和[S]原=1.0101101不是規(guī)格化數(shù)4/5/202378補(bǔ)碼表示的規(guī)格化數(shù)若[S]補(bǔ)=Sf.S1S2…Sn,則滿(mǎn)足
和的數(shù)為。對(duì)于[S]補(bǔ)=Sf.S1S2…Sn,其規(guī)格化標(biāo)志是:
Sf⊕S1=1即:[S]補(bǔ)=0.1xx…x或[S]補(bǔ)=1.01xx…x4/5/202379注意:補(bǔ)碼表示的規(guī)格化數(shù)中,不是規(guī)格化數(shù),而-1是規(guī)格化數(shù)。因?yàn)椋剑?.1,寫(xiě)成補(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ù)4/5/202380浮點(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位4/5/202381尾數(shù):Smin-,Smax-,Smin+,Smax+
S非max-,S非min+階:emin-,emax-,emin+,emax+最大負(fù)數(shù)最小負(fù)數(shù)最大正數(shù)最小正數(shù)04/5/202382規(guī)格化的4個(gè)特征值4/5/202383非規(guī)格化的兩個(gè)特征值非規(guī)格化最小正數(shù):非規(guī)格化最大負(fù)數(shù):4/5/202384階碼和尾數(shù)均用原碼表示時(shí)的浮點(diǎn)數(shù)表示范圍數(shù)符階符階碼(m位)尾數(shù)(n位)真值非規(guī)格化最小正數(shù)0111…1100…01規(guī)格化最小正數(shù)0111…1110…00最大正數(shù)0011…1111…11非規(guī)格化最大負(fù)數(shù)1111…1100…01規(guī)格化最大負(fù)數(shù)1111…1110…00最小負(fù)數(shù)1011…1111…114/5/202385階碼和尾數(shù)均用補(bǔ)碼表示時(shí)的浮點(diǎn)數(shù)表示范圍數(shù)符階符階碼(m位)尾數(shù)(n位)真值非規(guī)格化最小正數(shù)0100…0000…01規(guī)格化最小正數(shù)0100…0010…00最大正數(shù)0011…1111…11非規(guī)格化最大負(fù)數(shù)1100…0011…11規(guī)格化最大負(fù)數(shù)1100…0001…11最小負(fù)數(shù)1011…1100…004/5/202386階碼用移碼,尾數(shù)用補(bǔ)碼表示時(shí)的浮點(diǎn)數(shù)表示范圍數(shù)符階符階碼(m位)尾數(shù)(n位)真值非規(guī)格化最小正數(shù)0000…0000…01規(guī)格化最小正數(shù)0000…0010…00最大正數(shù)0111…1111…11非規(guī)格化最大負(fù)數(shù)1000…0011…11規(guī)格化最大負(fù)數(shù)1000…0001…11最小負(fù)數(shù)1111…1100…004/5/202387浮點(diǎn)數(shù)采用規(guī)格化的好處①保證了浮點(diǎn)數(shù)表示唯一性。②充分利用了尾數(shù)的位數(shù),增加了有效數(shù)的位數(shù),提高了數(shù)據(jù)表示的精度。4/5/202388浮點(diǎn)表示中階碼與尾數(shù)位數(shù)的選擇在浮點(diǎn)數(shù)表示中尾數(shù)的位數(shù)決定了數(shù)據(jù)表示的精度。增加尾數(shù)的位數(shù)可增加有效數(shù)字位數(shù),即提高數(shù)據(jù)表示精度。階碼的位數(shù)決定了數(shù)據(jù)表示的范圍。增加階碼的位數(shù),可擴(kuò)大數(shù)據(jù)表示的范圍。因此當(dāng)字長(zhǎng)一定的條件下,必須合理地分配階碼和尾數(shù)的位數(shù),以滿(mǎn)足應(yīng)用的需要。4/5/202389為了得到較高的精度和較大的數(shù)據(jù)表示范圍,在很多機(jī)器中都設(shè)置單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)等不同的浮點(diǎn)數(shù)格式。單精度浮點(diǎn)數(shù)就是用一個(gè)字長(zhǎng)表示一個(gè)浮點(diǎn)數(shù)。雙精度浮點(diǎn)數(shù)是用二個(gè)字長(zhǎng)表示一個(gè)浮點(diǎn)數(shù)。4/5/202390例:32位的VAX-11機(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位4/5/202391G浮點(diǎn)H浮點(diǎn)數(shù)符階碼尾數(shù)1位11位52位數(shù)符階碼尾數(shù)1位15位112位64位128位4/5/202392IEEE754浮點(diǎn)數(shù)標(biāo)準(zhǔn)二進(jìn)制浮點(diǎn)數(shù)的表示,由于不同機(jī)器所選用的基值、尾數(shù)位長(zhǎng)度和階碼位長(zhǎng)度不同,因此對(duì)浮點(diǎn)數(shù)表示有較大差別,這就不利于軟件在不同計(jì)算機(jī)間的移植。美國(guó)IEEE(電氣及電子工程師協(xié)會(huì))為此提出了一個(gè)從系統(tǒng)結(jié)構(gòu)角度支持浮點(diǎn)數(shù)的表示方法,稱(chēng)為IEEE標(biāo)準(zhǔn)754(1EEE,1985),當(dāng)今流行的計(jì)算機(jī)幾乎都采用了這一標(biāo)準(zhǔn)。如:80X86的浮點(diǎn)部件--》80X874/5/202393IEEE754標(biāo)準(zhǔn)在表示浮點(diǎn)數(shù)時(shí),每個(gè)浮點(diǎn)數(shù)均由三部分組成:符號(hào)位S,指數(shù)部分E和尾數(shù)部分M。浮點(diǎn)數(shù)可采用以下四種基本格式:(1)單精度格式(32位):E=8位,M=23位。(2)擴(kuò)展單精度格式:E≥11位,M=31位。(3)雙精度格式(64位):E=11位,M=52位。(4)擴(kuò)展雙精度格式:E≥15位,M≥63位。SEM數(shù)符指數(shù)尾數(shù)4/5/202394IEEE754單精度浮點(diǎn)數(shù)格式目前廣泛采用的浮點(diǎn)數(shù)據(jù)編碼標(biāo)準(zhǔn)是IEEE754標(biāo)準(zhǔn),其中32位單精度浮點(diǎn)數(shù)表示格式為:
在IEEE754標(biāo)準(zhǔn)中由32位單精度所表示的浮點(diǎn)數(shù)N的數(shù)值為:
1位8位23位SEM數(shù)符指數(shù)尾數(shù)4/5/202395S:數(shù)符,0表示“+”,1表示“-”。E:指數(shù)即階碼部分。其中包括1位階符和7位數(shù)值。采用移127碼,移碼值為127。即階碼=127+實(shí)際指數(shù)值規(guī)定階碼的取值范圍為1~254,階碼值255和0,用于表示特殊數(shù)值。M:共23位。由于尾數(shù)采用規(guī)格化表示,所以IEEE754標(biāo)準(zhǔn)約定在小數(shù)點(diǎn)左部有一位隱含位為1,從而使尾數(shù)的實(shí)際有效位為24位,即尾數(shù)的有效值為1.M。
4/5/202396IEEE754標(biāo)準(zhǔn)32位單精度浮點(diǎn)數(shù)N的解釋如下:若E=0,且M=0,則N為0。若E=0,且M≠0,則N=(-1)S·2-126·(0.M)。為非規(guī)格化數(shù)。若1≤E≤254,則N=(-1)S·2E-127·(1.M)。為規(guī)格化數(shù)。若E=255,且M≠0,則N=NaN(“非數(shù)值”)。若E=255,且M=0,則N=(-1)S∞(無(wú)窮大)。4/5/202397IEEE754標(biāo)準(zhǔn)使0有了精確表示,同時(shí)也明確地表示了無(wú)窮大。當(dāng)a/0(a≠0)時(shí)得到的結(jié)果為±∞;當(dāng)0/0時(shí)得到的結(jié)果為NaN。對(duì)于絕對(duì)值較小的數(shù),為了避免下溢而損失精度,允許采用比最小規(guī)格化數(shù)還要小的非規(guī)格化數(shù)來(lái)表示。應(yīng)該注意的是,非規(guī)格化數(shù)和正、負(fù)零的隱含值不是“1”而是“0”。
4/5/202398IEEE754單精度浮點(diǎn)數(shù)的特征特征符號(hào)位1指數(shù)位8尾數(shù)位23總位數(shù)32指數(shù)系統(tǒng)移碼127指數(shù)取值范圍-126~+127最小規(guī)格化數(shù)2-126最大規(guī)格化數(shù)2+128十進(jìn)制范圍10-38~+10+38最小非規(guī)格化數(shù)10-454/5/202399例:將5/32及-4120表示成IEEE754單精度格式,并用十六進(jìn)制書(shū)寫(xiě)。解:(1)(5/32)10=(0.00101)2=1.01*2-3按IEEE754單精度格式得:S=0M=01000…00E=127+(-3)=124=(01111100)2其機(jī)器數(shù)表示形式為:十六進(jìn)制形式:3E200000H4/5/2023100(2)(-4120)10=-=-1.000000011*212
S=1M=000000011…00E=127+12=139=(10001011)2其機(jī)器數(shù)表示形式為:十六進(jìn)制形式:C580C000H注意:在IEEE754單精度格式中尾數(shù)默認(rèn)小數(shù)點(diǎn)前為1,即真正的尾數(shù)為1.M。階碼為移127碼,所以階碼=127+實(shí)際指數(shù)值。
4/5/2023101將十六進(jìn)制的IEEE單精度浮點(diǎn)數(shù)代碼42E48000轉(zhuǎn)換成十進(jìn)制數(shù)值表示42按IEEE754標(biāo)準(zhǔn)可寫(xiě)成:其中符號(hào)位s=0,階碼部分值e=133,尾數(shù)部分
f=0.78515625,根據(jù)IEEE754標(biāo)準(zhǔn)的表示公式,得:(-1)0×(1+0.78515625)×2133-127=1.78515625×26=114.25
4/5/2023102IEEE754雙精度浮點(diǎn)數(shù)格式64位雙精度浮點(diǎn)數(shù)表示格式為:
由64位雙精度所表示的浮點(diǎn)數(shù)N的數(shù)值為:
1位11位52位SEM數(shù)符指數(shù)尾數(shù)4/5/2023103IEEE754雙精度浮點(diǎn)數(shù)的特征特征符號(hào)位1指數(shù)位11尾數(shù)位52總位數(shù)32指數(shù)系統(tǒng)移碼1023指數(shù)取值范圍-1022~+1023最小規(guī)格化數(shù)2-1022最大規(guī)格化數(shù)2+1024十進(jìn)制范圍10-308~+10+308最小非規(guī)格化數(shù)10-3244/5/20231042.3.3定點(diǎn)表示與浮點(diǎn)表示的比較1.在字長(zhǎng)相同的條件下,浮點(diǎn)表示的數(shù)據(jù)范圍大,精度高。例:對(duì)于數(shù)據(jù)N,設(shè)機(jī)器字長(zhǎng)為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ù)的表示范圍-215≤N≤-1和+1≤N≤215-1浮點(diǎn)數(shù)的表示范圍-1×27≤N≤-2-11×2-8
和2-11×2-8≤N≤(1-2-11)×274/5/2023105由于浮點(diǎn)數(shù)運(yùn)算中隨時(shí)對(duì)中間結(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)行對(duì)階(對(duì)齊小數(shù)點(diǎn))與規(guī)格化,既有尾數(shù)運(yùn)算又有階碼運(yùn)算,算法復(fù)雜,因此所需設(shè)備量大,線(xiàn)路復(fù)雜,運(yùn)算速度也比定點(diǎn)數(shù)運(yùn)算慢。數(shù)據(jù)表示是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的重要問(wèn)題,同時(shí)也是算法設(shè)計(jì)的重要問(wèn)題。4/5/20231062.4非數(shù)值型數(shù)據(jù)的表示為了處理非數(shù)值領(lǐng)域的問(wèn)題,需要在計(jì)算機(jī)中引入文字、字母及一些專(zhuān)用符號(hào)等,以便表示文字語(yǔ)言、邏輯語(yǔ)言等信息。但由于計(jì)算機(jī)硬件能夠直接識(shí)別和處理的只是“0”、“1”二進(jìn)制信息,因此在計(jì)算機(jī)中對(duì)這類(lèi)數(shù)據(jù)必須用二進(jìn)制代碼來(lái)表示。非數(shù)值型數(shù)據(jù)表示:邏輯數(shù)、字符、字符串、文字及某些專(zhuān)用符號(hào)等的二進(jìn)制代碼。這些二進(jìn)制代碼并不表示數(shù)值,所以稱(chēng)為非數(shù)值型數(shù)據(jù)或符號(hào)數(shù)據(jù)。4/5/20231072.4.1邏輯數(shù)——二進(jìn)制串在計(jì)算機(jī)中一個(gè)邏輯數(shù)是用一個(gè)二進(jìn)制串來(lái)表示的。邏輯數(shù)具有下面幾個(gè)特點(diǎn):(1)邏輯數(shù)沒(méi)有符號(hào)的問(wèn)題。邏輯數(shù)中各位之間是相互獨(dú)立的,既沒(méi)有位權(quán)問(wèn)題,也沒(méi)有進(jìn)位問(wèn)題。(2)邏輯數(shù)中的“0”與“1”不代表值的大小,僅代表一個(gè)命題的真與假、是與非等邏輯關(guān)系。(3)邏輯數(shù)只能參加邏輯運(yùn)算,并且是按位進(jìn)行的。例:1011+1100=11114/5/20231082.4.2字符與字符串字符與字符串?dāng)?shù)據(jù)是計(jì)算機(jī)中用得最多的符號(hào)數(shù)據(jù),它是人和計(jì)算機(jī)聯(lián)系的橋梁。為使計(jì)算機(jī)硬件能夠識(shí)別和處理字符,必須對(duì)字符按一定規(guī)則用二進(jìn)制編碼。目前廣泛使用的是ASCII碼(美國(guó)國(guó)家信息交換標(biāo)準(zhǔn)字符碼)和EBCDIC碼(擴(kuò)展的二—十進(jìn)制交換碼)。4/5/2023109ASCII碼ASCII碼是用七位二進(jìn)制表示一個(gè)字符,它包括10個(gè)數(shù)字(0~9),52個(gè)英文大、小寫(xiě)字母(A~Z,a~2),33個(gè)專(zhuān)用字符(如,、%、#等)和33個(gè)控制字符(如NUL、LF、CR、DEL等)共128個(gè)字符。ASCII字符編碼符號(hào)的排列次序?yàn)閎6b5b4b3b2blb0,其中b6b5b4為高位部分,b3b2blb0為低位部分。4/5/2023110ASCII字符編碼表4/5/2023111NUL空VT垂直制表SOH標(biāo)題開(kāi)始FF走紙控制STX正文結(jié)束CR回車(chē)ETX本文結(jié)束SO移位輸出EOT傳輸結(jié)果SI移位輸入ENQ詢(xún)問(wèn)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組分隔符EM紙盡RS記錄分隔符SUB減US單元分隔符ESC換碼DEL作廢4/5/2023112在計(jì)算機(jī)中,通常用一個(gè)字節(jié)表示一個(gè)字符。由于ASCII編碼為七位二進(jìn)制,字節(jié)的最高位的作用:①用作奇偶校驗(yàn)位,用來(lái)檢測(cè)錯(cuò)誤。②用于表示字符,形成擴(kuò)展的ASCII碼。如EBCDIC碼。EBCDIC(EstendedBinaryCodedDecimalInterchangeCode)是IBM公司常用的一種字符編碼。它采用八位二進(jìn)制數(shù)表示一個(gè)字符。③在我國(guó)用于區(qū)分漢字和字符。如規(guī)定字節(jié)的最高位為“0”表示ASCII碼,為“1”表示漢字編碼。4/5/2023113字符串字符串:連續(xù)的一串字符。通常一個(gè)字符串占用主存中多個(gè)連續(xù)的字節(jié)進(jìn)行存放。字節(jié)1字節(jié)2字節(jié)LA+0A+1A+L+1┇┇4/5/2023114一個(gè)字符串在主存中按字節(jié)編址存放時(shí),既可以從低位字節(jié)向高位字節(jié)的順序存放,也可從高位字節(jié)向低位字節(jié)的順序存放。當(dāng)主存字由多個(gè)字節(jié)組成時(shí),在同一個(gè)主存字中,字符串既可以從低位字節(jié)向高位字節(jié)的順序存放,也可按從高位字節(jié)向低位字節(jié)的順序存放。不同的機(jī)器選用不同的方式。4/5/2023115例:IF
A>B
THEN
READ
(K)這一字符串包括空格在內(nèi)共有20個(gè)字符。如果在按字節(jié)編址的內(nèi)存中存放,可以按照從低地址字節(jié)單元到高地址字節(jié)單元或從高地址字節(jié)單元到低地址字節(jié)單元的順序存放。如果主存字長(zhǎng)為32位,則字符串在每個(gè)主存字中可以有兩種存放方式。⑴從低位字節(jié)向高位字節(jié)順序存放⑵從高位字節(jié)向低位字節(jié)順序存放4/5/2023116從低字節(jié)向高字節(jié)順序存放A+0HIA+1HFA+2HA+3HAA+4H>A+5HBA+6HA+7HTA+8HHA+9HEAFIA+0HTB>A+4H
NEHA+8HDAERA+CH)k(
A+10HA+AHNA+BH
A+CHRA+DHEA+EHAA+FHDA+10HA+11H(A+12HKA+13H)按字節(jié)編址按字編址32104/5/2023117從高字節(jié)向低字節(jié)順序存放A+0H)A+1HKA+2H(A+3H
A+4HDA+5HAA+6HEA+7HRA+8H
A+9HNIF
AA+0H>B
TA+4HHEN
A+8HREADA+CH
(K)A+10HA+AHEA+BHHA+CHTA+DH
A+EHBA+FH>A+10HAA+11H
A+12HFA+13HI按字節(jié)編址按字編址32104/5/20231182.4.3漢字信息的表示為使計(jì)算機(jī)能夠處理各種漢字信息,必須對(duì)漢字進(jìn)行編碼。漢字在計(jì)算機(jī)中的表示比較特殊。因?yàn)樵谟?jì)算機(jī)中使用漢字,需要涉及到漢字的輸入,存儲(chǔ)與處理、漢字的輸出等幾方面的問(wèn)題,因此漢字的編碼也有多種類(lèi)型。漢字輸入碼漢字機(jī)內(nèi)碼漢字交換碼漢字字形碼存儲(chǔ)處理鍵盤(pán)輸入交換漢字信息顯示、打印4/5/2023119漢字處理過(guò)程在漢字信息處理系統(tǒng)中,人們使用鍵盤(pán)把漢字以漢字輸入碼的形式輸入到計(jì)算機(jī)內(nèi),將其變換成計(jì)算機(jī)內(nèi)部表示的漢字機(jī)內(nèi)碼,進(jìn)行存儲(chǔ)和處理。處理結(jié)果,如果送往終端設(shè)備或其它漢字系統(tǒng),則把漢字機(jī)內(nèi)碼變換成標(biāo)準(zhǔn)漢字交換碼,再傳送出去。如果把處理結(jié)果顯示或打印,則把漢字機(jī)內(nèi)碼變換成漢字地址碼到字庫(kù)取出漢字字形碼送往顯示器或打印機(jī)。4/5/2023120漢字輸入碼漢字輸入碼:漢字輸入操作者使用的漢字編碼。⑴音碼:利用漢字的字音屬性對(duì)漢字的編碼。如:全拼、雙拼、智能ABC、紫光拼音輸入法等。特點(diǎn):易記。但擊鍵次數(shù)多,重碼多,不能盲打。⑵形碼:以漢字的筆劃和順序?yàn)榛A(chǔ)的編碼。也稱(chēng)字形編碼。如:五筆字型、鄭碼等。特點(diǎn):便于快速輸入和盲打,但要經(jīng)過(guò)訓(xùn)練和記憶。4/5/2023121⑶音形結(jié)合碼:將音碼和形碼結(jié)合起來(lái)的編碼。如:聲韻筆形碼。數(shù)字碼:用固定數(shù)目的數(shù)字來(lái)代表漢字。如:電報(bào)碼、區(qū)位碼。特點(diǎn):無(wú)重碼,輸入碼與機(jī)內(nèi)碼的轉(zhuǎn)換比較方便,但難記憶。①電報(bào)碼:用4位十進(jìn)制數(shù)字表示一個(gè)漢字。②區(qū)位碼:用數(shù)字串代表一個(gè)漢字輸入。常用的是國(guó)標(biāo)區(qū)位碼,它是將國(guó)家標(biāo)準(zhǔn)局公布的6763個(gè)兩級(jí)漢字分為94個(gè)區(qū),每個(gè)區(qū)分94位,實(shí)際上把漢字表示成二維數(shù)組,每個(gè)漢字在數(shù)組中的下標(biāo)就是區(qū)位碼。區(qū)碼和位碼各兩位十進(jìn)制數(shù)字,因此輸入一個(gè)漢字需按鍵四次。例如“中”字位于第54區(qū)48位,區(qū)位碼為5448。4/5/2023122漢字交換碼漢字交換碼:用于不同漢字系統(tǒng)間交換漢字信息,具有統(tǒng)一的標(biāo)準(zhǔn)。1981年國(guó)家標(biāo)準(zhǔn)總局公布了《信息交換用漢字編碼字符集》,即GB2312—80,簡(jiǎn)稱(chēng)國(guó)標(biāo)碼。該標(biāo)準(zhǔn)共收集漢字6763個(gè),其中一級(jí)漢字3755個(gè),二級(jí)漢字3008個(gè),再加上各種圖形符號(hào)682個(gè),共計(jì)7445個(gè)。國(guó)標(biāo)碼規(guī)定每個(gè)漢字、圖形符號(hào)都用兩個(gè)字節(jié)表示,每個(gè)字節(jié)只使用最低七位。4/5/2023123漢字內(nèi)碼漢字內(nèi)碼:用于漢字信息的存儲(chǔ)、交換、檢索等操作的機(jī)內(nèi)代碼,一般采用兩個(gè)字節(jié)表示。英文字符的機(jī)內(nèi)代碼是七位的ASCII碼,當(dāng)用一個(gè)字節(jié)表示時(shí),最高位為“0”。為了與英文字符能相互區(qū)別,目前我國(guó)的計(jì)算機(jī)系統(tǒng)中漢字內(nèi)碼都是以國(guó)標(biāo)碼為基礎(chǔ),在國(guó)標(biāo)碼基礎(chǔ)上把每個(gè)字節(jié)的最高位置“1”,作為漢字標(biāo)識(shí)符。即機(jī)內(nèi)碼=國(guó)標(biāo)碼+8080H有些系統(tǒng)中,字節(jié)的最高位作為奇偶校驗(yàn)位,在這種情況下就用三個(gè)字節(jié)表示漢字內(nèi)碼。4/5/2023124例:二進(jìn)制編碼00111100和01000110兩個(gè)字節(jié)分別表示ASCII碼字符的“<”和“F”。二進(jìn)制編碼10111100和11000110兩個(gè)字節(jié)一起表示一個(gè)漢字的內(nèi)碼。這兩個(gè)字節(jié)是漢字“計(jì)”的漢字內(nèi)碼。4/5/2023125漢字字形碼字形碼:用點(diǎn)陣表示的漢字字形代碼,它是漢字的輸出形式。又稱(chēng)字模。根據(jù)漢字輸出的要求不同,點(diǎn)陣的多少也不同。簡(jiǎn)易型漢字為16×16點(diǎn)陣,多用于顯示。提高型漢字為24×24點(diǎn)陣、32×32點(diǎn)陣,48×48點(diǎn)陣、64×64點(diǎn)陣、128×128點(diǎn)陣,甚至更高,多用于打印。4/5/2023126例:16×16的漢字字形點(diǎn)陣,每個(gè)漢字要占用32個(gè)字節(jié)。4/5/2023127對(duì)于16×16的漢字字形點(diǎn)陣,國(guó)標(biāo)兩級(jí)7445個(gè)漢字和符號(hào)要占用256K字節(jié)。如果有4種字體,則需1MB存儲(chǔ)空間。因?yàn)樽中吸c(diǎn)陣的信息量很大,所占存儲(chǔ)空間也很大,因此字形點(diǎn)陣不用于機(jī)內(nèi)存儲(chǔ),而采用漢字庫(kù)存儲(chǔ)。字庫(kù)中存儲(chǔ)了每個(gè)漢字的點(diǎn)陣代碼。當(dāng)顯示輸出或打印輸出時(shí)才檢索字庫(kù),輸出字形點(diǎn)陣,得到字形。當(dāng)機(jī)內(nèi)裝有多種漢字系統(tǒng)時(shí),各系統(tǒng)自帶的字庫(kù),在同時(shí)使用時(shí),有時(shí)會(huì)發(fā)生沖突。4/5/2023128注意:漢字的輸入碼、機(jī)內(nèi)碼、字形碼是計(jì)算機(jī)中用于輸入、內(nèi)部處理、輸出三種不同用途的編碼,不能混為一談。4/5/2023129漢字庫(kù)的讀取由機(jī)內(nèi)碼讀點(diǎn)陣字模設(shè)ch1ch2表示某漢字機(jī)內(nèi)碼,則16點(diǎn)陣庫(kù)中讀取該漢字字模的位置是:(1)213漢字系統(tǒng)的定位算法為L(zhǎng)ocation=((unsigned)ch1-160-1)*94+((unsigned)ch2-160-1)*32(漢字庫(kù)文件為:HZK16)4/5/2023130(2)UCDOS的計(jì)算為運(yùn)行RD16.COM后,加載漢字到內(nèi)存,然后_DH=ch1;_DL=ch2;getinterrupt(0x7F);Buf=MK_FP(_DX,0);其中,unsignedchar*Buf;4/5/20231312.5十進(jìn)制數(shù)串的表示為了滿(mǎn)足某些應(yīng)用領(lǐng)域的需要,要求某些計(jì)算機(jī)內(nèi)部能直接對(duì)十進(jìn)制數(shù)進(jìn)行運(yùn)算和處理,為此要求對(duì)十進(jìn)制數(shù)字進(jìn)行二進(jìn)制編碼,且能夠便于處理。一種方法是采用ASCII碼對(duì)應(yīng)的數(shù)字編碼。
“0”~“9”的ASCII編碼為30H~39H。一種方法是采用十進(jìn)制數(shù)字對(duì)應(yīng)的4位二進(jìn)制數(shù)編碼。常用的有8421BCD碼
“0”~“9”的8421BCD碼為0000~1001。例:(786)10BCD4/5/2023132十進(jìn)制數(shù)串在機(jī)器內(nèi)部的表示1.字符串形式將十進(jìn)制數(shù)串以字符串形式表示,即一個(gè)字節(jié)表示一個(gè)十進(jìn)制數(shù)位的字符編碼或符號(hào)編碼。在主存中,一個(gè)十進(jìn)制數(shù)串需占用多個(gè)連續(xù)的字節(jié)。為了指明一個(gè)十進(jìn)制數(shù)串,需要指明該數(shù)串在主存中的起始地址和串的長(zhǎng)度。根據(jù)數(shù)串中符號(hào)所處位置,又分為前分隔數(shù)字串和后嵌入數(shù)字串兩種表示形式。4/5/2023133(1)前分隔數(shù)字串符號(hào)位占用單獨(dú)一個(gè)字節(jié),放在數(shù)字位之前,即數(shù)串最前面的字節(jié)中。正號(hào)用字符“+”表示,即ASCII碼的2BH,負(fù)號(hào)用字符“-”表示,即ASCII碼的2DH。例:+135與–2678在內(nèi)存中表示形式為+1352BH31H33H35H“+”“1”“3”“5”-26782DH32H36H37H38H“-”“2”“6”“7”“8”4/5/2023134(2)后嵌入數(shù)字串
符號(hào)位不單獨(dú)占用一個(gè)字節(jié),而是嵌入到最低一位數(shù)字里面,其規(guī)則是:若數(shù)串的符號(hào)為正,則最低一位數(shù)字0~9的ASCII編碼不變(30H~39H);若數(shù)串的符號(hào)為負(fù),把負(fù)號(hào)變?yōu)?0H,并將其與最低數(shù)值位相加,此時(shí)數(shù)字0~9的編碼變?yōu)?0H~79H。例:+135與–2678在內(nèi)存中表示形式為+13531H33H35H“1”“3”“5”-267832H36H37H78H“2”“6”“7”“8”4/5/2023135后嵌入表示方式比前分隔方式少用一個(gè)字節(jié),但其最低有效位需有特殊編碼,既表示該位的數(shù)值,又同時(shí)表示數(shù)的符號(hào)。十進(jìn)制數(shù)的字符串表示主要應(yīng)用于非數(shù)值處理,如顯示、打印。但對(duì)十進(jìn)制數(shù)的算術(shù)運(yùn)算很不方便,因?yàn)槊恳蛔止?jié)只有低4位表示數(shù)值,而高4位在算術(shù)運(yùn)算時(shí)不具有數(shù)值的意義。4/5/20231362.壓縮的十進(jìn)制數(shù)串壓縮的十進(jìn)制數(shù)串:用一個(gè)字節(jié)存放兩個(gè)十進(jìn)制數(shù)位,其值用BCD碼表示,符號(hào)占半個(gè)字節(jié),并存放在最低數(shù)值位之后。通常用1100表示正號(hào),1101表示負(fù)號(hào)。在這種表示中,規(guī)定數(shù)字個(gè)數(shù)加符號(hào)位之和必須是偶數(shù),否則在最高位之前補(bǔ)一個(gè)0。
例:+135與–2678在內(nèi)存中表示形式為+1350001001101011100“1”“3”“5”“+”-2678000000100110011110001101“0”“2”“6”“7”“8”“-”4/5/2023137壓縮的十進(jìn)制數(shù)串既節(jié)省了存儲(chǔ)空間,又便于直接進(jìn)行十進(jìn)制算術(shù)運(yùn)算,是廣泛采用的十進(jìn)制數(shù)串表示方式。與字符串表示方法類(lèi)似,要指明一個(gè)壓縮的十進(jìn)制數(shù),需要給出它在內(nèi)存中的首地址和串的長(zhǎng)度。4/5/20231382.6數(shù)據(jù)校驗(yàn)碼數(shù)據(jù)在計(jì)算機(jī)系統(tǒng)內(nèi)形成、存取和傳送過(guò)程中,可能會(huì)因?yàn)槟撤N原因而產(chǎn)生錯(cuò)誤。為減少和避免這類(lèi)錯(cuò)誤,一方面是從電路、電源、布線(xiàn)等方面采取多方面措施提高機(jī)器的抗干擾能力,盡可能提高計(jì)算機(jī)硬件本身的可靠性,另一方面是在數(shù)據(jù)編碼上采取檢錯(cuò)糾錯(cuò)的措施。數(shù)據(jù)校驗(yàn)碼:具有檢測(cè)某些錯(cuò)誤或帶有自動(dòng)糾正錯(cuò)誤能力的數(shù)據(jù)編碼方式。常用的數(shù)據(jù)校驗(yàn)碼有奇偶校驗(yàn)碼、海明校驗(yàn)碼、循環(huán)校驗(yàn)碼。4/5/20231392.6.1奇偶校驗(yàn)碼奇偶校驗(yàn)碼是一種最簡(jiǎn)單、最常用的校驗(yàn)碼,廣泛用于主存的讀寫(xiě)校驗(yàn)或ASCII碼字符傳送過(guò)程中的檢查?;驹恚涸趎位有效信息位上增加一個(gè)二進(jìn)制位作為校驗(yàn)位,構(gòu)成n十1位的奇偶校驗(yàn)碼。校驗(yàn)位P的取值(0或1)使n+l位的奇偶校驗(yàn)碼中“1”的個(gè)數(shù)為奇數(shù)(稱(chēng)為奇校驗(yàn)Odd)或?yàn)榕紨?shù)(稱(chēng)為偶校驗(yàn)Even)。校驗(yàn)位的位置在有效信息位的最高位之前或者在最低位之后。4/5/2023140例:A6A5A4A3A2A1A0為7位有效信息,加一個(gè)校驗(yàn)位P,構(gòu)成8位的奇偶校驗(yàn)碼為A6A5A4A3A2A1A0P或PA6A5A4A3A2A1A0若采用偶校驗(yàn),則:Peven=A6⊕A5⊕A4⊕A3⊕A2⊕A1⊕A0若采用奇校驗(yàn),則Podd
=Peven4/5/2023141例:求7位信息碼1100111的奇校驗(yàn)碼和偶校驗(yàn)碼(設(shè)校驗(yàn)位在最低位)。解:(1)1100111的奇校驗(yàn)碼因?yàn)?100111中“1”的個(gè)數(shù)為奇,所以奇校驗(yàn)位P=0,1100111的奇校驗(yàn)碼為11001110。(2)1100111的偶校驗(yàn)碼因?yàn)?100111中“1”的個(gè)數(shù)為奇,所以偶校驗(yàn)位P=1,1100111的偶校驗(yàn)碼為11001111。4/5/2023142奇偶校驗(yàn)碼的形成電路4/5/2023143奇偶校驗(yàn)碼的校驗(yàn)方法若接到一奇校驗(yàn)碼中“1”的個(gè)數(shù)為偶數(shù),或接到一偶校驗(yàn)碼中“1”的個(gè)數(shù)為奇數(shù),則表示有一位出錯(cuò)。以上面的七位有效信息的奇偶校驗(yàn)碼為例:偶校驗(yàn)錯(cuò):E=A6⊕A5⊕A4⊕A3⊕A2⊕A1⊕A0⊕Peven奇校驗(yàn)錯(cuò):E=A6⊕A5⊕A4⊕A3⊕A2⊕A1⊕A0⊕PoddE=0,表示無(wú)錯(cuò);E=1,表示校驗(yàn)出錯(cuò)4/5/2023144奇偶校驗(yàn)碼的校驗(yàn)電路4/5/2023145奇偶校驗(yàn)碼的校錯(cuò)能力奇偶校驗(yàn)碼只能發(fā)現(xiàn)奇數(shù)位個(gè)錯(cuò)誤,而無(wú)法發(fā)現(xiàn)偶數(shù)位個(gè)錯(cuò)誤,而且即使發(fā)現(xiàn)奇數(shù)位個(gè)錯(cuò)誤也無(wú)法確定出錯(cuò)的位置;因而無(wú)法自動(dòng)糾正錯(cuò)誤。但由于現(xiàn)代計(jì)算機(jī)可靠性比較高,出錯(cuò)概率很低,而出錯(cuò)中只有一位出錯(cuò)的概率最高,因此用奇偶校驗(yàn)檢測(cè)一位出錯(cuò),能夠滿(mǎn)足一般可靠性要求。在CPU與主存的信息傳送過(guò)程中,奇偶校驗(yàn)被廣泛應(yīng)用。4/5/20231462.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è)有效信息位的位數(shù)為n,校驗(yàn)位數(shù)為k,則能夠檢測(cè)一位出錯(cuò)并能自動(dòng)糾正一位錯(cuò)誤的海明校驗(yàn)碼應(yīng)滿(mǎn)足下面關(guān)系:2k≥n+k+1由此式可計(jì)算出具有檢1糾1錯(cuò)能力的海明校驗(yàn)碼中n與k的關(guān)系,如表2.6所示。4/5/2023147有效信息位與校驗(yàn)位的關(guān)系4/5/2023148海明校驗(yàn)碼的編碼規(guī)則(1)n位有效信息選擇k個(gè)校驗(yàn)位,構(gòu)成n+k位的海明校驗(yàn)碼。若校驗(yàn)碼位號(hào)從左向右(或從右向左)按從1到n+k排列,則校驗(yàn)位的位號(hào)分別為2i,i=0,1,2…k-1,有效信息位按原排列次序安排在其它位號(hào)中。例:一個(gè)字符的ASCH碼為A6A5A4A3A2A1A0,根據(jù)表2.6選擇k=4。構(gòu)成7+4=11位的海明校驗(yàn)碼。位號(hào)1234567891011編碼P1P2A6P4A5A4A3P8A2A1A0
P1、P2、P4、P8分別為四個(gè)校驗(yàn)位,其下標(biāo)是它們?cè)诤C鞔a中的位號(hào),即20、21、22、23的位置。4/5/2023149(2)k個(gè)校驗(yàn)位構(gòu)成k組奇偶校驗(yàn),每個(gè)有效信息位都被2個(gè)或2個(gè)以上的校驗(yàn)位校驗(yàn)。被校驗(yàn)的位號(hào)等于校驗(yàn)它的校驗(yàn)位位號(hào)之和。如上例中,A6的位號(hào)為3,3=1+2,所以A6被P1、P2校驗(yàn)。A3位號(hào)為7,7=1+2+4,所以A3被P1、P2、P4校驗(yàn)。以此方法可知每個(gè)信息位分別被哪些校驗(yàn)位校驗(yàn)。A6:P1、P2A5:P1、P4A4:P2、P4A3:P1、P2、P4A2:P1、P8A1:P2、P8A0:P1、P2、P84/5/2023150由此可得形成k個(gè)校驗(yàn)位的校驗(yàn)組P1:A6、A5、A3、A2、A0(第一組)P2:A6、A4、A3、A1、A0(第二組)P4:A5、A4、A3(第三組)P8:A2、A1、A0(第四組)(3)統(tǒng)計(jì)參與每組奇偶校驗(yàn)的位號(hào),按奇偶校驗(yàn)原理,由已知的有效信息按奇校驗(yàn)或偶校驗(yàn)求出各個(gè)校驗(yàn)位,進(jìn)而形成海明校驗(yàn)碼。4/5/2023151例如,按偶校驗(yàn)求出各個(gè)校驗(yàn)位的方法是:P1even=A6⊕A5⊕A3⊕A2⊕A0P2even=A6⊕A4⊕A3⊕A1⊕A0P4even=A5⊕A4⊕A3P8even=A2⊕A1⊕A0按奇校驗(yàn)求出各個(gè)校驗(yàn)位的方法是:P1odd=P1even
P2odd=P2evenP4odd=P4evenP8odd=P8even4/5/2023152例:編制ASCII字符“M”的海明校驗(yàn)碼。解:“M”的ASCII碼為A6A5A4A3A2A1A0=1001101P1even=A6⊕A5⊕A3⊕A2⊕A0=1⊕0⊕1⊕1⊕1=0P2even=A6⊕A4⊕A3⊕A1⊕A0=1⊕0⊕1⊕0⊕1=1P4even=A5⊕A4⊕A3=0⊕0⊕1=1P8even=A2⊕A1⊕A0=1⊕0⊕1=0因此得到ASCII碼字符“M”的海明校驗(yàn)碼為:01110010101(偶校驗(yàn))10100011101(奇校驗(yàn))海明校驗(yàn)碼產(chǎn)生后,將信息位和校驗(yàn)位一起存入內(nèi)存。4/5/2023153海明校驗(yàn)碼的校驗(yàn)方法校驗(yàn)時(shí),K個(gè)校驗(yàn)位進(jìn)行K組奇偶校驗(yàn),校驗(yàn)結(jié)果形成K位的“指誤字”EkEk-1…E2E1。若某組校驗(yàn)結(jié)果正確,指誤字相應(yīng)位為0;若校驗(yàn)結(jié)果錯(cuò)誤,指誤字相應(yīng)位為1。若校驗(yàn)結(jié)果EkEk-1…E2E1=全0,則表示無(wú)錯(cuò);EkEk-1…E2E1≠全0,則表示有錯(cuò),并且指誤字代碼所對(duì)應(yīng)的十進(jìn)制值就是出錯(cuò)位的位號(hào)。將該位取反,錯(cuò)誤碼即得到自動(dòng)糾正。4/5/2023154指誤字指示出錯(cuò)的前提是代碼中只存在一個(gè)錯(cuò)。若有多個(gè)錯(cuò),可能查不出來(lái)。所以只有在只存在一個(gè)錯(cuò)的前提下,海明碼才能實(shí)現(xiàn)檢1糾1錯(cuò)。例:字符“M”的偶校驗(yàn)碼為01110010101,其指誤字為E1=P1⊕A6⊕A5⊕A3⊕A2⊕A0E2=P2⊕A6⊕A4⊕A3⊕A1⊕A0E3=P4⊕A5⊕A4⊕A3E4=P8⊕A2⊕A1⊕A04/5/2023155若接收正確,即接收到的代碼是,則E1=0⊕1⊕0⊕1⊕1⊕1=0E2=1⊕1⊕0⊕1⊕0⊕1=0E3=1⊕0⊕0⊕1=0E4=0⊕1⊕0⊕1=0若接收出錯(cuò),即接收到的代碼是01110110101,則E1=0⊕1⊕0⊕1⊕1⊕1=0E2=1⊕1⊕1⊕1⊕0⊕1=1E3=1⊕0⊕1⊕1=1E4=0⊕1⊕0⊕1=04/5/2023156得到的指誤字為E4E3E2E1=0110,表示第6位上的數(shù)碼出錯(cuò)。將第6位上的數(shù)碼A4取反,即可得到正確結(jié)果。上述海明校驗(yàn)碼可以檢查出一位錯(cuò)誤并予以糾正,但如果有兩位信息出錯(cuò),就無(wú)法正確檢測(cè)并自動(dòng)糾錯(cuò)。例:正確的“M”的偶校驗(yàn)海明校驗(yàn)碼為,如果信息傳送時(shí)第3位、第6位同時(shí)出錯(cuò),接受到的校驗(yàn)碼為01010110101
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合同模板學(xué)校食堂承包經(jīng)營(yíng)合同范本
- Unit2 He's cool(說(shuō)課稿)2023-2024學(xué)年外研版(三起)四年級(jí)下冊(cè)
- 2025合同模板工程的變更范本
- 2025江蘇:安全責(zé)任寫(xiě)進(jìn)集體合同模板范本
- Unit1 School(說(shuō)課稿)-2024-2025人教版(新起點(diǎn))英語(yǔ)一年級(jí)上冊(cè)
- 2023七年級(jí)語(yǔ)文上冊(cè) 第四單元 綜合性學(xué)習(xí) 少年正是讀書(shū)時(shí)說(shuō)課稿 新人教版
- Unit5 I'm cleaning my room(說(shuō)課稿)-2023-2024學(xué)年人教精通版英語(yǔ)五年級(jí)下冊(cè)001
- 2024年九年級(jí)語(yǔ)文下冊(cè) 第二單元 第5課 孔乙己說(shuō)課稿 新人教版
- 2024-2025學(xué)年高中化學(xué)下學(xué)期第20周 常見(jiàn)氣體的制備說(shuō)課稿
- Unit 1 people of achievement Reading for writing 說(shuō)課稿-2024-2025學(xué)年高中英語(yǔ)人教版(2019)選擇性必修第一冊(cè)
- 進(jìn)模模具設(shè)計(jì)
- 完整,滬教版小學(xué)四年級(jí)英語(yǔ)上冊(cè)單詞表
- 2021年高考化學(xué)真題和模擬題分類(lèi)匯編專(zhuān)題20工業(yè)流程題含解析
- 2023年北京市高考作文評(píng)分標(biāo)準(zhǔn)及優(yōu)秀、滿(mǎn)分作文
- 2023年大唐尿素投標(biāo)文件
- 《鋼鐵是怎樣煉成的》名著閱讀(精講課件) 初中語(yǔ)文名著導(dǎo)讀
- 縮窄性心包炎課件
- 《工程電磁場(chǎng)》配套教學(xué)課件
- 職位管理手冊(cè)
- 東南大學(xué) 固體物理課件
- 行政人事助理崗位月度KPI績(jī)效考核表
評(píng)論
0/150
提交評(píng)論