第2章 數(shù)據(jù)的機(jī)器層次表示_第1頁(yè)
第2章 數(shù)據(jù)的機(jī)器層次表示_第2頁(yè)
第2章 數(shù)據(jù)的機(jī)器層次表示_第3頁(yè)
第2章 數(shù)據(jù)的機(jī)器層次表示_第4頁(yè)
第2章 數(shù)據(jù)的機(jī)器層次表示_第5頁(yè)
已閱讀5頁(yè),還剩104頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章

數(shù)據(jù)的機(jī)器層次表示1數(shù)據(jù)是計(jì)算機(jī)加工和處理的對(duì)象,數(shù)據(jù)的機(jī)器層次表示將直接影響到計(jì)算機(jī)的結(jié)構(gòu)和性能。本章主要介紹無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)的表示方法、數(shù)的定點(diǎn)與浮點(diǎn)表示方法、字符和漢字的編碼方法、數(shù)據(jù)校驗(yàn)碼等。熟悉和掌握本章的內(nèi)容,是學(xué)習(xí)計(jì)算機(jī)原理的最基本要求。2本章學(xué)習(xí)內(nèi)容2.1數(shù)值數(shù)據(jù)的表示2.2機(jī)器數(shù)的定點(diǎn)表示和浮點(diǎn)表示2.3非數(shù)值數(shù)據(jù)的表示2.4十進(jìn)制數(shù)和數(shù)串的表示2.5現(xiàn)代微型計(jì)算機(jī)中的數(shù)據(jù)表示舉例2.6數(shù)據(jù)校驗(yàn)碼3本章學(xué)習(xí)要求了解:無(wú)符號(hào)數(shù)與帶符號(hào)數(shù),真值和機(jī)器數(shù)等概念掌握:原碼、補(bǔ)碼、反碼表示法以及三種碼制與真值之間的轉(zhuǎn)換方法

掌握:定點(diǎn)數(shù)和浮點(diǎn)數(shù)的表示法和表示范圍理解:規(guī)格化浮點(diǎn)數(shù)概念、浮點(diǎn)數(shù)階碼的移碼表示法掌握:最小規(guī)格化正數(shù)與最小正數(shù)的區(qū)別了解:IEEE754浮點(diǎn)數(shù)標(biāo)準(zhǔn)掌握:常見(jiàn)的字符編碼方法(ASCII碼)、漢字國(guó)標(biāo)碼、區(qū)位碼、機(jī)內(nèi)碼4本章學(xué)習(xí)要求(續(xù))了解:二—十進(jìn)制編碼的原理掌握:8241碼、2421碼和余3碼掌握:奇偶校驗(yàn)位及其形成方法了解:海明校驗(yàn)碼和循環(huán)冗余校驗(yàn)碼52.1數(shù)值數(shù)據(jù)的表示

在計(jì)算機(jī)中,采用數(shù)字化方式來(lái)表示數(shù)據(jù),數(shù)據(jù)有無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)之分,其中帶符號(hào)數(shù)根據(jù)其編碼的不同又有原碼、補(bǔ)碼和反碼3種形式。62.1.1計(jì)算機(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個(gè)數(shù)為375D、101B、76Q、A17H,從后綴字母就可以知道它們分別是十進(jìn)制數(shù)、二進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)。72.1.1計(jì)算機(jī)中的數(shù)值數(shù)據(jù)(補(bǔ)充)一、進(jìn)位計(jì)數(shù)制

進(jìn)位計(jì)數(shù)制基數(shù)數(shù)碼權(quán)重符號(hào)二進(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ù)點(diǎn)左邊,即整數(shù)部分的位數(shù),從第0位到第n-1位;m是小數(shù)點(diǎn)右邊,即小數(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)展開(kāi)再相加。例如:(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)展開(kāi)再相加。例如:(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)展開(kāi)再相加。例如:(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無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)無(wú)符號(hào)數(shù),就是整個(gè)機(jī)器字長(zhǎng)的全部二進(jìn)制位均表示數(shù)值位(沒(méi)有符號(hào)位),相當(dāng)于數(shù)的絕對(duì)值。例如:

N1=01001表示無(wú)符號(hào)數(shù)9

N2=11001表示無(wú)符號(hào)數(shù)25機(jī)器字長(zhǎng)為n+1位的無(wú)符號(hào)數(shù)的表示范圍是0~(2n+1-1),此時(shí)二進(jìn)制的最高位也是數(shù)值位,其權(quán)值等于2n。若字長(zhǎng)為8位,則數(shù)的表示范圍為0~255。192.1.2無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)(續(xù))帶符號(hào)數(shù),即正、負(fù)數(shù)。在日常生活中,我們用“+”、“-”號(hào)加絕對(duì)值來(lái)表示數(shù)值的大小,用這種形式表示的數(shù)值在計(jì)算機(jī)技術(shù)中稱為“真值”。在計(jì)算機(jī)中需要把數(shù)的符號(hào)數(shù)碼化。通常,約定二進(jìn)制數(shù)的最高位為符號(hào)位,“0”表示正號(hào),“1”表示負(fù)號(hào)。這種在計(jì)算機(jī)中使用的表示數(shù)的形式稱為機(jī)器數(shù)。202.1.2無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)(續(xù))常見(jiàn)的機(jī)器數(shù)有原碼、反碼、補(bǔ)碼等3種不同的表示形式。帶符號(hào)數(shù)的最高位被用來(lái)表示符號(hào)位,而不再表示數(shù)值位。前例中的N1、N2

在這里的含義變?yōu)椋?/p>

N1=01001表示+9。

N2=11001根據(jù)機(jī)器數(shù)的不同形式表示不同的值,如是原碼則表示-9,補(bǔ)碼則表示-7,反碼則表示-6。

212.1.2無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)(續(xù))為了能正確地區(qū)別出真值和各種機(jī)器數(shù),本書(shū)中用X表示真值,[X]原表示原碼,[X]補(bǔ)表示補(bǔ)碼,[X]反表示反碼。222.1.3原碼表示法原碼表示法是一種最簡(jiǎn)單的機(jī)器數(shù)表示法,用最高位表示符號(hào)位,符號(hào)位為“0”表示該數(shù)為正,符號(hào)位為“1”表示該數(shù)為負(fù),數(shù)值部分與真值相同。設(shè)二進(jìn)制純小數(shù)的原碼形式為Xs.X1X2…Xn,字長(zhǎng)n+1位,其中Xs表示符號(hào)位。

例1:X1=0.0110,[X1]原=0.0110X2=-0.0110,[X2]原=1.0110232.1.3原碼表示法(續(xù))設(shè)二進(jìn)制純整數(shù)的原碼形式為XsX1X2…Xn,其中Xs表示符號(hào)位。例2:X1=1101,[X1]原=01101X2=-1101,[X2]原=11101

在原碼表示中,真值0有兩種不同的表示形式:[+0]原=00000

[-0]原=10000242.1.4補(bǔ)碼表示法1.模和同余模是指一個(gè)計(jì)量器的容量,可用M表示。例如:一個(gè)4位的二進(jìn)制計(jì)數(shù)器,當(dāng)計(jì)數(shù)器從0計(jì)到15之后,再加1,計(jì)數(shù)值又變?yōu)?。這個(gè)計(jì)數(shù)器的容量M=24=16,即模為16。由此可見(jiàn),純小數(shù)的模為2,一個(gè)字長(zhǎng)為n+1位的純整數(shù)的模為2n+1。同余是指兩整數(shù)A、B除以同一正整數(shù)M,所得余數(shù)相同,則稱A、B對(duì)M同余,即A、B在以M為模時(shí)是相等的,可寫(xiě)作

A=B(modM)25關(guān)于定點(diǎn)小數(shù)和定點(diǎn)整數(shù)的模計(jì)算機(jī)本身是一個(gè)模數(shù)系統(tǒng),這是因?yàn)闄C(jī)器字長(zhǎng)是有限的。當(dāng)運(yùn)算結(jié)果的位數(shù)超過(guò)機(jī)器字長(zhǎng)時(shí),向更高位的進(jìn)位就會(huì)被丟失,這就是計(jì)算機(jī)的“?!?。對(duì)于n+1位的定點(diǎn)小數(shù)來(lái)說(shuō),可表示為:

Xs.X1X2…Xn其中,Xs是符號(hào)位,它的位權(quán)是。符號(hào)位向更高位的進(jìn)位會(huì)被丟失,所以定點(diǎn)小數(shù)以為模。

26關(guān)于定點(diǎn)小數(shù)和定點(diǎn)整數(shù)的模對(duì)于n+1位的定點(diǎn)整數(shù)來(lái)說(shuō),可表示為:

XsX1X2…Xn其中,Xs是符號(hào)位,它的位權(quán)是。符號(hào)位向更高位的進(jìn)位會(huì)被丟失,所以定點(diǎn)整數(shù)以為模。

27時(shí)鐘正撥和倒撥對(duì)鐘表而言,M=12。假設(shè):時(shí)鐘停在8點(diǎn),而現(xiàn)在正確的時(shí)間是6點(diǎn),這時(shí)撥準(zhǔn)時(shí)鐘的方法有兩種:正撥和倒撥。

(1)將分針倒著旋轉(zhuǎn)兩圈(即時(shí)鐘倒撥2小時(shí))8-2=6(做減法)

(2)

將分針正著旋轉(zhuǎn)10圈(即時(shí)鐘正撥10小時(shí))8+10=6(mod12)(做加法)倒撥時(shí)鐘正撥時(shí)鐘28時(shí)鐘正撥和倒撥(續(xù))分針倒著旋轉(zhuǎn)2圈,等于分針正著旋轉(zhuǎn)10圈。此時(shí)8-2=8+10(mod12)故有:-2=10(mod12),即-2和10同余。同余的兩個(gè)數(shù),具有互補(bǔ)關(guān)系,-2與10對(duì)模12互補(bǔ),也可以說(shuō)-2的補(bǔ)數(shù)是10(以12為模)??梢?jiàn),只要確定了“?!?,就可找到一個(gè)與負(fù)數(shù)等價(jià)的正數(shù)(該正數(shù)即為負(fù)數(shù)的補(bǔ)數(shù))來(lái)代替此負(fù)數(shù),而這個(gè)正數(shù)可以用模加上負(fù)數(shù)本身求得,這樣就可以把減法運(yùn)算用加法來(lái)實(shí)現(xiàn)了。29補(bǔ)碼的符號(hào)位表示方法與原碼相同,其數(shù)值部分的表示與數(shù)的正負(fù)有關(guān):對(duì)于正數(shù),數(shù)值部分與真值形式相同;對(duì)于負(fù)數(shù),將真值的數(shù)值部分按位取反,且在最低位上加1。若真值為純小數(shù),它的補(bǔ)碼形式為Xs.X1X2…Xn,其中Xs表示符號(hào)位。例5:X1=0.0110,[X1]補(bǔ)=0.0110X2=-0.0110,[X2]補(bǔ)=1.10102.補(bǔ)碼表示30若真值為純整數(shù),它的補(bǔ)碼形式為XsX1X2…Xn,其中Xs表示符號(hào)位。例6:X1=1101,[X1]補(bǔ)=01101X2=-1101,[X2]補(bǔ)=10011在補(bǔ)碼表示中,真值0的表示形式是唯一的:[+0]補(bǔ)=[-0]補(bǔ)=000002.補(bǔ)碼表示(續(xù))31當(dāng)X為正數(shù)時(shí),[X]補(bǔ)=[X]原=X

當(dāng)X為負(fù)數(shù)時(shí),由[X]原轉(zhuǎn)換為[X]補(bǔ)的方法:①[X]原除掉符號(hào)位外的各位取反加“1”。②自低位向高位,尾數(shù)的第一個(gè)“1”及其右部的“0”保持不變,左部的各位取反,符號(hào)位保持不變。例7:[X]原=1.1110011000[X]補(bǔ)=1.00011010003.由真值、原碼轉(zhuǎn)換為補(bǔ)碼不變不變變反322.1.5反碼表示法反碼表示法與補(bǔ)碼表示法有許多類似之處,對(duì)于正數(shù),數(shù)值部分與真值形式相同;對(duì)于負(fù)數(shù),將真值的數(shù)值部分按位取反。若真值為純小數(shù),它的反碼形式為Xs.X1X2…Xn,其中Xs表示符號(hào)位。例9:X1=0.0110,[X1]反=0.0110X2=-0.0110,[X2]反=1.1001332.1.5反碼表示法(續(xù))若真值為純整數(shù),它的反碼形式為XsX1X2…Xn,其中Xs表示符號(hào)位。例10:X1=1101,[X1]補(bǔ)=01101X2=-1101,[X2]補(bǔ)=10010

在反碼表示中,真值0也有兩種不同的表示形式:[+0]反=00000[-0]反=11111341.比較對(duì)于正數(shù)它們都等于真值本身,而對(duì)于負(fù)數(shù)各有不同的表示。最高位都表示符號(hào)位,補(bǔ)碼和反碼的符號(hào)位可作為數(shù)值位的一部分看待,和數(shù)值位一起參加運(yùn)算;但原碼的符號(hào)位不允許和數(shù)值位同等看待,必須分開(kāi)進(jìn)行處理。對(duì)于真值0,原碼和反碼各有兩種不同的表示形式,而補(bǔ)碼只有唯一的一種表示形式。原碼、反碼表示的正、負(fù)數(shù)范圍相對(duì)零來(lái)說(shuō)是對(duì)稱的;但補(bǔ)碼負(fù)數(shù)表示范圍較正數(shù)表示范圍寬,能多表示一個(gè)最負(fù)的數(shù)(絕對(duì)值最大的負(fù)數(shù)),其值等于-2n(純整數(shù))或-1(純小數(shù))。2.1.6三種碼制的比較與轉(zhuǎn)換35真值與3種機(jī)器數(shù)間的對(duì)照362.轉(zhuǎn)換如果已知機(jī)器的字長(zhǎng),則機(jī)器數(shù)的位數(shù)應(yīng)補(bǔ)夠相應(yīng)的位。例如,設(shè)機(jī)器字長(zhǎng)為8位,則:

X1=1011X2=-1011[X1]原=00001011[X2]原=10001011[X1]補(bǔ)=00001011[X2]補(bǔ)=11110101[X1]反=00001011[X2]反=11110100

X3=0.1011X4=-0.1011[X3]原=0.1011000[X4]原=1.1011000[X3]補(bǔ)=0.1011000[X4]補(bǔ)=1.0101000[X3]反=0.1011000[X4]反=1.0100111372.2機(jī)器數(shù)的定點(diǎn)表示與浮點(diǎn)表示計(jì)算機(jī)在進(jìn)行算術(shù)運(yùn)算時(shí),需要指出小數(shù)點(diǎn)的位置。根據(jù)小數(shù)點(diǎn)的位置是否固定,在計(jì)算機(jī)中有兩種數(shù)據(jù)格式:定點(diǎn)表示和浮點(diǎn)表示。382.2.1定點(diǎn)表示法

在定點(diǎn)表示法中約定:所有數(shù)據(jù)的小數(shù)點(diǎn)位置固定不變。1.定點(diǎn)小數(shù)

小數(shù)點(diǎn)的位置固定在最高有效數(shù)位之前,符號(hào)位之后,記作Xs.X1X2…Xn,這個(gè)數(shù)是一個(gè)純小數(shù)。定點(diǎn)小數(shù)的小數(shù)點(diǎn)位置是隱含約定的,小數(shù)點(diǎn)并不需要真正地占據(jù)一個(gè)二進(jìn)制位。39定點(diǎn)小數(shù)表示范圍圖2-2定點(diǎn)小數(shù)格式

當(dāng)Xs=0,X1~Xn=1時(shí),X為最大正數(shù)。

X最大正數(shù)=1-2-n當(dāng)Xn=1,Xs~Xn-1=0時(shí),X為最小正數(shù)。

X最小正數(shù)=2-n40定點(diǎn)小數(shù)表示范圍(續(xù))當(dāng)Xs=1,表示X為負(fù)數(shù),此時(shí)情況要稍微復(fù)雜一些,這是因?yàn)樵谟?jì)算機(jī)中帶符號(hào)數(shù)可用補(bǔ)碼表示,也可用原碼表示。原碼和補(bǔ)碼的表示范圍有一些差別。若機(jī)器數(shù)為原碼表示,當(dāng)Xs~Xn均等于1時(shí),X為絕對(duì)值最大的負(fù)數(shù)。

X絕對(duì)值最大負(fù)數(shù)=-(1-2-n)

若機(jī)器數(shù)為補(bǔ)碼表示,當(dāng)Xs=1,X1~Xn均等于0時(shí),X為絕對(duì)值最大的負(fù)數(shù)。

X絕對(duì)值最大負(fù)數(shù)=-141若機(jī)器字長(zhǎng)有n+1位,則有:原碼定點(diǎn)小數(shù)表示范圍:

-(1-2-n)~(1-2-n)補(bǔ)碼定點(diǎn)小數(shù)表示范圍:

-1~(1-2-n)

若機(jī)器字長(zhǎng)有8位,則有:原碼定點(diǎn)小數(shù)表示范圍:-~補(bǔ)碼定點(diǎn)小數(shù)表示范圍:

-1~定點(diǎn)小數(shù)表示范圍(續(xù))422.定點(diǎn)整數(shù)定點(diǎn)整數(shù)即純整數(shù),小數(shù)點(diǎn)位置隱含固定在最低有效數(shù)位之后,記作XsX1X2…Xn。圖2-3定點(diǎn)整數(shù)格式43若機(jī)器字長(zhǎng)有n+1位,則有:原碼定點(diǎn)整數(shù)的表示范圍:

-(2n-1)~(2n-1)補(bǔ)碼定點(diǎn)整數(shù)的表示范圍:

-2n

~(2n-1)若機(jī)器字長(zhǎng)有8位,則有:原碼定點(diǎn)整數(shù)表示范圍:-127~127補(bǔ)碼定點(diǎn)整數(shù)表示范圍:-128~127定點(diǎn)整數(shù)表示范圍44

小數(shù)點(diǎn)的位置根據(jù)需要而浮動(dòng),這就是浮點(diǎn)數(shù)。例如:

N=M×rE式中:r為浮點(diǎn)數(shù)階碼的底,與尾數(shù)的基數(shù)相同,通常r=2。E和M都是帶符號(hào)數(shù),E叫做階碼,M叫做尾數(shù)。在大多數(shù)計(jì)算機(jī)中,尾數(shù)為純小數(shù),常用原碼或補(bǔ)碼表示;階碼為純整數(shù),常用移碼或補(bǔ)碼表示。2.2.2浮點(diǎn)表示法45圖2-5浮點(diǎn)數(shù)的一般格式浮點(diǎn)數(shù)的底是隱含的,在整個(gè)機(jī)器數(shù)中不出現(xiàn)。階碼的符號(hào)位為es,階碼的大小反映了在數(shù)N中小數(shù)點(diǎn)的實(shí)際位置;尾數(shù)的符號(hào)位為ms,它是整個(gè)浮點(diǎn)數(shù)的符號(hào)位,表示了該浮點(diǎn)數(shù)的正負(fù)。浮點(diǎn)數(shù)的一般格式461.浮點(diǎn)數(shù)的表示范圍當(dāng)es=0,ms=0,階碼和尾數(shù)的數(shù)值位各位全為1(即階碼和尾數(shù)都為最大正數(shù))時(shí),該浮點(diǎn)數(shù)為最大正數(shù):

X最大正數(shù)=(1-2-n)

當(dāng)es=1,ms=0,尾數(shù)的最低位mn=1,其余各位為0(即階碼為絕對(duì)值最大的負(fù)數(shù),尾數(shù)為最小正數(shù))時(shí),該浮點(diǎn)數(shù)為最小正數(shù):

X最小正數(shù)=2-n

471.浮點(diǎn)數(shù)的表示范圍(續(xù))當(dāng)es=0,階碼的數(shù)值位為全1;ms=1,尾數(shù)的數(shù)值位為全0(即階碼為最大正數(shù),尾數(shù)為絕對(duì)值最大的負(fù)數(shù))時(shí),該浮點(diǎn)數(shù)為絕對(duì)值最大負(fù)數(shù):

X絕對(duì)值最大負(fù)數(shù)=-1

48為了提高運(yùn)算的精度,需要充分地利用尾數(shù)的有效數(shù)位,通常采取浮點(diǎn)數(shù)規(guī)格化形式,即規(guī)定尾數(shù)的最高數(shù)位必須是一個(gè)有效值。例如:0.001101×

、0.01101×

、

0.1101×只有最后一個(gè)是規(guī)格化浮點(diǎn)數(shù)。

規(guī)格化浮點(diǎn)數(shù)的尾數(shù)M的絕對(duì)值應(yīng)在下列范圍內(nèi):1/r≤|M|<1

如果r=2,則有1/2≤|M|<12.規(guī)格化浮點(diǎn)數(shù)492.規(guī)格化浮點(diǎn)數(shù)(續(xù))在尾數(shù)用補(bǔ)碼表示時(shí),規(guī)格化浮點(diǎn)數(shù)應(yīng)滿足尾數(shù)最高數(shù)位與符號(hào)位不同(ms⊕m1=1),即當(dāng)1/2≤M<1時(shí),應(yīng)有0.1xx…x形式,當(dāng)-1≤M<-1/2時(shí),應(yīng)有1.0xx…x形式。需要注意的是當(dāng)M=-1/2,對(duì)于原碼來(lái)說(shuō),是規(guī)格化數(shù),而對(duì)于補(bǔ)碼來(lái)說(shuō),不是規(guī)格化數(shù);當(dāng)M=-1,對(duì)于原碼來(lái)說(shuō),不是規(guī)格化數(shù),而對(duì)于補(bǔ)碼來(lái)說(shuō),是規(guī)格化數(shù)。502.規(guī)格化浮點(diǎn)數(shù)(續(xù))當(dāng)es=1,ms=0,尾數(shù)的最高位m1=1,其余各位為0時(shí),該浮點(diǎn)數(shù)為規(guī)格化的最小正數(shù):

X規(guī)格化的最小正數(shù)=2-1

規(guī)格化的最小正數(shù)大于非規(guī)格化的最小正數(shù)。51浮點(diǎn)數(shù)的典型值522.2.3移碼表示法移碼就是在真值X上加一個(gè)常數(shù)(偏置值),相當(dāng)于X在數(shù)軸上向正方向平移了一段距離,這就是“移碼”一詞的來(lái)由。[X]移=偏置值+X對(duì)于字長(zhǎng)8位的定點(diǎn)整數(shù),偏置值為27。

例11:X=1011101[X]移=27+X=10000000+1011101=11011101[X]補(bǔ)=01011101例12:X=-1011101[X]移=27+X=10000000-1011101=00100011[X]補(bǔ)=1010001153偏置值為27的移碼、補(bǔ)碼和真值之間的關(guān)系…………54偏置值為2n的移碼的特點(diǎn)⑴在移碼中,最高位為“0”表示負(fù)數(shù),最高位為“1”表示正數(shù)。⑵移碼為全0時(shí),它所對(duì)應(yīng)的真值最小,為全1時(shí),它所對(duì)應(yīng)的真值最大。⑶真值0在移碼中的表示形式是唯一的,即[+0]移=[-0]移=100…0。⑷移碼把真值映射到一個(gè)正數(shù)域,所以可將移碼視為無(wú)符號(hào)數(shù),直接按無(wú)符號(hào)數(shù)規(guī)則比較大小。⑸同一數(shù)值的移碼和補(bǔ)碼除最高位相反外,其他各位相同。55浮點(diǎn)數(shù)的階碼采用移碼的原因便于比較浮點(diǎn)數(shù)的大小。階碼大的,其對(duì)應(yīng)的真值就大,階碼小的,對(duì)應(yīng)的真值就小。簡(jiǎn)化機(jī)器中的判零電路。當(dāng)階碼全為0,尾數(shù)也全為0時(shí),表示機(jī)器零。56圖2-6IEEE754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)格式2.2.6實(shí)用浮點(diǎn)數(shù)舉例57短浮點(diǎn)數(shù)又被稱為單精度浮點(diǎn)數(shù),長(zhǎng)浮點(diǎn)數(shù)又稱為雙精度浮點(diǎn)數(shù),它們都采用隱含尾數(shù)最高數(shù)位的方法,這樣,無(wú)形中又增加了一位尾數(shù)。臨時(shí)浮點(diǎn)數(shù)又稱為擴(kuò)展精度浮點(diǎn)數(shù),它沒(méi)有隱含位。58IEEE754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)以短浮點(diǎn)數(shù)為例討論浮點(diǎn)代碼與其真值之間的關(guān)系。最高位為數(shù)符位;其后是8位階碼,以2為底,階碼的偏置值為127;其余23位是尾數(shù)。為了使尾數(shù)部分能表示更多一位的有效值,IEEE754采用隱含尾數(shù)最高數(shù)位1(即這一位1不表示出來(lái))的方法,因此尾數(shù)實(shí)際上是24位。應(yīng)注意的是,隱含的1是一位整數(shù)(即位權(quán)為20),在浮點(diǎn)格式中表示出來(lái)的23位尾數(shù)是純小數(shù),并用原碼表示。59IEEE754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)(續(xù))例13:將(100.25)10轉(zhuǎn)換成短浮點(diǎn)數(shù)格式。⑴十進(jìn)制數(shù)→二進(jìn)制數(shù)

(100.25)10=(1100100.01)2⑵非規(guī)格化數(shù)→規(guī)格化數(shù)

1100100.01=1.10010001×26⑶計(jì)算移碼表示的階碼(偏置值+階碼真值)

1111111+110=10000101⑷以短浮點(diǎn)數(shù)格式存儲(chǔ)該數(shù)。符號(hào)位=0

階碼=10000101

尾數(shù)=1001000100000000000000060IEEE754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)(續(xù))短浮點(diǎn)數(shù)代碼為

0;100

0010

1;100

1000

1000

0000

0000

0000表示為十六進(jìn)制的代碼:42C88000H。例14:把短浮點(diǎn)數(shù)C1C90000H轉(zhuǎn)換成為十進(jìn)制數(shù)。⑴十六進(jìn)制→二進(jìn)制形式,并分離出符號(hào)位、階碼和尾數(shù)。

C1C90000H=

1;10000011;10010010000000000000000階碼符號(hào)位尾數(shù)61IEEE754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)(續(xù))⑵計(jì)算出階碼真值(移碼-偏置值)

10000011-1111111=100⑶以規(guī)格化二進(jìn)制數(shù)形式寫(xiě)出此數(shù)

1.1001001×24⑷寫(xiě)成非規(guī)格化二進(jìn)制數(shù)形式

11001.001⑸轉(zhuǎn)換成十進(jìn)制數(shù),并加上符號(hào)位。

(11001.001)2=(25.125)10

所以,該浮點(diǎn)數(shù)=-25.12562通常,將IEEE754短浮點(diǎn)數(shù)規(guī)格化的數(shù)值v表示為:

V=×(1.f)×其中,S代表符號(hào)位,S=0表示正數(shù),S=1表示負(fù)數(shù);E為用移碼表示的階碼;f是尾數(shù)的小數(shù)部分。為了表示∞和一些特殊的數(shù)值,E的最小值0和最大值255將留作它用。因此,最小正常的E=1,最大正常的E=254,所以短浮點(diǎn)數(shù)的階碼真值的取值范圍為-126~127。當(dāng)E和m均為全0時(shí),表示機(jī)器零;當(dāng)E為全1,m為全0,表示±∞。632.3非數(shù)值數(shù)據(jù)的表示

非數(shù)值數(shù)據(jù),又稱為字符數(shù)據(jù),通常是指字符、字符串、圖形符號(hào)和漢字等各種數(shù)據(jù),它們不用來(lái)表示數(shù)值的大小,一般情況下不對(duì)它們進(jìn)行算術(shù)運(yùn)算。642.3.1字符和字符串的表示1.ASCII字符編碼常見(jiàn)的ASCII碼用七位二進(jìn)制表示一個(gè)字符,它包括10個(gè)十進(jìn)制數(shù)字(0~9)、52個(gè)英文大寫(xiě)和小寫(xiě)字母(A~Z,a~z)、34個(gè)專用符號(hào)和32個(gè)控制符號(hào),共計(jì)128個(gè)字符。在計(jì)算機(jī)中,通常用一個(gè)字節(jié)來(lái)存放一個(gè)字符。在ASCII碼表中,數(shù)字和英文字母都是按順序排列的,只要知道其中一個(gè)的二進(jìn)制代碼,不要查表就可以推導(dǎo)出其他數(shù)字或字母的二進(jìn)制代碼。65ASCII字符編碼表662.字符串的存放字符串是指一串連續(xù)的字符。例如,字符串IFX>0THENREAD(C)。

向量存放法在存儲(chǔ)器中占用一片連續(xù)的空間,每個(gè)字節(jié)存放一個(gè)字符代碼,字符串的所有元素(字符)在物理上是鄰接的。在字長(zhǎng)為32位的存儲(chǔ)器,每一個(gè)主存單元可存放4個(gè)字符,整個(gè)字符串需5個(gè)主存單元。在每個(gè)字節(jié)中實(shí)際存放的是相應(yīng)字符的ASCII碼。67IFX>0THENREA(C)D字符串的向量存放方案5449462020202030454541444852433E2928584E圖2-7字符串的向量存放方案681.漢字國(guó)標(biāo)碼漢字國(guó)標(biāo)碼亦可稱為漢字交換碼,主要用于漢字信息處理系統(tǒng)之間或者通信系統(tǒng)之間交換信息使用,簡(jiǎn)稱GB碼。該標(biāo)準(zhǔn)共收集常用漢字6763個(gè),另外還有各種圖形符號(hào)682個(gè),共計(jì)7445個(gè)。

GB碼規(guī)定每個(gè)漢字、圖形符號(hào)都用兩個(gè)字節(jié)表示,每個(gè)字節(jié)只使用低七位編碼,因此最多能表示出128×128=16384個(gè)漢字。2.3.2漢字的表示69區(qū)位碼將漢字編碼碼中的6763個(gè)漢字分為94個(gè)區(qū),每個(gè)區(qū)中包含94個(gè)漢字(位),區(qū)和位組成一個(gè)二維數(shù)組,每個(gè)漢字在數(shù)組中對(duì)應(yīng)一個(gè)唯一的區(qū)位碼。漢字的區(qū)位碼定長(zhǎng)4位,前2位表示區(qū)號(hào),后2位表示位號(hào),區(qū)號(hào)和位號(hào)用十進(jìn)制數(shù)表示,區(qū)號(hào)從01到94,位號(hào)也從01到94。例如,“中”字在54區(qū)的48位上,其區(qū)位碼為“54-48”,“國(guó)”字在25區(qū)的90位上,其區(qū)位碼為“25-90”。2.漢字區(qū)位碼70需要注意的是:漢字區(qū)位碼并不等于漢字國(guó)標(biāo)碼,它們兩者之間的關(guān)系可用以下公式表示:

國(guó)標(biāo)碼=區(qū)位碼(十六進(jìn)制)+2020H例15:已知漢字“春”的區(qū)位碼為“20-26”,計(jì)算它的國(guó)標(biāo)碼。區(qū)位碼:第1字節(jié)第2字節(jié)2026十進(jìn)制↓↓14H1AH十六進(jìn)制+20H+20H

國(guó)標(biāo)碼:34H3AH2.漢字區(qū)位碼(續(xù))71

漢字在計(jì)算機(jī)內(nèi)部其內(nèi)碼是唯一的。因?yàn)闈h字處理系統(tǒng)要保證中西文的兼容,當(dāng)系統(tǒng)中同時(shí)存在ASCII碼和漢字國(guó)標(biāo)碼時(shí),將會(huì)產(chǎn)生二義性。例如:有兩個(gè)字節(jié)的內(nèi)容為30H和21H,它既可表示漢字“啊”的國(guó)標(biāo)碼,又可表示西文“0”和“!”的ASCII碼。為此,漢字機(jī)內(nèi)碼應(yīng)對(duì)國(guó)標(biāo)碼加以適當(dāng)處理和變換。

GB碼的機(jī)內(nèi)碼為二字節(jié)長(zhǎng)的代碼,它是在相應(yīng)GB碼的每個(gè)字節(jié)最高位上加“1”,即

漢字機(jī)內(nèi)碼=漢字國(guó)標(biāo)碼+8080H例如,上述“啊”字的國(guó)標(biāo)碼是3021H,其漢字機(jī)內(nèi)碼則是B0A1H。3.漢字機(jī)內(nèi)碼722.4十進(jìn)制數(shù)和數(shù)串的表示十進(jìn)制是人們最常用的數(shù)據(jù)表示方法,一些通用性較強(qiáng)的計(jì)算機(jī)上設(shè)有十進(jìn)制數(shù)據(jù)的表示,可以直接對(duì)十進(jìn)制數(shù)進(jìn)行運(yùn)算和處理。732.4.1十進(jìn)制數(shù)的編碼用四位二進(jìn)制數(shù)來(lái)表示一位十進(jìn)制數(shù),稱為二進(jìn)制編碼的十進(jìn)制數(shù),簡(jiǎn)稱BCD碼。四位二進(jìn)制數(shù)可以組合出16種代碼,能表示16種不同的狀態(tài),我們只需要使用其中的10種狀態(tài),就可以表示十進(jìn)制數(shù)的0~9十個(gè)數(shù)碼,而其他的六種狀態(tài)為冗余狀態(tài)。由于可以取任意的10種代碼來(lái)表示十個(gè)數(shù)碼,所以就可能產(chǎn)生多種BCD編碼。BCD編碼既具有二進(jìn)制數(shù)的形式,又保持了十進(jìn)制數(shù)的特點(diǎn)。74幾種常見(jiàn)的BCD碼751.8421碼8421碼又稱為NBCD碼,其主要特點(diǎn)是:⑴它是一種有權(quán)碼,四位二進(jìn)制代碼的位權(quán)從高到低分別為8、4、2、1。⑵簡(jiǎn)單直觀。每個(gè)代碼與它所代表的十進(jìn)制數(shù)之間符合二進(jìn)制數(shù)和十進(jìn)制數(shù)相互轉(zhuǎn)換的規(guī)則。⑶不允許出現(xiàn)1010~1111。這6個(gè)代碼在8421碼中是非法碼。762.2421碼

2421碼的主要特點(diǎn)是:⑴它也是一種有權(quán)碼,四位二進(jìn)制代碼的位權(quán)從高到低分別為2、4、2、1。⑵它又是一種對(duì)9的自補(bǔ)碼。即某數(shù)的2421碼,只要自身按位取反,就能得到該數(shù)對(duì)9之補(bǔ)的2421碼。例如:

3的2421碼是0011。3對(duì)9之補(bǔ)是6,而6的2421碼是1100。⑶不允許出現(xiàn)0101~1010。這6個(gè)代碼在2421碼中是非法碼。773.余3碼余3碼的主要特點(diǎn)是:⑴這是一種無(wú)權(quán)碼,但也可看作是一種特殊的有權(quán)碼,即在8421碼的基礎(chǔ)上加+3(+0011)形成的,故稱余3碼。在這種編碼中各位的“1”不表示一個(gè)固定的十進(jìn)制數(shù)值,因而不直觀。⑵它也是一種對(duì)9的自補(bǔ)碼。⑶不允許出現(xiàn)0000~0010、1101~1111。這6個(gè)代碼在余3碼中是非法碼。782.6數(shù)據(jù)校驗(yàn)碼數(shù)據(jù)校驗(yàn)碼是指那些能夠發(fā)現(xiàn)錯(cuò)誤或能夠自動(dòng)糾正錯(cuò)誤的數(shù)據(jù)編碼,又稱之為“檢錯(cuò)糾錯(cuò)編碼”。任何一種編碼都由許多碼字構(gòu)成,任意兩個(gè)碼字之間最少變化的二進(jìn)制位數(shù),被稱為數(shù)據(jù)校驗(yàn)碼的碼距。例如,用四位二進(jìn)制表示16種狀態(tài),則有16個(gè)不同的碼字,此時(shí)碼距為1,即兩個(gè)碼字之間最少僅有一個(gè)二進(jìn)制位不同(如0000與0001之間)。這種編碼沒(méi)有檢錯(cuò)能力,因?yàn)楫?dāng)某一個(gè)合法碼字中有一位或幾位出錯(cuò),就變成為另一個(gè)合法碼字了。792.6.1奇偶校驗(yàn)碼1.奇偶校驗(yàn)概念奇偶校驗(yàn)碼是一種最簡(jiǎn)單的數(shù)據(jù)校驗(yàn)碼,它的碼距等于2,可以檢測(cè)出一位錯(cuò)誤(或奇數(shù)位錯(cuò)誤),但不能確定出錯(cuò)的位置,也不能檢測(cè)出偶數(shù)位錯(cuò)誤。奇偶校驗(yàn)實(shí)現(xiàn)方法是:由若干位有效信息(如一個(gè)字節(jié)),再加上一個(gè)二進(jìn)制位(校驗(yàn)位)組成校驗(yàn)碼。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論