計(jì)算機(jī)組成原理 第2版 課件 第2章 數(shù)據(jù)的表示與運(yùn)算_第1頁(yè)
計(jì)算機(jī)組成原理 第2版 課件 第2章 數(shù)據(jù)的表示與運(yùn)算_第2頁(yè)
計(jì)算機(jī)組成原理 第2版 課件 第2章 數(shù)據(jù)的表示與運(yùn)算_第3頁(yè)
計(jì)算機(jī)組成原理 第2版 課件 第2章 數(shù)據(jù)的表示與運(yùn)算_第4頁(yè)
計(jì)算機(jī)組成原理 第2版 課件 第2章 數(shù)據(jù)的表示與運(yùn)算_第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)介

第二章數(shù)據(jù)的表示與運(yùn)算2※主要內(nèi)容⑴數(shù)據(jù)的編碼

機(jī)器數(shù)編碼、十進(jìn)制數(shù)編碼、字符編碼,校驗(yàn)碼編碼(△)⑵數(shù)據(jù)的表示

數(shù)據(jù)的表示方法,整數(shù)的表示、實(shí)數(shù)的表示,

非數(shù)值數(shù)據(jù)的表示(含運(yùn)算規(guī)則及實(shí)現(xiàn)方法)

⑶定點(diǎn)數(shù)的運(yùn)算(含位擴(kuò)展運(yùn)算)有/無(wú)符號(hào)的加減、移位、位擴(kuò)展、乘法(△)運(yùn)算規(guī)則及部件組織

⑷浮點(diǎn)數(shù)的運(yùn)算(△)

加減運(yùn)算方法

⑸十進(jìn)制數(shù)的加減運(yùn)算(×)

運(yùn)算方法,法校正規(guī)則、硬件組成

⑹運(yùn)算器的組成ALU的組成,運(yùn)算器的組成(部件、互連)

相互關(guān)系—編碼→表示→運(yùn)算→硬件,后2者為組成研究?jī)?nèi)容※總體要求:根據(jù)數(shù)據(jù)表示方法,可組織運(yùn)算規(guī)則或運(yùn)算部件3§2.1數(shù)據(jù)的編碼一、數(shù)制及其轉(zhuǎn)換1、進(jìn)位計(jì)數(shù)制--又稱進(jìn)制或數(shù)制

指用一組符號(hào)、統(tǒng)一規(guī)則表示數(shù)值的方法

*常用的4種進(jìn)制:參數(shù)有數(shù)碼、基數(shù)、位權(quán)

*R進(jìn)制數(shù)的表示:二進(jìn)制八進(jìn)制十進(jìn)制十六進(jìn)制數(shù)碼0,10,1,…,70,1,…,90,1,…,9,A,B,…,F基數(shù)281016位權(quán)2i8i10i16i書(shū)寫(xiě)形式BODH(N

)R=(kn-1…k1k0.k-1k-2…k-m)R=

其中,ki∈{0,1,…(R-1)}

思考—如何記憶A~F的值?

記A、C、F,其余增減

※主要內(nèi)容:進(jìn)制轉(zhuǎn)換,機(jī)器數(shù)/十進(jìn)制數(shù)/字符的編碼,校驗(yàn)碼42、不同進(jìn)制數(shù)之間的轉(zhuǎn)換

*R進(jìn)制數(shù)→十進(jìn)制數(shù)的轉(zhuǎn)換:

轉(zhuǎn)換規(guī)則—

*十進(jìn)制數(shù)→R進(jìn)制數(shù)的轉(zhuǎn)換:

轉(zhuǎn)換規(guī)則—按位權(quán)展開(kāi)

例1—(101.01)2=(1×22+1×20+1×2-2)10=(5.25)10

(3A.C)16=(3×161+10×160+12×16-1)10=(58.75)10

整數(shù)、小數(shù)分別轉(zhuǎn)換整數(shù)轉(zhuǎn)換規(guī)則—除基取余法,或減權(quán)定位法

例2—(19)10=(10011)2

2191(最低位)291240220211(最高位)0

余數(shù)

19-25

<0、

19-24=3≥0,k4=1

3-23

<0,k3=0

3-22

<0,k2=03-21=1≥0,k1=11-20=0≥0,k0=150.6875×2=1.3751(最高位)0.375×2=0.750

0.75×2=1.510.5×2=1.01(最低位)

例3—(0.6875)10=(0.1011)2

小數(shù)轉(zhuǎn)換規(guī)則—乘基取整法,或減權(quán)定位法0.6875-2-1=0.1875≥0,k-1=10.1875-2-2<0,k-2=0

0.1875-2-3=0.0625≥0,k-3=10.0625-2-4=0=0,k-4=1

*二-八-十六進(jìn)制數(shù)的相互轉(zhuǎn)換:

數(shù)位長(zhǎng)度間關(guān)系—二:八:十六=1:3:4

轉(zhuǎn)換規(guī)則—整數(shù)、小數(shù)分別轉(zhuǎn)換,數(shù)位不夠時(shí)補(bǔ)零

測(cè)試—(97.75)10=(1100001.11)2=(141.6)8=(61.C)16,2D.EH=101101.111B=55.7O=45.875D6二、機(jī)器數(shù)及其編碼

※數(shù)據(jù)進(jìn)制的書(shū)寫(xiě)約定:默認(rèn)為二進(jìn)制(可省略

B

),除非特殊說(shuō)明

*數(shù)學(xué)上的數(shù)據(jù):

組成—[符號(hào)]數(shù)碼[小數(shù)點(diǎn)

數(shù)碼]←[]表示可缺省

如:(10)2、(+10)2、(-10)2、(-10.1)2

運(yùn)算特征—符號(hào)與數(shù)值分開(kāi)運(yùn)算,減法先比較大小

*機(jī)器數(shù):

真值—

*機(jī)器數(shù)的編碼:目標(biāo)—

類(lèi)型—指計(jì)算機(jī)內(nèi)部用編碼表示的數(shù)據(jù)└→二進(jìn)制→┘└→可表示符號(hào)、小數(shù)點(diǎn)如:(+10)2→(010)2、(-10)2→(110)2、(-10.1)2→(110101)2

指數(shù)學(xué)上帶+/-、.的數(shù)據(jù)便于硬件實(shí)現(xiàn)運(yùn)算

(如符號(hào)/數(shù)值一起運(yùn)算、減法不比較大小)原碼、補(bǔ)碼、反碼、移碼等,均用二進(jìn)制表示71、原碼(sign-magnitude)表示法*編碼思想:機(jī)器數(shù)的最高位為符號(hào)位(用0/1表示+/-),

其余位(數(shù)值位)為真值的絕對(duì)值

*整數(shù)原碼定義:設(shè)X=±xn-2…x0,xi=0或1,則[X]原=xn-1xn-2…x0,即[X]原=0*2n-1+X=X

0≤X<2n-11*2n-1-X=2n-1+|X|-2n-1<X≤0

例1—[+1101]原=01101,[-1101]原=11101,若[X]原=1101,則X=-101

例2—若[+X]原=0110,則[-X]原=1110

若[+Y]原=0000,則[-Y]原=1000

※[+0]原≠[-0]原二進(jìn)制二進(jìn)制

練習(xí)1—若X=-0100、[Y]原=10110,則[X]原=?Y=?8

*小數(shù)原碼定義:

設(shè)X=±0.x-1…x-(n-1),則[X]原=x0

.x-1…x-(n-1)[X]原=X

0≤X<11-X=1+|X|

-1<X≤0

例3—[+0.1001]原=0.1001;[-0.1001]原=1.1001若[X]原=1.01,則X=-0.01

*原碼的特性:

①X與[X]原關(guān)系—

②運(yùn)算方法—[X]原與X表示值的范圍相同,[+0]原≠[-0]原

→n位編碼表示2n-1個(gè)數(shù)符號(hào)與數(shù)值分開(kāi)運(yùn)算、減法先比較大小

└→不利于硬件實(shí)現(xiàn)←┘機(jī)器數(shù)中

.

隱含表示(此處有

.

便于閱讀)編碼時(shí)0省略92、補(bǔ)碼(two

scomplement)表示法

編碼目標(biāo)—符號(hào)與數(shù)值一起運(yùn)算,減法不比較大小(1)有模運(yùn)算與補(bǔ)數(shù)

*有模運(yùn)算:僅計(jì)量小于“?!钡牟糠?,其余部分被丟棄

?!赣?jì)量系統(tǒng)的計(jì)數(shù)范圍如:時(shí)針從10點(diǎn)撥向7點(diǎn),有①10-3=7,②10+9=7+12=7特征—

*補(bǔ)數(shù):若a、b、M滿足a+b=M,稱a、b互為模M的補(bǔ)數(shù)

運(yùn)算特征—

若A、B、M滿足A=B+kM

(k為整數(shù)),

則記

A≡B(mod

M),稱B和A為模M的同余如:+3≡+15(mod12),-3≡+9(mod12)

c-a=c-(M-b)=c+b

(modM),即減去一個(gè)數(shù)等價(jià)于加上這個(gè)數(shù)的補(bǔ)數(shù)

└→減法可用加法實(shí)現(xiàn)→簡(jiǎn)化硬件符合硬件運(yùn)算特征(定長(zhǎng))10

*補(bǔ)碼編碼目標(biāo)的實(shí)現(xiàn)思路:(硬件是有模運(yùn)算)減法不比較大小—

符號(hào)/數(shù)值一起運(yùn)算—(2)補(bǔ)碼定義

*編碼思想:機(jī)器數(shù)的最高位為符號(hào)位(用0/1表示+/-),

其余位(數(shù)值位)為X的本身或正補(bǔ)數(shù)

*整數(shù)補(bǔ)碼定義:設(shè)X=±xn-2…x0,則模為2n,[X]補(bǔ)=x

n-1x

n-2…x

0,即[X]補(bǔ)=2n+X

(mod2n)=

0+X

0≤X<2n-12n-1+(2n-1-|X|)

-2n-1≤X<0

注意—為了使負(fù)數(shù)的x

n-1=1,應(yīng)為2n+X(不是2n-1+X)

減法用加法實(shí)現(xiàn)

←加法無(wú)需比較如:9-4≡9+8(mod12),4-9≡4+3(mod12)

負(fù)數(shù)用其正補(bǔ)數(shù)表示,←同符號(hào)數(shù)加法

符號(hào)用編碼表示

如:4+(-3)≡4+9≡1(mod12),(-4)-2≡8+10≡6(mod12)結(jié)果為正數(shù)或正補(bǔ)數(shù)=正補(bǔ)數(shù)11

例4—[+001]補(bǔ)=0001,[+111]補(bǔ)=0111

[-001]補(bǔ)=10000+(-001)

=1000+1000-001=1111

[-111]補(bǔ)=10000+(-111)=1001

[+000]補(bǔ)=[-000]補(bǔ)=0000

※數(shù)0的補(bǔ)碼唯一

練習(xí)2—若X=-0100、Y=+0100,[X]補(bǔ)=?[Y]補(bǔ)=?

若A=-01100、B=+01100,[A]補(bǔ)=?[B]補(bǔ)=?

例5—4位補(bǔ)碼、X≥0時(shí),[X]補(bǔ)≤0111,Xmax=24-1-1=+7

X<0時(shí),[X]補(bǔ)≥1000,Xmin=-24-1=-8※補(bǔ)碼比原碼多表示1個(gè)數(shù)←沒(méi)有冗余編碼原碼無(wú)11…1110…0110…00

00…0000…0101…11補(bǔ)碼

10…0010…0111…1100…0000…0101…11真值-2n-1-(2n-1-1)

-1

0

+1+(2n-1-1)本身正補(bǔ)數(shù)11000000100001000010001100010110011101011110110111111010101110010+1+2+3+4+5+6+7-8-7-6-5-4-3-2-112

*小數(shù)補(bǔ)碼定義:

設(shè)X=±0.x-1…x-(n-1),則[X]補(bǔ)=x

0.x

-1…x

-(n-1)[X]補(bǔ)=2+X

(mod2)=X

0≤X<11+(1-|X|)-1≤X<0

例6—[+0.1011]補(bǔ)=0.1011

[-0.1011]補(bǔ)=2-0.1011=10.0000-0.1011=1.0101

注意—為了使負(fù)數(shù)的x

0=1,應(yīng)為2+X(不是1+X)機(jī)器數(shù)中.隱含表示純小數(shù)中0隱含表示13(3)補(bǔ)碼的特性

*X與[X]補(bǔ)的關(guān)系:下述方法同樣適用于純小數(shù)①設(shè)X=+xn-2…x0,[Y]補(bǔ)=0yn-2…y0,xi及yi=0或1

則[X]補(bǔ)

,Y=

②設(shè)X=-xn-2…x0,[Y]補(bǔ)=1yn-2…y0,xi及yi=0或1

則[X]補(bǔ)=

Y=

[Y]補(bǔ)-2n

=1yn-2…y0-[2n-1+(2n-1-1)+1]

=2n-1-2n-1

-(

1…1

-

yn-2…y0

+

1

)

=-(

yn-2…y0

+

1

)+1應(yīng)不影響符號(hào)位X=0xn-2…x0

[Y]補(bǔ)=+yn-2…y02n+X

=[2n-1+(2n-1-1)+1]+X

=1

0

0+

1

1

+

1=1

0

0

-

xn-2…x0

+

xn-2…x0+1=1

xn-2…x0

+

10

0101;14

例7—X=+0101,[X]補(bǔ)=X=-0101,[X]補(bǔ)=1

1011

例8—[X]原=0

0101,[X]補(bǔ)=0

0101;[X]原=1

0101,[X]補(bǔ)=1

1011

X→[X]補(bǔ)簡(jiǎn)便方法—

X≥0時(shí),[X]補(bǔ)符號(hào)位=0、[X]補(bǔ)數(shù)值位=X數(shù)值位

X<0時(shí),[X]補(bǔ)符號(hào)位=1,[X]補(bǔ)數(shù)值位=X數(shù)值位+1[X]原→[X]補(bǔ)簡(jiǎn)便方法—

[X]原符號(hào)位=0時(shí),[X]補(bǔ)=[X]原

[X]原符號(hào)位=1時(shí),[X]補(bǔ)符號(hào)位=[X]原符號(hào)位,

[X]補(bǔ)數(shù)值位=[X]原數(shù)值位+1正補(bǔ)數(shù)

X=+0.0101,[X]補(bǔ)=

;X=-0.0101,[X]補(bǔ)=0.01011.1011[X]補(bǔ)→[X]原簡(jiǎn)便方法—

[X]補(bǔ)符號(hào)位=0時(shí),[X]原=[X]補(bǔ)

[X]補(bǔ)符號(hào)位=1時(shí),[X]原符號(hào)位=[X]補(bǔ)符號(hào)位,

[X]原數(shù)值位=[X]補(bǔ)數(shù)值位+115

例9—[X]補(bǔ)=0

0101,X=+

0101;[X]補(bǔ)=1

1011,X=-

0101

例10—[X]補(bǔ)=0

0101,[X]原=0

0101;[X]補(bǔ)=1

0101,[X]原=1

1011[X]補(bǔ)→X簡(jiǎn)便方法—

[X]補(bǔ)符號(hào)位=0時(shí),X符號(hào)位=+,X數(shù)值位=[X]補(bǔ)數(shù)值位

[X]補(bǔ)符號(hào)位=1時(shí),X符號(hào)位=-,X數(shù)值位=[X]補(bǔ)數(shù)值位+116

*[X]補(bǔ)與[-X]補(bǔ)的關(guān)系:

設(shè)[X]補(bǔ)=xn-1xn-2…x0,則

①當(dāng)X≥0時(shí),[X]補(bǔ)=X

,其中xn-1=0,

[-X]補(bǔ)=

②當(dāng)X<0時(shí),[X]補(bǔ)=2n

-|X|,其中xn-1=1,

[-X]補(bǔ)=

[X]補(bǔ)→[-X]補(bǔ)簡(jiǎn)便方法—[X]補(bǔ)的所有位取反、末位加1

[-X]補(bǔ)→[X]補(bǔ)簡(jiǎn)便方法—[-X]補(bǔ)的所有位取反、末位加1

例11—[X]補(bǔ)=1

0110,[-X]補(bǔ)=

0

10101xn-2…x0

+1=xn-1xn-2…x0

+1|X|=2n

-[X]補(bǔ)=11…1-[X]補(bǔ)+1

=xn-1xn-2…x0

+1+1應(yīng)不影響符號(hào)位17

練習(xí)3—

①若X=+01001,[X]原=,[X]補(bǔ)=

②若Y=-01010,[Y]原=,[Y]補(bǔ)=

③若[X]原=001010,X=,[X]補(bǔ)=

④若[Y]原=101110,Y=,[Y]補(bǔ)=

⑤若[X]補(bǔ)=001110,X=,[-X]補(bǔ)=

⑥若[Y]補(bǔ)=101110,Y=,[-Y]補(bǔ)=0

010010

010011

01010

1

10110

+

010100

01010

-

01110

1

10010

+

01110

1

10010

-

10010

0

10010

原碼、補(bǔ)碼編碼規(guī)則:(設(shè)X=±xn-2…x0)

X≥0時(shí),[X]原=0xn-2…x0;X<0時(shí),[X]原=

1xn-2…x0;

X≥0時(shí),[X]補(bǔ)=0xn-2…x0;X<0時(shí),[X]補(bǔ)=1xn-2…x0+1;

[-X]補(bǔ)=

1xn-2…x0

+1

[-X]補(bǔ)=

0xn-2…x0

183、反碼(ones

complement)表示法

編碼目標(biāo)—作為補(bǔ)碼轉(zhuǎn)換時(shí)的過(guò)渡編碼

*整數(shù)反碼定義:設(shè)X=±xn-2…x0,則模為2n-1,即[X]反

=(2n-1)+X(mod2n-1)=X

0≤X<2n-1(2n-1)+X-2n-1<X<0

例12—[+1101]反=01101,[-1101]反=10010

*反碼與補(bǔ)碼的關(guān)系:

若X≥0,則[X]補(bǔ)=[X]反;

若X<0,則[X]補(bǔ)=[X]反+110194、移碼表示法

編碼目標(biāo)—真值連續(xù)時(shí),機(jī)器數(shù)也連續(xù)(機(jī)器數(shù)=真值+偏移量)

*整數(shù)移碼定義:設(shè)X=±xn-2…x0,則模=2n、偏移量=2n-1,

[X]移=2n-1+X

(mod2n)=2n-1+X

-2n-1≤X<2n-1

例13—[-111]移=0001,[-001]移=0111,[±000]移=1000,

[+001]移=1001,[+111]移=1111,[-1000]移=0000補(bǔ)碼

10…0010…0111…1100…0000…0101…11移碼00…0000…0101…1110…0010…0111…11真值-2n-1-(2n-1-1)

-1

0+1+(2n-1-1)

*移碼的特性:

①數(shù)軸上數(shù)的移碼為連續(xù)編碼,便于比較大小

②[X]移符號(hào)位=[X]補(bǔ)符號(hào)位,[X]移數(shù)值位=[X]補(bǔ)數(shù)值位補(bǔ)碼為2n

←負(fù)數(shù)的符號(hào)位=120※機(jī)器數(shù)編碼小結(jié):

①原碼/補(bǔ)碼/移碼的最高位均為符號(hào)位、其余位均為數(shù)值位

②[X]原符號(hào)位=[X]補(bǔ)符號(hào)位=[X]移符號(hào)位=0/1(正/負(fù))

③X≥0時(shí),[X]原數(shù)值位=|X|=[X]補(bǔ)數(shù)值位=[X]移數(shù)值位;

X<0時(shí),[X]原數(shù)值位=|X|,

[X]原數(shù)值位+1=[X]補(bǔ)數(shù)值位=[X]移數(shù)值位④補(bǔ)碼、移碼比原碼多表示1個(gè)負(fù)數(shù)原碼無(wú)

11…1110…0110…00

00…0000…0101…11補(bǔ)碼

10…0010…0111…1100…0000…0101…11移碼00…0000…0101…1110…0010…0111…11真值-2n-1-(2n-1-1)

-1

0

+1+(2n-1-1)

測(cè)試—X=+01001時(shí),[X]原=001001,[X]補(bǔ)=001001,[X]移=101001

Y=-01010時(shí),[Y]原=101010,[Y]補(bǔ)=110110,[Y]移=01011021三、十進(jìn)制數(shù)編碼

*BCD碼(BinaryCodedDecimal):--又稱二-十進(jìn)制編碼

指用4位二進(jìn)制編碼表示1位十進(jìn)制數(shù)位的編碼方式

*BCD碼的種類(lèi):分為有權(quán)碼和無(wú)權(quán)碼,最常用的是8421碼十進(jìn)制數(shù)01234567898421碼0000000100100011010001010110011110001001余3碼0011010001010110011110001001101010111100

BCD碼的缺省編碼類(lèi)型—8421碼!(特殊聲明除外)

*十進(jìn)制數(shù)的表示方法:(僅整數(shù)[原因稍后解釋])

①每個(gè)數(shù)字對(duì)應(yīng)一個(gè)BCD碼,數(shù)符編碼在最低位之后

②數(shù)符用特定編碼表示(如1100、1101表示正、負(fù))

③數(shù)字和數(shù)符的BCD碼個(gè)數(shù)為偶數(shù)(便于按字節(jié)存儲(chǔ))

例—

+427為0100001001111100,-23為000000100011110122四、字符編碼指字符在字符集中的唯一的數(shù)字化代碼(表示序號(hào)或特征號(hào))

*編碼種類(lèi):交換碼、內(nèi)碼、輸入碼、字模碼等

交換碼—字符在傳送時(shí)的編碼(序號(hào)),如字符的ASCII碼

內(nèi)碼—字符在存儲(chǔ)時(shí)的編碼(數(shù)據(jù)),如char型字符的值相關(guān):字符集大小相關(guān):字符集大小、存儲(chǔ)單元長(zhǎng)度鍵盤(pán)計(jì)算機(jī)B轉(zhuǎn)換處理器I/O接口字模碼內(nèi)碼輸入碼顯示器處理器計(jì)算機(jī)A交換碼內(nèi)碼內(nèi)碼字符數(shù)據(jù)字符字模庫(kù)MEM交換碼I/O接口

字符編碼的缺省編碼類(lèi)型—交換碼!(內(nèi)碼常稱為字符數(shù)據(jù))23

*常見(jiàn)的字符編碼:編碼類(lèi)型碼點(diǎn)個(gè)數(shù)編碼長(zhǎng)度說(shuō)明ASCII碼1287美國(guó)標(biāo)準(zhǔn)信息交換碼,英文,使用最廣泛EBCDIC碼2568擴(kuò)展二-十進(jìn)制交換碼,英文,IBM定義Unicode碼6553616統(tǒng)一字符碼,有UCS-2、UCS-4兩種字符集,支持各國(guó)語(yǔ)言,使用較廣泛23232ANSI碼2568美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)交換碼,英文,含ASCII碼GB2312-80744514漢字國(guó)標(biāo)碼,中文

作業(yè)2-1:P86起2~624

*數(shù)據(jù)校驗(yàn)過(guò)程:--采用冗余校驗(yàn)思想

①用待發(fā)數(shù)據(jù)M形成校驗(yàn)信息P,M與P一起傳送

②用接收數(shù)據(jù)M

形成校驗(yàn)信息P

,用P

及P

校驗(yàn)數(shù)據(jù)、返回狀態(tài)五、校驗(yàn)碼

*校驗(yàn)碼:由數(shù)據(jù)位和校驗(yàn)位組成的編碼

*常見(jiàn)校驗(yàn)碼:奇偶校驗(yàn)碼、海明校驗(yàn)碼,循環(huán)冗余校驗(yàn)碼(CRC)*校驗(yàn)原理:接收的校驗(yàn)碼∈{合法碼字,非法碼字}

檢錯(cuò)—糾錯(cuò)—存儲(chǔ)器或傳輸線路M函數(shù)fP輸出方比較器P

P

糾正器M函數(shù)fM

輸入方CHKS碼距—指任意2個(gè)編碼中位值不同的最小個(gè)數(shù)

如:{000、011、101、110}的碼距=2,{000~111}的碼距=1(碼距≥2)檢查接收的校驗(yàn)碼是否為非法碼字根據(jù)非法碼字定位錯(cuò)誤、糾正錯(cuò)誤(位值取反)251、奇偶校驗(yàn)碼*編碼原理:使校驗(yàn)碼中

1的位數(shù)為奇數(shù)(或偶數(shù))個(gè)

*校驗(yàn)原理:*校驗(yàn)碼的組成:

*校驗(yàn)位的編碼方法:檢測(cè)校驗(yàn)碼中1的個(gè)數(shù),確定是否有錯(cuò)

└─→有奇校驗(yàn)/偶校驗(yàn)2種

例1—數(shù)據(jù)10100101100011奇校驗(yàn)碼101001001100011?偶校驗(yàn)碼101001011100011?只需1位校驗(yàn)位←只需區(qū)分奇偶P=p1=mn

mn-1

m1

1=mn+mn-1+…+m1+1(mod2)P=p1=mn

mn-1

m1

=mn+mn-1+…+m1(mod2)數(shù)據(jù)mn…m1校驗(yàn)位p1奇校驗(yàn)—

偶校驗(yàn)—

*校驗(yàn)方法:

故障字S—

檢錯(cuò)—

*校驗(yàn)?zāi)芰Γ?/p>

*應(yīng)用:26S=P

⊕P

,其中P

是接收的、P

是M

形成的S=0時(shí)無(wú)錯(cuò)誤,S=1時(shí)有錯(cuò)誤只能檢測(cè)奇數(shù)個(gè)錯(cuò)誤,無(wú)糾錯(cuò)能力(偶數(shù)個(gè)錯(cuò)誤時(shí)P相同)(無(wú)法定位錯(cuò)誤)

例2—接收的校驗(yàn)碼①01001、②10100、③10011中,若只有一個(gè)有奇數(shù)個(gè)錯(cuò)誤,則校驗(yàn)碼為奇校驗(yàn)還是偶校驗(yàn)方式?廣泛應(yīng)用于I/O傳輸方面(有甚于無(wú))24272、海明校驗(yàn)碼*編碼原理:數(shù)據(jù)分成多個(gè)有重疊的組,各組采用奇偶校驗(yàn)編碼

*校驗(yàn)原理:

*校驗(yàn)?zāi)芰Γ憾嘀仄媾夹r?yàn),即某位錯(cuò)誤導(dǎo)致多個(gè)校驗(yàn)位出錯(cuò),從而實(shí)現(xiàn)檢錯(cuò)及糾錯(cuò)(定位)←不同位加入的組不同與檢驗(yàn)位的位數(shù)有關(guān),如單糾錯(cuò)碼SEC(糾正1位錯(cuò))

*編碼涉及問(wèn)題:(以單糾錯(cuò)碼為例)

設(shè)數(shù)據(jù)M=mn…m1,校驗(yàn)位P=pk…p1(即有k個(gè)奇偶檢驗(yàn)組),

則故障字S=sk…s1,si=pi

⊕pi

=pi

+pi

(mod2)檢錯(cuò)—

糾錯(cuò)—

涉及問(wèn)題—校驗(yàn)碼的編碼規(guī)則?k的取值?S=0時(shí)無(wú)錯(cuò)誤,S≠0時(shí)有錯(cuò)誤用S值表示錯(cuò)誤位置(應(yīng)有n+k種),糾錯(cuò)時(shí)位值取反28

*校驗(yàn)位的位數(shù):(以單糾錯(cuò)碼為例)

校驗(yàn)?zāi)芰Φ囊蟆疃嘤?個(gè)錯(cuò),故2k-1≥n+k

k的取值—n12~45~1112~2627~5758~120k(最小值)234567

*校驗(yàn)碼的組成:(以4個(gè)校驗(yàn)組為例)

錯(cuò)誤位置的約定—用S值表示無(wú)錯(cuò)誤:0000

→信息位置從1開(kāi)始編號(hào)

校驗(yàn)位錯(cuò):0001(p1)、0010(p2)、0100(p3)、1000(p4)

├──→數(shù)據(jù)位更重要(加入≥2個(gè)檢驗(yàn)組)

數(shù)據(jù)位錯(cuò):其余值(≥2個(gè)si=1)

校驗(yàn)碼字的組成—按“錯(cuò)誤位置=S值”規(guī)則排列位置151413121110987654321內(nèi)容m11m10m9m8m7m6m5p4m4m3m2p3m1p2p129位置H信息

故障字S151413121110987654321m11m10m9m8m7m6m5p4m4m3m2p3m1p2p1111111101101110010111010100110000111011001010100001100100001第4組△第3組△第2組△第1組△位置hk…h(huán)1上的數(shù)據(jù)位,加入的校驗(yàn)組為{i|hi=1}

檢驗(yàn)位的編碼方法—

(缺省為偶校驗(yàn)方式)p4=m11+m10+m9+m8+m7+m6+m5

(mod2)p3=m11+m10+m9+m8

+m4+m3+m2

(mod2)

p2=m11+m10

+m7+m6

+m4+m3

+m1

(mod2)p1=m11

+m9

+m7

+m5+m4+m2+m1(mod2)27

*校驗(yàn)位的編碼方法:

數(shù)據(jù)分組規(guī)則—(基礎(chǔ):H=S,S中si=1的組為出錯(cuò)校驗(yàn)組)√√√√√√√√√√√√√√√√√√√√√√√√√√√√

例5—求字符b的ASCII碼(m7…m1=1100010)的海明偶校驗(yàn)碼

解:30

∵23-1<7+3、24-1>7+4∴校驗(yàn)位位數(shù)=4位;

例4—若數(shù)據(jù)有16位,則海明校驗(yàn)碼的校驗(yàn)位最少為多少位?

解:

2k-1≥16+k,k最小為5位(24-1<20、25-1>21)

按故障字約定,校驗(yàn)碼為m7m6m5p4m4m3m2p3m1p2p1

偶校驗(yàn)碼=m7m6m5p4m4m3m2p3m1p2p1=1

1

0

0

0

0

1

1

0

0

0

根據(jù)數(shù)據(jù)分組規(guī)則,得(偶校驗(yàn)方式)

p4=m7⊕m6⊕m5

=0

p3=

m4⊕m3⊕m2

=1

p2=m7⊕m6

m4⊕m3

⊕m1=0

p1=m7

⊕m5⊕m4

⊕m2⊕m1=031

例6—續(xù)例5,說(shuō)明下列接收的海明校驗(yàn)碼是否有錯(cuò),及錯(cuò)誤位置。

①11000011010、②11000001000、③11001001000

解:①接收的M

=1100010、P

=0110,可求得P

=0100,

S=P

+P

(mod2),得S=0010,∴有錯(cuò)誤,位置2(p2)錯(cuò)誤,數(shù)據(jù)M=1100010

②接收的M

=1100000、P

=0100,可求得P

=0001,

S=P

+P(mod2),得S=0101,

∴有錯(cuò)誤,位置5(m2)錯(cuò)誤,數(shù)據(jù)M=1100010

③接收的M

=1101000、P

=0100,可求得P

=0110,S=P

+P

(mod2),得S=0010,∴有錯(cuò)誤,p2錯(cuò)?實(shí)際是m4及m2位錯(cuò)(M

=1101000)!原因:SEC能檢測(cè)并糾正1位錯(cuò),只可發(fā)現(xiàn)2位錯(cuò)!

*應(yīng)用:常用于并行I/O傳輸、RAID存取等方面(出錯(cuò)概率小)└←接收完成后才校驗(yàn)→用譯碼器糾錯(cuò)29323、循環(huán)冗余校驗(yàn)碼—CRC(CyclicRedundancyCheck)碼(不考)

編碼與多項(xiàng)式—mn-1…m1m0可用mn-1Xn-1+…+m1X+m0=M(X)表示*編碼原理:CRC碼能夠被G(X)整除

←G(X)稱為生成多項(xiàng)式用CRC碼模2除以G(X),余數(shù)=0表示無(wú)錯(cuò)誤,余數(shù)≠0表明出錯(cuò)位置根據(jù)余數(shù)首位上商、用模2減法求新余數(shù),商無(wú)意義數(shù)據(jù)mn…m1校驗(yàn)位rk…r1rk…r1為mn…m1左移k位、模2除以G(X)的余數(shù)即[M(X)·Xk]/G(X)=Q(X)……R(X)(模2除)*校驗(yàn)原理:*校驗(yàn)碼的組成:

*校驗(yàn)位的編碼:校驗(yàn)原理:[M(X)·Xk+R(X)]/G(X)

(模2除)

={Q(X)G(X)+

R(X)+R(X)}/G(X)

(模2除)

=[Q(X)G(X)]/G(X)=Q(X)……0

(模2除)

例7—已知M(X)=1100,G(X)=X3+X+1,求其CRC碼

解:

G(X)=1011,1100000/1011=1110…010

(模2除)

CRC碼=1100000+010=1100

010生成余數(shù)CRC校驗(yàn)器ERR33

*校驗(yàn)的實(shí)現(xiàn):

應(yīng)用需求—面向串行I/O傳輸

←海明校驗(yàn)面向并行I/O傳輸├→邊接收、邊校驗(yàn)└→錯(cuò)誤移動(dòng)到出端時(shí)才糾正

校驗(yàn)方法—mn-1…m1rk…r1m1rk…r10…0①串行方式求R(X)←每次收1位、計(jì)算②重復(fù)進(jìn)行

CRC碼左移1位、

R(X)←(R(X)<<1)/G(X)的余數(shù)、R(X)=首位錯(cuò)誤碼時(shí)糾錯(cuò)

直到數(shù)據(jù)移完對(duì)R(X)的要求—

①不同位置出錯(cuò)的R(X)不同

②連續(xù)(R(X)<<1)/G(X)時(shí),新R(X)=下一位置的出錯(cuò)碼稱為循環(huán)碼的由來(lái)首位ERR=1無(wú)信息移入、數(shù)據(jù)未移完時(shí)無(wú)信息移入時(shí)補(bǔ)034

*G(X)的選擇:

基本要求—即對(duì)R(X)的要求

①任何一位發(fā)生錯(cuò)誤時(shí),應(yīng)使R(X)不為0

②不同位發(fā)生錯(cuò)誤時(shí),應(yīng)使R(X)各不相同

③連續(xù)對(duì)R(X)進(jìn)行補(bǔ)0、模2除時(shí),應(yīng)使新R(X)循環(huán)

常用的G(X)—

CRC-CCITT:G(X)=X16+X12+X5+1

CRC-16:G(X)=X16+X15+X2+1

CRC-12:G(X)=X12+X11+X3+X2+X+1

CRC-32:G(X)=X32+X26+X23+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1*校驗(yàn)?zāi)芰Γ河蒼及G(X)決定,檢錯(cuò)能力較強(qiáng)、糾錯(cuò)能力較弱

*應(yīng)用:廣泛應(yīng)用于MEM傳送、網(wǎng)絡(luò)通信等方面(檢錯(cuò)要求高)CRC+錯(cuò)時(shí)重發(fā)←┘

*應(yīng)用中的數(shù)據(jù)類(lèi)型:

*硬件支持的數(shù)據(jù)類(lèi)型:

*數(shù)據(jù)類(lèi)型轉(zhuǎn)換的實(shí)現(xiàn):35§2.2數(shù)據(jù)的表示

*數(shù)據(jù)類(lèi)型:指一個(gè)值的集合,及定義在該值集上的一組操作

└→值集或操作集不同,數(shù)據(jù)類(lèi)型不同←┘數(shù)據(jù)數(shù)值數(shù)據(jù)非數(shù)值數(shù)據(jù)邏輯數(shù)

--布爾數(shù)字符(串)--含漢字其它--聲音、圖形等無(wú)符號(hào)數(shù)--自然數(shù)有符號(hào)數(shù)--整數(shù)、純小數(shù)、實(shí)數(shù)等最常用(最基本)的數(shù)據(jù)類(lèi)型←性/價(jià)高由程序員、編譯程序共同完成程序員應(yīng)用中的數(shù)據(jù)類(lèi)型編程語(yǔ)言支持的數(shù)據(jù)類(lèi)型硬件支持的數(shù)據(jù)類(lèi)型編譯程序如:20位整數(shù)操作1個(gè)longint操作2個(gè)16位操作(設(shè)sizeof(int)=16b)(16位CPU中)

※主要內(nèi)容:數(shù)據(jù)表示方法,整數(shù)、實(shí)數(shù)、非數(shù)值數(shù)據(jù)的表示,

邏輯運(yùn)算、關(guān)系運(yùn)算的邏輯實(shí)現(xiàn)36一、數(shù)據(jù)的表示方法

*計(jì)算機(jī)硬件的特征:

①指令和數(shù)據(jù)采用二進(jìn)制方式表示,運(yùn)算采用二進(jìn)制方式

②二進(jìn)制中只有0和1,沒(méi)有符號(hào)和小數(shù)點(diǎn)

③數(shù)據(jù)采用定長(zhǎng)方式存儲(chǔ)及處理(結(jié)果會(huì)發(fā)生溢出[有模運(yùn)算])*數(shù)據(jù)的數(shù)學(xué)特征:

數(shù)值數(shù)據(jù)—①進(jìn)制可有多種

②符號(hào)為“+”或“-”

,可缺省(如自然數(shù))

③小數(shù)點(diǎn)為“.”

,位置可任意變化,點(diǎn)可缺?、芫幋a為絕對(duì)值編碼

⑤長(zhǎng)度可任意變化,運(yùn)算不會(huì)產(chǎn)生溢出

非數(shù)值數(shù)據(jù)—編碼非數(shù)字(如邏輯數(shù)、符號(hào))37

*進(jìn)制的選擇:*符號(hào)的表示:有符號(hào)數(shù)—

無(wú)符號(hào)數(shù)—*小數(shù)點(diǎn)的表示:

①點(diǎn)本身的表示—②點(diǎn)的位置表示—*編碼方式的選擇:1、數(shù)據(jù)的表示方法支持二進(jìn)制,可能支持二-十進(jìn)制用數(shù)字表示符號(hào)符號(hào)位置為數(shù)值適用于僅存儲(chǔ)、I/O的數(shù)據(jù)采用隱含方式

(→點(diǎn)的位置須固定)自然數(shù)、整數(shù)純小數(shù)實(shí)數(shù)隱含于最低位之后隱含于最高位之前純小數(shù)尾數(shù)+整數(shù)指數(shù)定點(diǎn)格式

浮點(diǎn)格式每類(lèi)數(shù)據(jù)一種編碼(便于運(yùn)算實(shí)現(xiàn))

類(lèi)型相同/長(zhǎng)度不同→┘

└→(可以表示符號(hào))數(shù)據(jù)長(zhǎng)度應(yīng)相同不同數(shù)據(jù)類(lèi)型采用不同格式(位置)

※數(shù)據(jù)表示方法的要素:進(jìn)制、格式和編碼2、數(shù)據(jù)表示與數(shù)據(jù)運(yùn)算的關(guān)系

*數(shù)據(jù)的表示:即數(shù)據(jù)類(lèi)型的表示,屬性有表示方法、長(zhǎng)度

硬件需求—

應(yīng)用需求—

*數(shù)據(jù)的運(yùn)算:

運(yùn)算方法—

溢出處理方法—

*表示與運(yùn)算的關(guān)系:38同一數(shù)據(jù)類(lèi)型只有一種長(zhǎng)度←硬件定長(zhǎng)運(yùn)算所需同一表示方法可有幾種長(zhǎng)度←提高存儲(chǔ)效率所需按數(shù)據(jù)表示的屬性(進(jìn)制/格式/編碼/長(zhǎng)度)進(jìn)行硬件負(fù)責(zé)檢測(cè)/通知,軟件進(jìn)行處理

└←靈活性好進(jìn)制(基礎(chǔ)為二進(jìn)制)格式(小數(shù)點(diǎn)的表示)編碼(符號(hào)及數(shù)值的表示)長(zhǎng)度(數(shù)值范圍的表示)數(shù)據(jù)的表示數(shù)據(jù)的運(yùn)算運(yùn)算方法溢出處理方法組成邏輯實(shí)現(xiàn)本課程的要求:

了解數(shù)據(jù)表示(ISA支持的數(shù)據(jù)約定)

實(shí)現(xiàn)數(shù)據(jù)運(yùn)算(ISA支持的操作功能)指令用操作碼指明值集不同、類(lèi)型不同如short、int結(jié)構(gòu)負(fù)責(zé)設(shè)計(jì)39二、整數(shù)的表示1、定點(diǎn)表示方法

*表示方法:數(shù)據(jù)中的小數(shù)點(diǎn)位置固定不變

*表示格式:

*不同編碼方式的表數(shù)范圍:(設(shè)數(shù)碼長(zhǎng)度為n位)類(lèi)型編碼自然數(shù)(無(wú)符號(hào))整數(shù)(有符號(hào))純小數(shù)(有符號(hào))原碼-(2n-1-1)~+(2n-1-1)-(1-2-(n-1))~+(1-2-(n-1))補(bǔ)碼

-2n-1~+(2n-1-1)-1~+(1-2-(n-1))無(wú)符號(hào)編碼0~2n-1

無(wú)符號(hào)整數(shù)有符號(hào)整數(shù)純小數(shù)xn-1

xn-2

x0xS

xn-2

x0xS

x-1…x-(n-1)數(shù)值數(shù)符數(shù)值數(shù)符數(shù)值2、整數(shù)的表示

二-十進(jìn)制的整數(shù)稱為BCD數(shù),BCD數(shù)整數(shù)(運(yùn)算方法不同)

*表示方法:

無(wú)符號(hào)整數(shù)—有符號(hào)整數(shù)—

*硬件支持的類(lèi)型:←來(lái)自于ISA40二進(jìn)制、定點(diǎn)格式、無(wú)符號(hào)編碼二進(jìn)制、定點(diǎn)格式、補(bǔ)碼

例1—IA32(IntelArchitecture32bit)支持6種整數(shù)類(lèi)型為什么?常有多種(僅長(zhǎng)度不同)8位無(wú)符號(hào)整數(shù)16位無(wú)符號(hào)整數(shù)32位無(wú)符號(hào)整數(shù)8位有符號(hào)整數(shù)16位有符號(hào)整數(shù)32位有符號(hào)整數(shù)IA32支持unsignedshort[int]unsignedintunsignedlong[int]short[int]intlong[int]charC語(yǔ)言支持

例2—IA32中,若inty=-1;unsignedshortn=5;y、n的機(jī)器數(shù)?y=FFFFFFFFH,n=0005H38編譯時(shí)轉(zhuǎn)換413、整數(shù)的類(lèi)型轉(zhuǎn)換應(yīng)用需求—有不同長(zhǎng)度間的運(yùn)算,如shortsi;inty,z=y+si;

硬件限制—源操作數(shù)長(zhǎng)度須相同,否則應(yīng)先進(jìn)行類(lèi)型轉(zhuǎn)換

└←常為編譯程序

*類(lèi)型轉(zhuǎn)換方法:

長(zhǎng)度相同—

長(zhǎng)度減少—

長(zhǎng)度增加—無(wú)需運(yùn)算,解釋為新類(lèi)型如shortsi=-2;unsignedshort

usi=(unsignedshort)si+1;截?cái)噙\(yùn)算,僅保留低位(適合有模運(yùn)算)如unsignedintuy=0x12345678;shortsi=uy;位擴(kuò)展運(yùn)算,保持真值不變?nèi)鐄nsignedshortusi=2;

shortsi=+2,sj=-2;unsignedintua=usi,uy=si;intz=sj;*位擴(kuò)展運(yùn)算的類(lèi)型:

零擴(kuò)展—Q=0…0dn-1dn-2…d0符號(hào)擴(kuò)展—Q=dn-1…dn-1dn-1dn-2…d0有符號(hào)整數(shù)用補(bǔ)碼表示usi=?si=?ua=?uy=?z=?42三、實(shí)數(shù)的表示1、浮點(diǎn)表示方法

實(shí)數(shù)組成—可寫(xiě)成

,

←科學(xué)計(jì)數(shù)法

尾數(shù)M=±0.m-1…m-k,階E

=±el-1…e0,

尾數(shù)的基為RM,階的基為RE

*表示方法:數(shù)據(jù)中的小數(shù)點(diǎn)位置用階來(lái)表示

*表示格式:1SE

ESM

M階符階值數(shù)符尾數(shù)值1lk或SE

EMSM

由定點(diǎn)格式的尾數(shù)和階組成

←結(jié)構(gòu)確定、組成認(rèn)知(RE、RM隱含表示,其余顯式表示;RE=2、RM通常=2)

RE=2的原因—整數(shù)的表數(shù)范圍與基無(wú)關(guān)

如,2進(jìn)制、4進(jìn)制、8進(jìn)制的6bit整數(shù)都表示0~6343

例1—浮點(diǎn)數(shù)表示格式中,若尾數(shù)為9位、階碼為5位,尾數(shù)及階均用補(bǔ)碼表示,寫(xiě)出(-54)10的浮點(diǎn)機(jī)器數(shù)

解:

(-54)10=(-110110)2=-0.11011000×2+0110,

浮點(diǎn)機(jī)器數(shù)為10010100000110

例2—若浮點(diǎn)數(shù)用8位尾數(shù)、5位階來(lái)表示,寫(xiě)出下列浮點(diǎn)數(shù)的真值或機(jī)器數(shù)編碼格式實(shí)數(shù)浮點(diǎn)數(shù)的真值浮點(diǎn)數(shù)的表示階尾數(shù)階碼尾數(shù)碼原碼原碼+10101.11+0.1010111×2+1010010101010111-0.0010111-0.1011100×2-10+10101.1111+0.1010111×2+10100101010101111011011011010移碼補(bǔ)碼+0.0010111+0.1011100×2-10-10101.11-0.1010111×2+1010010101011100111011110100010010

1101110001110

0101110010101

10101001-0.1011010×2-110+0.1011100×2-1011-0.0011000×2+11012044

*表數(shù)范圍與精度:設(shè)RM=2、尾數(shù)及階的值為m位和e位

表數(shù)范圍—

影響因素—下溢區(qū)正上溢區(qū)(+∞)負(fù)上溢區(qū)(-∞)負(fù)數(shù)區(qū)機(jī)器零絕對(duì)零N正min正數(shù)區(qū)N負(fù)maxN正maxN負(fù)mine決定范圍、m決定精度

IEEE754標(biāo)準(zhǔn)(有單精度、雙精度2種)←兼顧精度與范圍

例如—IEEE754標(biāo)準(zhǔn)的單精度格式中,尾數(shù)為24位原碼、階碼為8位移碼,尾數(shù)、階的編碼均做了改進(jìn)2、實(shí)數(shù)的表示

*表示方法:二進(jìn)制、浮點(diǎn)格式、尾數(shù)及階單獨(dú)編碼

*硬件支持的類(lèi)型:

←來(lái)自于ISAN正max

=-N負(fù)min=(1-2-m)×2+1…1,N正min

=-N負(fù)max=2-m×2-1…1與C語(yǔ)言中float、double對(duì)應(yīng)453、浮點(diǎn)數(shù)的規(guī)格化目的—使浮點(diǎn)數(shù)的表數(shù)精度最大化(尾數(shù)的有效位數(shù)最多)

*規(guī)格化數(shù):

*規(guī)格化操作:尾數(shù)的最高數(shù)值位為1,即0.5≤|M|<1

浮點(diǎn)數(shù)轉(zhuǎn)化為規(guī)格化數(shù)時(shí)的操作左規(guī)—尾數(shù)左移一位,階碼減一

右規(guī)—尾數(shù)右移一位,階碼加一

例3—若浮點(diǎn)數(shù)尾數(shù)及階的基均為2,回答下列問(wèn)題:非規(guī)格化浮點(diǎn)數(shù)+1.0111×2+010-0.00010×2+010+1011.1×2+010規(guī)格化操作右規(guī)1次規(guī)格化浮點(diǎn)數(shù)+0.10111×2+011左規(guī)3次-0.10000×2-001右規(guī)4次+0.10111×2+110

如:實(shí)數(shù)+111.0采用3種表示方法的表示精度

=+0.111×23=+0.0111×24=+0.00111×25001101110100001101010001機(jī)器數(shù):

真值:111.0110.0100.046編碼格式規(guī)格化數(shù)最大正數(shù)最小正數(shù)最大負(fù)數(shù)最小負(fù)數(shù)階尾數(shù)階尾數(shù)階尾數(shù)階尾數(shù)階尾數(shù)原碼原碼0111111111110111移碼補(bǔ)碼

*規(guī)格化數(shù)的數(shù)碼特征:(規(guī)格化操作的結(jié)束條件)最高數(shù)值位為1最高數(shù)值位與符號(hào)相反

└←便于實(shí)現(xiàn)、不影響表示精度、劃分公平-1.00…00真值補(bǔ)碼100…00-0.11…11-0.10…01-0.10…00-0.01…11-0.00…01100…01101…11110…00110…01111…11…………1111

0000

0000

1111101111

100000絕對(duì)零N規(guī)正minN規(guī)負(fù)maxN規(guī)正maxN規(guī)負(fù)min+0.10…0×2-1…1+0.11…1×2+1…1+0.10…0×2-1…1+0.11…1×2+1…1011111010000

110000111111011111010000

原碼尾數(shù)—

補(bǔ)碼尾數(shù)—474、IEEE754標(biāo)準(zhǔn)(浮點(diǎn)數(shù)的一種表示方法)

*表示格式:

有單精度、雙精度兩種(長(zhǎng)度分別為32位及64位)

*編碼方式:①數(shù)制—M和E均采用二進(jìn)制方式(即RM=RE=2)

②碼制—2381單精度浮點(diǎn)表示格式數(shù)符S階E尾數(shù)M3252111雙精度浮點(diǎn)表示格式數(shù)符S階E尾數(shù)M64M為原碼編碼的定點(diǎn)小數(shù)(改變了點(diǎn)位置),E為移碼編碼的定點(diǎn)整數(shù)(改變了偏移值)48

*階的碼制:采用余127碼和余1023碼

(以單精度格式為例)

余X碼—偏移值為X的移碼←移碼=真值+偏移值

標(biāo)準(zhǔn)移碼:真值=E-28-1=E-128

←可稱余128碼

余127碼:真值=E-(28-1-1)=E-127

表示的階域—

*尾數(shù)的碼制:有非規(guī)格化尾數(shù)、規(guī)格化尾數(shù)兩種(以單精度格式為例)

非規(guī)格化尾數(shù)—

規(guī)格化尾數(shù)—M真值=±1.m-2…m-24,M表示=Sm-2…m-24,尾數(shù)精度=24位1≤E≤254表示規(guī)格化數(shù),即-126≤階≤+127E=0和255另作他用(如表示非規(guī)格化數(shù)、無(wú)窮大)M真值=±0.m-1…m-23,M表示=Sm-1…m-23,尾數(shù)精度≤23位擴(kuò)大了表示范圍0.1m-2…m-23的擴(kuò)展m-1可=049

*浮點(diǎn)表示的特征:(以單精度格式為例)參數(shù)值真值N說(shuō)明E=0,且M=0N=0機(jī)器零(下溢區(qū))E=0,且M≠0N=(-1)S×2-126×0.M非規(guī)格化數(shù)1≤E≤254N=(-1)S×2E

-127×1.M規(guī)格化數(shù)E=255,且M≠0N=NaN非數(shù)值E=255,且M=0N=(-1)S×∞±無(wú)窮大(上溢區(qū))

說(shuō)明:①可明確表示機(jī)器零、無(wú)窮大②非規(guī)格化數(shù)可減少下溢區(qū)間大小(精度損失)③非數(shù)值用于表示異常(如0/0、負(fù)數(shù)開(kāi)根等)正非規(guī)格化數(shù)區(qū)域機(jī)器零0.0+0.0…01×2-126+0.1…1×2-126+1.0…0×2-126正規(guī)格化數(shù)區(qū)域略+1.1…1×2+127下溢區(qū)正上溢區(qū)50

例5—求IEEE

754單精度浮點(diǎn)數(shù)CC968000H的真值N

解:

例4—求(-11/128)10的IEEE754單精度浮點(diǎn)數(shù)的機(jī)器碼

解:

(-11/128)10

=(

-1011)2×2-7

=(-0.1011)2×2-3

=(-1.011)2×2-4=(-1.011)2×2123-127

機(jī)器數(shù)為:

CC968000H=1

10011001

00101101000000000000000N為負(fù)數(shù),浮點(diǎn)數(shù)為規(guī)格化數(shù)(∵1<10011001<254);10111

10110110

0000

0000

0000

0000

000

階=(10011001)2-(01111111)2

=(00011010)2=(26)10

尾數(shù)=(1.00101101)2

=(1.17578125)10∴N=(―1)1×1.17578125×226=-1.17578125×226

※數(shù)值數(shù)據(jù)的表示要素:進(jìn)制、格式、

編碼、長(zhǎng)度

(二進(jìn)制)

(定點(diǎn)/浮點(diǎn))(某種)

(幾種)4838=-10000000+1

作業(yè)2-2:P86起10、11,14、15(2)、17(2)、18(1)51四、非數(shù)值數(shù)據(jù)

溫馨提示

  • 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)論