版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第2章
數(shù)據(jù)的機(jī)器層次表示1數(shù)據(jù)是計算機(jī)加工和處理的對象,數(shù)據(jù)的機(jī)器層次表示將直接影響到計算機(jī)的結(jié)構(gòu)和性能。本章主要介紹無符號數(shù)和帶符號數(shù)的表示方法、數(shù)的定點與浮點表示方法、字符和漢字的編碼方法、數(shù)據(jù)校驗碼等。熟悉和掌握本章的內(nèi)容,是學(xué)習(xí)計算機(jī)原理的最基本要求。2本章學(xué)習(xí)內(nèi)容2.1數(shù)值數(shù)據(jù)的表示2.2機(jī)器數(shù)的定點表示和浮點表示2.3非數(shù)值數(shù)據(jù)的表示2.4十進(jìn)制數(shù)和數(shù)串的表示2.5現(xiàn)代微型計算機(jī)中的數(shù)據(jù)表示舉例2.6數(shù)據(jù)校驗碼3本章學(xué)習(xí)要求了解:無符號數(shù)與帶符號數(shù),真值和機(jī)器數(shù)等概念掌握:原碼、補碼、反碼表示法以及三種碼制與真值之間的轉(zhuǎn)換方法
掌握:定點數(shù)和浮點數(shù)的表示法和表示范圍理解:規(guī)格化浮點數(shù)概念、浮點數(shù)階碼的移碼表示法掌握:最小規(guī)格化正數(shù)與最小正數(shù)的區(qū)別了解:IEEE754浮點數(shù)標(biāo)準(zhǔn)掌握:常見的字符編碼方法(ASCII碼)、漢字國標(biāo)碼、區(qū)位碼、機(jī)內(nèi)碼4本章學(xué)習(xí)要求(續(xù))了解:二—十進(jìn)制編碼的原理掌握:8241碼、2421碼和余3碼掌握:奇偶校驗位及其形成方法了解:海明校驗碼和循環(huán)冗余校驗碼52.1數(shù)值數(shù)據(jù)的表示
在計算機(jī)中,采用數(shù)字化方式來表示數(shù)據(jù),數(shù)據(jù)有無符號數(shù)和帶符號數(shù)之分,其中帶符號數(shù)根據(jù)其編碼的不同又有原碼、補碼和反碼3種形式。62.1.1計算機(jī)中的數(shù)值數(shù)據(jù)二進(jìn)制數(shù):后綴B(Binary)八進(jìn)制數(shù):后綴Q(Octal)十進(jìn)制數(shù):后綴D或省略后綴(Decimal)十六進(jìn)制數(shù):后綴H(Hexadecimal)例如:有4個數(shù)為375D、101B、76Q、A17H,從后綴字母就可以知道它們分別是十進(jìn)制數(shù)、二進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)。72.1.1計算機(jī)中的數(shù)值數(shù)據(jù)(補充)一、進(jìn)位計數(shù)制
進(jìn)位計數(shù)制基數(shù)數(shù)碼權(quán)重符號二進(jìn)制數(shù)
20,12iB八進(jìn)制數(shù)80,1,2,3,4,5,6,78iQ十進(jìn)制數(shù)10
0,1,2,3,4,5,6,7,8,910iD十六進(jìn)制數(shù)160,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(xiàn)16iH8
1、十進(jìn)制數(shù)
2、二進(jìn)制數(shù)
3、八進(jìn)制數(shù)
4、十六進(jìn)制數(shù)9這里,n是小數(shù)點左邊,即整數(shù)部分的位數(shù),從第0位到第n-1位;m是小數(shù)點右邊,即小數(shù)部分的位數(shù),從第-1位到第-m位。
10二、進(jìn)位制數(shù)之間的轉(zhuǎn)換
1、二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)根據(jù)二進(jìn)制數(shù)的定義,只要將它按權(quán)展開再相加。例如:(111.101)2=1×22+1×21+1×20+1×2-1+0×2-2+1×2-3=(7.625)102、十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)⑴整數(shù)部分,采用除2取余法(或倒除法)例如:將(215)10轉(zhuǎn)換成二進(jìn)制數(shù)11
2215余數(shù)
2107125312261213026123021101
結(jié)果(215)10=(11010111)2
或?qū)憺椋?15D
=11010111B21512⑵小數(shù)部分,采用乘2取整法例如:將(0.6875)10轉(zhuǎn)換成二進(jìn)制數(shù)
0.6875取整數(shù)部分
×2
1.375010.3750
×20.75000×21.500010.5000×21.000010.0000
結(jié)果(0.6875)10=(0.1011)2
133、八進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)根據(jù)八進(jìn)制數(shù)的定義,只要將它按權(quán)展開再相加。例如:(14)8=1×81+4×80=(12)
10
或?qū)憺椋?4Q=1×81+4×80=12D=12如果十進(jìn)制小數(shù)不能用有限位的二進(jìn)制數(shù)表示,則根據(jù)精度取幾位例如:(0.414)10≈(0.01101)2
(取5位)或?qū)憺椋?.414D≈0.01101B(取5位)144、十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)根據(jù)十六進(jìn)制數(shù)的定義,只要將它按權(quán)展開再相加。例如:(A4)16=10×161+4×160=(164)
10
或?qū)憺椋篈4H=10×161+4×160=164D=1645、十進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)與十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)相似,采用除8取余法(整數(shù))和乘8取整法(小數(shù))。156、十進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)與十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)相似,采用除16取余法(整數(shù))和乘16取整法(小數(shù))。
例如:將(843.6875)10轉(zhuǎn)換為十六進(jìn)制數(shù)
16843取余數(shù)0.6875取整數(shù)
1652B×1616344.1250036.875B.0000B
結(jié)果(843.6875)10=
(34B.B)16
通常,先將十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù),再由二進(jìn)制數(shù)轉(zhuǎn)換成8進(jìn)或16進(jìn)制數(shù)。167、八進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換一位八進(jìn)制數(shù)相當(dāng)于3位二進(jìn)制數(shù),所以八進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù),或二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)很方便。例如:(563)8=(101,110,011)2(0.764)8=(0.111,110,100)2178、十六進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換一位十六進(jìn)制數(shù)相當(dāng)于4位二進(jìn)制數(shù),所以十六進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換是很方便的。例如:(3AB)16=(0011,1010,1011)2(0.CD3)16=(0.1100,1101,0011)2182.1.2無符號數(shù)和帶符號數(shù)無符號數(shù),就是整個機(jī)器字長的全部二進(jìn)制位均表示數(shù)值位(沒有符號位),相當(dāng)于數(shù)的絕對值。例如:
N1=01001表示無符號數(shù)9
N2=11001表示無符號數(shù)25機(jī)器字長為n+1位的無符號數(shù)的表示范圍是0~(2n+1-1),此時二進(jìn)制的最高位也是數(shù)值位,其權(quán)值等于2n。若字長為8位,則數(shù)的表示范圍為0~255。192.1.2無符號數(shù)和帶符號數(shù)(續(xù))帶符號數(shù),即正、負(fù)數(shù)。在日常生活中,我們用“+”、“-”號加絕對值來表示數(shù)值的大小,用這種形式表示的數(shù)值在計算機(jī)技術(shù)中稱為“真值”。在計算機(jī)中需要把數(shù)的符號數(shù)碼化。通常,約定二進(jìn)制數(shù)的最高位為符號位,“0”表示正號,“1”表示負(fù)號。這種在計算機(jī)中使用的表示數(shù)的形式稱為機(jī)器數(shù)。202.1.2無符號數(shù)和帶符號數(shù)(續(xù))常見的機(jī)器數(shù)有原碼、反碼、補碼等3種不同的表示形式。帶符號數(shù)的最高位被用來表示符號位,而不再表示數(shù)值位。前例中的N1、N2
在這里的含義變?yōu)椋?/p>
N1=01001表示+9。
N2=11001根據(jù)機(jī)器數(shù)的不同形式表示不同的值,如是原碼則表示-9,補碼則表示-7,反碼則表示-6。
212.1.2無符號數(shù)和帶符號數(shù)(續(xù))為了能正確地區(qū)別出真值和各種機(jī)器數(shù),本書中用X表示真值,[X]原表示原碼,[X]補表示補碼,[X]反表示反碼。222.1.3原碼表示法原碼表示法是一種最簡單的機(jī)器數(shù)表示法,用最高位表示符號位,符號位為“0”表示該數(shù)為正,符號位為“1”表示該數(shù)為負(fù),數(shù)值部分與真值相同。設(shè)二進(jìn)制純小數(shù)的原碼形式為Xs.X1X2…Xn,字長n+1位,其中Xs表示符號位。
例1:X1=0.0110,[X1]原=0.0110X2=-0.0110,[X2]原=1.0110232.1.3原碼表示法(續(xù))設(shè)二進(jìn)制純整數(shù)的原碼形式為XsX1X2…Xn,其中Xs表示符號位。例2:X1=1101,[X1]原=01101X2=-1101,[X2]原=11101
在原碼表示中,真值0有兩種不同的表示形式:[+0]原=00000
[-0]原=10000242.1.4補碼表示法1.模和同余模是指一個計量器的容量,可用M表示。例如:一個4位的二進(jìn)制計數(shù)器,當(dāng)計數(shù)器從0計到15之后,再加1,計數(shù)值又變?yōu)?。這個計數(shù)器的容量M=24=16,即模為16。由此可見,純小數(shù)的模為2,一個字長為n+1位的純整數(shù)的模為2n+1。同余是指兩整數(shù)A、B除以同一正整數(shù)M,所得余數(shù)相同,則稱A、B對M同余,即A、B在以M為模時是相等的,可寫作
A=B(modM)25關(guān)于定點小數(shù)和定點整數(shù)的模計算機(jī)本身是一個模數(shù)系統(tǒng),這是因為機(jī)器字長是有限的。當(dāng)運算結(jié)果的位數(shù)超過機(jī)器字長時,向更高位的進(jìn)位就會被丟失,這就是計算機(jī)的“?!?。對于n+1位的定點小數(shù)來說,可表示為:
Xs.X1X2…Xn其中,Xs是符號位,它的位權(quán)是。符號位向更高位的進(jìn)位會被丟失,所以定點小數(shù)以為模。
26關(guān)于定點小數(shù)和定點整數(shù)的模對于n+1位的定點整數(shù)來說,可表示為:
XsX1X2…Xn其中,Xs是符號位,它的位權(quán)是。符號位向更高位的進(jìn)位會被丟失,所以定點整數(shù)以為模。
27時鐘正撥和倒撥對鐘表而言,M=12。假設(shè):時鐘停在8點,而現(xiàn)在正確的時間是6點,這時撥準(zhǔn)時鐘的方法有兩種:正撥和倒撥。
(1)將分針倒著旋轉(zhuǎn)兩圈(即時鐘倒撥2小時)8-2=6(做減法)
(2)
將分針正著旋轉(zhuǎn)10圈(即時鐘正撥10小時)8+10=6(mod12)(做加法)倒撥時鐘正撥時鐘28時鐘正撥和倒撥(續(xù))分針倒著旋轉(zhuǎn)2圈,等于分針正著旋轉(zhuǎn)10圈。此時8-2=8+10(mod12)故有:-2=10(mod12),即-2和10同余。同余的兩個數(shù),具有互補關(guān)系,-2與10對模12互補,也可以說-2的補數(shù)是10(以12為模)??梢?,只要確定了“?!保涂烧业揭粋€與負(fù)數(shù)等價的正數(shù)(該正數(shù)即為負(fù)數(shù)的補數(shù))來代替此負(fù)數(shù),而這個正數(shù)可以用模加上負(fù)數(shù)本身求得,這樣就可以把減法運算用加法來實現(xiàn)了。29補碼的符號位表示方法與原碼相同,其數(shù)值部分的表示與數(shù)的正負(fù)有關(guān):對于正數(shù),數(shù)值部分與真值形式相同;對于負(fù)數(shù),將真值的數(shù)值部分按位取反,且在最低位上加1。若真值為純小數(shù),它的補碼形式為Xs.X1X2…Xn,其中Xs表示符號位。例5:X1=0.0110,[X1]補=0.0110X2=-0.0110,[X2]補=1.10102.補碼表示30若真值為純整數(shù),它的補碼形式為XsX1X2…Xn,其中Xs表示符號位。例6:X1=1101,[X1]補=01101X2=-1101,[X2]補=10011在補碼表示中,真值0的表示形式是唯一的:[+0]補=[-0]補=000002.補碼表示(續(xù))31當(dāng)X為正數(shù)時,[X]補=[X]原=X
當(dāng)X為負(fù)數(shù)時,由[X]原轉(zhuǎn)換為[X]補的方法:①[X]原除掉符號位外的各位取反加“1”。②自低位向高位,尾數(shù)的第一個“1”及其右部的“0”保持不變,左部的各位取反,符號位保持不變。例7:[X]原=1.1110011000[X]補=1.00011010003.由真值、原碼轉(zhuǎn)換為補碼不變不變變反322.1.5反碼表示法反碼表示法與補碼表示法有許多類似之處,對于正數(shù),數(shù)值部分與真值形式相同;對于負(fù)數(shù),將真值的數(shù)值部分按位取反。若真值為純小數(shù),它的反碼形式為Xs.X1X2…Xn,其中Xs表示符號位。例9:X1=0.0110,[X1]反=0.0110X2=-0.0110,[X2]反=1.1001332.1.5反碼表示法(續(xù))若真值為純整數(shù),它的反碼形式為XsX1X2…Xn,其中Xs表示符號位。例10:X1=1101,[X1]補=01101X2=-1101,[X2]補=10010
在反碼表示中,真值0也有兩種不同的表示形式:[+0]反=00000[-0]反=11111341.比較對于正數(shù)它們都等于真值本身,而對于負(fù)數(shù)各有不同的表示。最高位都表示符號位,補碼和反碼的符號位可作為數(shù)值位的一部分看待,和數(shù)值位一起參加運算;但原碼的符號位不允許和數(shù)值位同等看待,必須分開進(jìn)行處理。對于真值0,原碼和反碼各有兩種不同的表示形式,而補碼只有唯一的一種表示形式。原碼、反碼表示的正、負(fù)數(shù)范圍相對零來說是對稱的;但補碼負(fù)數(shù)表示范圍較正數(shù)表示范圍寬,能多表示一個最負(fù)的數(shù)(絕對值最大的負(fù)數(shù)),其值等于-2n(純整數(shù))或-1(純小數(shù))。2.1.6三種碼制的比較與轉(zhuǎn)換35真值與3種機(jī)器數(shù)間的對照362.轉(zhuǎn)換如果已知機(jī)器的字長,則機(jī)器數(shù)的位數(shù)應(yīng)補夠相應(yīng)的位。例如,設(shè)機(jī)器字長為8位,則:
X1=1011X2=-1011[X1]原=00001011[X2]原=10001011[X1]補=00001011[X2]補=11110101[X1]反=00001011[X2]反=11110100
X3=0.1011X4=-0.1011[X3]原=0.1011000[X4]原=1.1011000[X3]補=0.1011000[X4]補=1.0101000[X3]反=0.1011000[X4]反=1.0100111372.2機(jī)器數(shù)的定點表示與浮點表示計算機(jī)在進(jìn)行算術(shù)運算時,需要指出小數(shù)點的位置。根據(jù)小數(shù)點的位置是否固定,在計算機(jī)中有兩種數(shù)據(jù)格式:定點表示和浮點表示。382.2.1定點表示法
在定點表示法中約定:所有數(shù)據(jù)的小數(shù)點位置固定不變。1.定點小數(shù)
小數(shù)點的位置固定在最高有效數(shù)位之前,符號位之后,記作Xs.X1X2…Xn,這個數(shù)是一個純小數(shù)。定點小數(shù)的小數(shù)點位置是隱含約定的,小數(shù)點并不需要真正地占據(jù)一個二進(jìn)制位。39定點小數(shù)表示范圍圖2-2定點小數(shù)格式
當(dāng)Xs=0,X1~Xn=1時,X為最大正數(shù)。
X最大正數(shù)=1-2-n當(dāng)Xn=1,Xs~Xn-1=0時,X為最小正數(shù)。
X最小正數(shù)=2-n40定點小數(shù)表示范圍(續(xù))當(dāng)Xs=1,表示X為負(fù)數(shù),此時情況要稍微復(fù)雜一些,這是因為在計算機(jī)中帶符號數(shù)可用補碼表示,也可用原碼表示。原碼和補碼的表示范圍有一些差別。若機(jī)器數(shù)為原碼表示,當(dāng)Xs~Xn均等于1時,X為絕對值最大的負(fù)數(shù)。
X絕對值最大負(fù)數(shù)=-(1-2-n)
若機(jī)器數(shù)為補碼表示,當(dāng)Xs=1,X1~Xn均等于0時,X為絕對值最大的負(fù)數(shù)。
X絕對值最大負(fù)數(shù)=-141若機(jī)器字長有n+1位,則有:原碼定點小數(shù)表示范圍:
-(1-2-n)~(1-2-n)補碼定點小數(shù)表示范圍:
-1~(1-2-n)
若機(jī)器字長有8位,則有:原碼定點小數(shù)表示范圍:-~補碼定點小數(shù)表示范圍:
-1~定點小數(shù)表示范圍(續(xù))422.定點整數(shù)定點整數(shù)即純整數(shù),小數(shù)點位置隱含固定在最低有效數(shù)位之后,記作XsX1X2…Xn。圖2-3定點整數(shù)格式43若機(jī)器字長有n+1位,則有:原碼定點整數(shù)的表示范圍:
-(2n-1)~(2n-1)補碼定點整數(shù)的表示范圍:
-2n
~(2n-1)若機(jī)器字長有8位,則有:原碼定點整數(shù)表示范圍:-127~127補碼定點整數(shù)表示范圍:-128~127定點整數(shù)表示范圍44
小數(shù)點的位置根據(jù)需要而浮動,這就是浮點數(shù)。例如:
N=M×rE式中:r為浮點數(shù)階碼的底,與尾數(shù)的基數(shù)相同,通常r=2。E和M都是帶符號數(shù),E叫做階碼,M叫做尾數(shù)。在大多數(shù)計算機(jī)中,尾數(shù)為純小數(shù),常用原碼或補碼表示;階碼為純整數(shù),常用移碼或補碼表示。2.2.2浮點表示法45圖2-5浮點數(shù)的一般格式浮點數(shù)的底是隱含的,在整個機(jī)器數(shù)中不出現(xiàn)。階碼的符號位為es,階碼的大小反映了在數(shù)N中小數(shù)點的實際位置;尾數(shù)的符號位為ms,它是整個浮點數(shù)的符號位,表示了該浮點數(shù)的正負(fù)。浮點數(shù)的一般格式461.浮點數(shù)的表示范圍當(dāng)es=0,ms=0,階碼和尾數(shù)的數(shù)值位各位全為1(即階碼和尾數(shù)都為最大正數(shù))時,該浮點數(shù)為最大正數(shù):
X最大正數(shù)=(1-2-n)
當(dāng)es=1,ms=0,尾數(shù)的最低位mn=1,其余各位為0(即階碼為絕對值最大的負(fù)數(shù),尾數(shù)為最小正數(shù))時,該浮點數(shù)為最小正數(shù):
X最小正數(shù)=2-n
471.浮點數(shù)的表示范圍(續(xù))當(dāng)es=0,階碼的數(shù)值位為全1;ms=1,尾數(shù)的數(shù)值位為全0(即階碼為最大正數(shù),尾數(shù)為絕對值最大的負(fù)數(shù))時,該浮點數(shù)為絕對值最大負(fù)數(shù):
X絕對值最大負(fù)數(shù)=-1
48為了提高運算的精度,需要充分地利用尾數(shù)的有效數(shù)位,通常采取浮點數(shù)規(guī)格化形式,即規(guī)定尾數(shù)的最高數(shù)位必須是一個有效值。例如:0.001101×
、0.01101×
、
0.1101×只有最后一個是規(guī)格化浮點數(shù)。
規(guī)格化浮點數(shù)的尾數(shù)M的絕對值應(yīng)在下列范圍內(nèi):1/r≤|M|<1
如果r=2,則有1/2≤|M|<12.規(guī)格化浮點數(shù)492.規(guī)格化浮點數(shù)(續(xù))在尾數(shù)用補碼表示時,規(guī)格化浮點數(shù)應(yīng)滿足尾數(shù)最高數(shù)位與符號位不同(ms⊕m1=1),即當(dāng)1/2≤M<1時,應(yīng)有0.1xx…x形式,當(dāng)-1≤M<-1/2時,應(yīng)有1.0xx…x形式。需要注意的是當(dāng)M=-1/2,對于原碼來說,是規(guī)格化數(shù),而對于補碼來說,不是規(guī)格化數(shù);當(dāng)M=-1,對于原碼來說,不是規(guī)格化數(shù),而對于補碼來說,是規(guī)格化數(shù)。502.規(guī)格化浮點數(shù)(續(xù))當(dāng)es=1,ms=0,尾數(shù)的最高位m1=1,其余各位為0時,該浮點數(shù)為規(guī)格化的最小正數(shù):
X規(guī)格化的最小正數(shù)=2-1
規(guī)格化的最小正數(shù)大于非規(guī)格化的最小正數(shù)。51浮點數(shù)的典型值522.2.3移碼表示法移碼就是在真值X上加一個常數(shù)(偏置值),相當(dāng)于X在數(shù)軸上向正方向平移了一段距離,這就是“移碼”一詞的來由。[X]移=偏置值+X對于字長8位的定點整數(shù),偏置值為27。
例11:X=1011101[X]移=27+X=10000000+1011101=11011101[X]補=01011101例12:X=-1011101[X]移=27+X=10000000-1011101=00100011[X]補=1010001153偏置值為27的移碼、補碼和真值之間的關(guān)系…………54偏置值為2n的移碼的特點⑴在移碼中,最高位為“0”表示負(fù)數(shù),最高位為“1”表示正數(shù)。⑵移碼為全0時,它所對應(yīng)的真值最小,為全1時,它所對應(yīng)的真值最大。⑶真值0在移碼中的表示形式是唯一的,即[+0]移=[-0]移=100…0。⑷移碼把真值映射到一個正數(shù)域,所以可將移碼視為無符號數(shù),直接按無符號數(shù)規(guī)則比較大小。⑸同一數(shù)值的移碼和補碼除最高位相反外,其他各位相同。55浮點數(shù)的階碼采用移碼的原因便于比較浮點數(shù)的大小。階碼大的,其對應(yīng)的真值就大,階碼小的,對應(yīng)的真值就小。簡化機(jī)器中的判零電路。當(dāng)階碼全為0,尾數(shù)也全為0時,表示機(jī)器零。56圖2-6IEEE754標(biāo)準(zhǔn)的浮點數(shù)格式2.2.6實用浮點數(shù)舉例57短浮點數(shù)又被稱為單精度浮點數(shù),長浮點數(shù)又稱為雙精度浮點數(shù),它們都采用隱含尾數(shù)最高數(shù)位的方法,這樣,無形中又增加了一位尾數(shù)。臨時浮點數(shù)又稱為擴(kuò)展精度浮點數(shù),它沒有隱含位。58IEEE754標(biāo)準(zhǔn)的浮點數(shù)以短浮點數(shù)為例討論浮點代碼與其真值之間的關(guān)系。最高位為數(shù)符位;其后是8位階碼,以2為底,階碼的偏置值為127;其余23位是尾數(shù)。為了使尾數(shù)部分能表示更多一位的有效值,IEEE754采用隱含尾數(shù)最高數(shù)位1(即這一位1不表示出來)的方法,因此尾數(shù)實際上是24位。應(yīng)注意的是,隱含的1是一位整數(shù)(即位權(quán)為20),在浮點格式中表示出來的23位尾數(shù)是純小數(shù),并用原碼表示。59IEEE754標(biāo)準(zhǔn)的浮點數(shù)(續(xù))例13:將(100.25)10轉(zhuǎn)換成短浮點數(shù)格式。⑴十進(jìn)制數(shù)→二進(jìn)制數(shù)
(100.25)10=(1100100.01)2⑵非規(guī)格化數(shù)→規(guī)格化數(shù)
1100100.01=1.10010001×26⑶計算移碼表示的階碼(偏置值+階碼真值)
1111111+110=10000101⑷以短浮點數(shù)格式存儲該數(shù)。符號位=0
階碼=10000101
尾數(shù)=1001000100000000000000060IEEE754標(biāo)準(zhǔn)的浮點數(shù)(續(xù))短浮點數(shù)代碼為
0;100
0010
1;100
1000
1000
0000
0000
0000表示為十六進(jìn)制的代碼:42C88000H。例14:把短浮點數(shù)C1C90000H轉(zhuǎn)換成為十進(jìn)制數(shù)。⑴十六進(jìn)制→二進(jìn)制形式,并分離出符號位、階碼和尾數(shù)。
C1C90000H=
1;10000011;10010010000000000000000階碼符號位尾數(shù)61IEEE754標(biāo)準(zhǔn)的浮點數(shù)(續(xù))⑵計算出階碼真值(移碼-偏置值)
10000011-1111111=100⑶以規(guī)格化二進(jìn)制數(shù)形式寫出此數(shù)
1.1001001×24⑷寫成非規(guī)格化二進(jìn)制數(shù)形式
11001.001⑸轉(zhuǎn)換成十進(jìn)制數(shù),并加上符號位。
(11001.001)2=(25.125)10
所以,該浮點數(shù)=-25.12562通常,將IEEE754短浮點數(shù)規(guī)格化的數(shù)值v表示為:
V=×(1.f)×其中,S代表符號位,S=0表示正數(shù),S=1表示負(fù)數(shù);E為用移碼表示的階碼;f是尾數(shù)的小數(shù)部分。為了表示∞和一些特殊的數(shù)值,E的最小值0和最大值255將留作它用。因此,最小正常的E=1,最大正常的E=254,所以短浮點數(shù)的階碼真值的取值范圍為-126~127。當(dāng)E和m均為全0時,表示機(jī)器零;當(dāng)E為全1,m為全0,表示±∞。632.3非數(shù)值數(shù)據(jù)的表示
非數(shù)值數(shù)據(jù),又稱為字符數(shù)據(jù),通常是指字符、字符串、圖形符號和漢字等各種數(shù)據(jù),它們不用來表示數(shù)值的大小,一般情況下不對它們進(jìn)行算術(shù)運算。642.3.1字符和字符串的表示1.ASCII字符編碼常見的ASCII碼用七位二進(jìn)制表示一個字符,它包括10個十進(jìn)制數(shù)字(0~9)、52個英文大寫和小寫字母(A~Z,a~z)、34個專用符號和32個控制符號,共計128個字符。在計算機(jī)中,通常用一個字節(jié)來存放一個字符。在ASCII碼表中,數(shù)字和英文字母都是按順序排列的,只要知道其中一個的二進(jìn)制代碼,不要查表就可以推導(dǎo)出其他數(shù)字或字母的二進(jìn)制代碼。65ASCII字符編碼表662.字符串的存放字符串是指一串連續(xù)的字符。例如,字符串IFX>0THENREAD(C)。
向量存放法在存儲器中占用一片連續(xù)的空間,每個字節(jié)存放一個字符代碼,字符串的所有元素(字符)在物理上是鄰接的。在字長為32位的存儲器,每一個主存單元可存放4個字符,整個字符串需5個主存單元。在每個字節(jié)中實際存放的是相應(yīng)字符的ASCII碼。67IFX>0THENREA(C)D字符串的向量存放方案5449462020202030454541444852433E2928584E圖2-7字符串的向量存放方案681.漢字國標(biāo)碼漢字國標(biāo)碼亦可稱為漢字交換碼,主要用于漢字信息處理系統(tǒng)之間或者通信系統(tǒng)之間交換信息使用,簡稱GB碼。該標(biāo)準(zhǔn)共收集常用漢字6763個,另外還有各種圖形符號682個,共計7445個。
GB碼規(guī)定每個漢字、圖形符號都用兩個字節(jié)表示,每個字節(jié)只使用低七位編碼,因此最多能表示出128×128=16384個漢字。2.3.2漢字的表示69區(qū)位碼將漢字編碼碼中的6763個漢字分為94個區(qū),每個區(qū)中包含94個漢字(位),區(qū)和位組成一個二維數(shù)組,每個漢字在數(shù)組中對應(yīng)一個唯一的區(qū)位碼。漢字的區(qū)位碼定長4位,前2位表示區(qū)號,后2位表示位號,區(qū)號和位號用十進(jìn)制數(shù)表示,區(qū)號從01到94,位號也從01到94。例如,“中”字在54區(qū)的48位上,其區(qū)位碼為“54-48”,“國”字在25區(qū)的90位上,其區(qū)位碼為“25-90”。2.漢字區(qū)位碼70需要注意的是:漢字區(qū)位碼并不等于漢字國標(biāo)碼,它們兩者之間的關(guān)系可用以下公式表示:
國標(biāo)碼=區(qū)位碼(十六進(jìn)制)+2020H例15:已知漢字“春”的區(qū)位碼為“20-26”,計算它的國標(biāo)碼。區(qū)位碼:第1字節(jié)第2字節(jié)2026十進(jìn)制↓↓14H1AH十六進(jìn)制+20H+20H
國標(biāo)碼:34H3AH2.漢字區(qū)位碼(續(xù))71
漢字在計算機(jī)內(nèi)部其內(nèi)碼是唯一的。因為漢字處理系統(tǒng)要保證中西文的兼容,當(dāng)系統(tǒng)中同時存在ASCII碼和漢字國標(biāo)碼時,將會產(chǎn)生二義性。例如:有兩個字節(jié)的內(nèi)容為30H和21H,它既可表示漢字“啊”的國標(biāo)碼,又可表示西文“0”和“!”的ASCII碼。為此,漢字機(jī)內(nèi)碼應(yīng)對國標(biāo)碼加以適當(dāng)處理和變換。
GB碼的機(jī)內(nèi)碼為二字節(jié)長的代碼,它是在相應(yīng)GB碼的每個字節(jié)最高位上加“1”,即
漢字機(jī)內(nèi)碼=漢字國標(biāo)碼+8080H例如,上述“啊”字的國標(biāo)碼是3021H,其漢字機(jī)內(nèi)碼則是B0A1H。3.漢字機(jī)內(nèi)碼722.4十進(jìn)制數(shù)和數(shù)串的表示十進(jìn)制是人們最常用的數(shù)據(jù)表示方法,一些通用性較強(qiáng)的計算機(jī)上設(shè)有十進(jìn)制數(shù)據(jù)的表示,可以直接對十進(jìn)制數(shù)進(jìn)行運算和處理。732.4.1十進(jìn)制數(shù)的編碼用四位二進(jìn)制數(shù)來表示一位十進(jìn)制數(shù),稱為二進(jìn)制編碼的十進(jìn)制數(shù),簡稱BCD碼。四位二進(jìn)制數(shù)可以組合出16種代碼,能表示16種不同的狀態(tài),我們只需要使用其中的10種狀態(tài),就可以表示十進(jìn)制數(shù)的0~9十個數(shù)碼,而其他的六種狀態(tài)為冗余狀態(tài)。由于可以取任意的10種代碼來表示十個數(shù)碼,所以就可能產(chǎn)生多種BCD編碼。BCD編碼既具有二進(jìn)制數(shù)的形式,又保持了十進(jìn)制數(shù)的特點。74幾種常見的BCD碼751.8421碼8421碼又稱為NBCD碼,其主要特點是:⑴它是一種有權(quán)碼,四位二進(jìn)制代碼的位權(quán)從高到低分別為8、4、2、1。⑵簡單直觀。每個代碼與它所代表的十進(jìn)制數(shù)之間符合二進(jìn)制數(shù)和十進(jìn)制數(shù)相互轉(zhuǎn)換的規(guī)則。⑶不允許出現(xiàn)1010~1111。這6個代碼在8421碼中是非法碼。762.2421碼
2421碼的主要特點是:⑴它也是一種有權(quán)碼,四位二進(jìn)制代碼的位權(quán)從高到低分別為2、4、2、1。⑵它又是一種對9的自補碼。即某數(shù)的2421碼,只要自身按位取反,就能得到該數(shù)對9之補的2421碼。例如:
3的2421碼是0011。3對9之補是6,而6的2421碼是1100。⑶不允許出現(xiàn)0101~1010。這6個代碼在2421碼中是非法碼。773.余3碼余3碼的主要特點是:⑴這是一種無權(quán)碼,但也可看作是一種特殊的有權(quán)碼,即在8421碼的基礎(chǔ)上加+3(+0011)形成的,故稱余3碼。在這種編碼中各位的“1”不表示一個固定的十進(jìn)制數(shù)值,因而不直觀。⑵它也是一種對9的自補碼。⑶不允許出現(xiàn)0000~0010、1101~1111。這6個代碼在余3碼中是非法碼。782.6數(shù)據(jù)校驗碼數(shù)據(jù)校驗碼是指那些能夠發(fā)現(xiàn)錯誤或能夠自動糾正錯誤的數(shù)據(jù)編碼,又稱之為“檢錯糾錯編碼”。任何一種編碼都由許多碼字構(gòu)成,任意兩個碼字之間最少變化的二進(jìn)制位數(shù),被稱為數(shù)據(jù)校驗碼的碼距。例如,用四位二進(jìn)制表示16種狀態(tài),則有16個不同的碼字,此時碼距為1,即兩個碼字之間最少僅有一個二進(jìn)制位不同(如0000與0001之間)。這種編碼沒有檢錯能力,因為當(dāng)某一個合法碼字中有一位或幾位出錯,就變成為另一個合法碼字了。792.6.1奇偶校驗碼1.奇偶校驗概念奇偶校驗碼是一種最簡單的數(shù)據(jù)校驗碼,它的碼距等于2,可以檢測出一位錯誤(或奇數(shù)位錯誤),但不能確定出錯的位置,也不能檢測出偶數(shù)位錯誤。奇偶校驗實現(xiàn)方法是:由若干位有效信息(如一個字節(jié)),再加上一個二進(jìn)制位(校驗位)組成校驗碼。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)烹飪(烹飪工藝創(chuàng)新)試題及答案
- 2025年中職(國土資源調(diào)查與管理)土地規(guī)劃綜合測試題及答案
- 2025年大學(xué)地理(地理研究方法)試題及答案
- 2025年高職水土保持技術(shù)(水土保持工程施工)試題及答案
- 上海市普陀區(qū)2026屆初三一模數(shù)學(xué)試題(含答案詳解)
- 上海市虹口區(qū)2026屆初三一模物理試題(含答案)
- 神奇的折疊屏技術(shù)
- 2026四川廣安市廣安區(qū)白市鎮(zhèn)人民政府選用片區(qū)紀(jì)檢監(jiān)督員1人備考題庫及1套完整答案詳解
- 2026廣西欽州市文化廣電體育和旅游局急需緊缺人才招1人備考題庫及參考答案詳解一套
- 2022-2023學(xué)年廣東深圳多校九年級上學(xué)期11月聯(lián)考數(shù)學(xué)試題含答案
- 部編版八年級上冊語文《期末考試卷》及答案
- 麻醉藥品、精神藥品月檢查記錄
- 醫(yī)院信訪維穩(wěn)工作計劃表格
- 蕉嶺縣幅地質(zhì)圖說明書
- 地下車庫建筑結(jié)構(gòu)設(shè)計土木工程畢業(yè)設(shè)計
- (完整word版)人教版初中語文必背古詩詞(完整版)
- GB/T 2261.4-2003個人基本信息分類與代碼第4部分:從業(yè)狀況(個人身份)代碼
- GB/T 16601.1-2017激光器和激光相關(guān)設(shè)備激光損傷閾值測試方法第1部分:定義和總則
- PDM結(jié)構(gòu)設(shè)計操作指南v1
- 投資學(xué)-課件(全)
- 幼兒園課件:大班語言古詩《梅花》精美
評論
0/150
提交評論