2025年計算機組成原理第2章_第1頁
2025年計算機組成原理第2章_第2頁
2025年計算機組成原理第2章_第3頁
2025年計算機組成原理第2章_第4頁
2025年計算機組成原理第2章_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1第二章數(shù)據(jù)的表示和運算2§2.1數(shù)據(jù)的編碼一、數(shù)制及其轉(zhuǎn)換1、進位記數(shù)制*進位記數(shù)制:又稱進制或數(shù)制,是用一組固定的符號和統(tǒng)一的規(guī)則來表示數(shù)值的方法。參數(shù)有數(shù)碼、基數(shù)和位權(quán)*常用的4種進制:二進制八進制十進制十六進制數(shù)碼0,10,1,…,70,1,…,90,1,…,9,A,B,…,F基數(shù)281016位權(quán)2i8i10i16i書寫形式BODH*R進制數(shù)表示:(N

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

其中,ki∈{0,1,…(R-1)}32、R進制數(shù)→十進制數(shù)轉(zhuǎn)換

例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)103、十進制數(shù)→R進制數(shù)轉(zhuǎn)換(1)十進制整數(shù)→R進制整數(shù)轉(zhuǎn)換

例2—

余數(shù)2191(最低位)291240220211(最高位)0(19)10=(10011)2

余數(shù)8193(最低位)822(最高位)0(19)10=(23)8*轉(zhuǎn)換規(guī)則:按位權(quán)展開*整數(shù)轉(zhuǎn)換規(guī)則:除基取余、上右下左4(2)十進制小數(shù)→R進制小數(shù)轉(zhuǎn)換

整數(shù)部分0.6875×2=1.3751(最高位)0.375×2=0.750

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

=(0.1011)2

整數(shù)部分0.6875×8=5.55(最高位)0.5×8=4.04

(最低位)

(0.6875)10

=(0.54)8

例3—將(0.6875)10分別轉(zhuǎn)換成二、八進制數(shù)(3)十進制數(shù)→R進制數(shù)轉(zhuǎn)換

*轉(zhuǎn)換規(guī)則:整數(shù)部分、小數(shù)部分分別轉(zhuǎn)換后再合并

練習(xí)1—(19.6875)10=(X)2=(Y)8,X=?Y=?*小數(shù)轉(zhuǎn)換規(guī)則:乘基取整、上左下右54、二、八、十六進制數(shù)相互轉(zhuǎn)換

*數(shù)位長度關(guān)系:1個八進制、十六進制數(shù)位=3

bit、4

bit*轉(zhuǎn)換規(guī)則:從小數(shù)點向兩邊分別轉(zhuǎn)換,

數(shù)位不夠時補零、無效的零刪除

例4—(13.724)8=(001

011.111

010

100)2=(1011.1110101)2

(10011.01)2=(010

011.010)2=(23.2)8

例5—(2B.E)16=(0010

1011.1110)2=(101011.111)2

(11001.11)2=(0001

1001.1100)2=(19.C)16

練習(xí)2—(21.75)10=(X)2=(Y)8=(Z)16,X=?Y=?Z=?(2D.E)16=(A)2=(B)8=(C)10,A=?B=?C=?6二、機器數(shù)及其編碼*數(shù)值數(shù)據(jù):組成—[符號+]數(shù)值[+小數(shù)點+數(shù)值]

運算—符號與數(shù)值分開運算,減法先比較大小*機器數(shù):計算機內(nèi)部編碼表示的數(shù)值數(shù)據(jù)如(+101)2→(0101)2、(-101)2→(1101)2

真值—數(shù)學(xué)上帶+/-號的數(shù)值數(shù)據(jù)*機器數(shù)的編碼方法:運算方法分析—①采用手工運算方法,硬件實現(xiàn)困難☆②采用新運算方法,以利于硬件實現(xiàn)

編碼方法—原碼、補碼、反碼、移碼等,

均用二進制表示←硬件僅0/1兩個狀態(tài)符號/數(shù)值一起運算減法不比較大小新的編碼方法[]表示可缺省71、原碼(Sign-magnitude)表示法*基本思想:機器數(shù)最高位表示真值的符號(0/1表示+/-),

其余位為真值的絕對值*整數(shù)原碼定義:

設(shè)X=±xn-2…x0,則[X]原=xn-1xn-2…x0,[X]原

=X

0≤X<2n-12n-1

-

X

=

2n-1

+|X|-2n-1<X≤0

例1—[+1101]原=01101;[-1101]原=11101

例2—若[X]原=1101,則X=-101

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

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

※[+0]原≠[-0]原

練習(xí)1—若X=-01000,則[X]原=?若[Y]原=101010,則Y=?符號位數(shù)值位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

例4—[+0.1001]原=0.1001;[-0.1001]原=1.1001

例5—若[X]原=1.01,則X=-0.01*原碼的特性:①X與[X]原關(guān)系—·[X]原與X表示值的范圍相同,

·[+0]原≠[-0]原②運算方法—符號與數(shù)值分開運算(與手工運算一致)

└→適合于乘除法,加減法較復(fù)雜編碼時0可省略92、補碼(Two’scomplement)表示法

*編碼目標:符號與數(shù)值一起運算,減法無需比較大小*有模運算:運算只計量小于“?!钡牟糠郑嘤嗖糠直粊G棄?!嬃肯到y(tǒng)的計數(shù)范圍(1)有模運算與補數(shù)示例—時針從10點撥向7點:①10-3=7;②10+9=7+12=7*補數(shù):若a、b、M滿足a+b=M,稱a、b互為模M的補數(shù)

同余—若A、B、M滿足A=B+kM(k為有符號整數(shù)),則記

A≡B(mod

M),稱B和A為模M的同余

運算特征—c-a

=

c-(M-b)

=

c+b

(modM),即減去一個數(shù)等價于加上這個數(shù)的補數(shù)└→可將減法運算轉(zhuǎn)化為加法運算10

*減法無需比較大小的編碼思路:①負數(shù)用其正補數(shù)表示,正數(shù)用其本身表示示例—-4≡8(mod12),+8≡8(mod12)

②減法時,減數(shù)用其取負后編碼表示、進行加法運算示例—9-4≡5(mod12),4-9≡7(mod12)(2)補碼定義*基本思想:機器數(shù)最高位表示X的符號(0/1表示+/-),

其余位為|X|或|X|的補數(shù)*整數(shù)補碼定義:

設(shè)X=±xn-2…x0,則模為2n,[X]補=x’n-1x’n-2…x’0,即[X]補

=

2n

+X(mod2n)

=X

0≤X<2n-12n

+X=2n

-|X|-2n-1≤X<0

說明—為實現(xiàn)“負數(shù)的x’n-1=1”,模須為2n(不是2n-1)11

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

例7—n=5、X≥0時,[X]補最大=01111,Xmax=24-1=+15

X<0時,[X]補最小=10000,Xmin=-24=-16

原碼無11…1110…0110…00

00…0000…0101…11補碼

10…0010…0111…1100…0000…0101…11真值

-2n-1-(2n-1-1)

-1

0

+1+(2n-1-1)[+0000]補=[-0000]補=00000※數(shù)0的補碼惟一※補碼表示數(shù)的個數(shù)比原碼多1個

例6—[+0001]補=00001,[-0001]補=10

0000+(-0001)=11111[+1111]補=01111,[-1111]補=10

0000+(-1111)=1000125

最高位為112*小數(shù)補碼定義:

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

=

2+X(mod2)

=X

0≤X<12+X=2-|X|-1≤X<0

例8—[+0.1011]補=0.1011[-0.1011]補=2-0.1011=10.0000-0.1011=1.010110

說明—模為2(不是1)為實現(xiàn)“負數(shù)的x’0=1”*符號與數(shù)值一起運算的原理分析:僅考慮不溢出情況

0100(+4)1111(-1)0101(+5)1011(-5)

+0011(+3)

+1100(-4)

+1100(-4)

+0100(+4)

00111(+7)11011(-5)10001(+1)01111(-1)

結(jié)果正確—同號加符號不變,異號加符號同絕對值較大者13②設(shè)X=-xn-2…x0,[Y]補=1yn-2…y0,xi及yi=0或1

則[X]補

=

2n+X

=

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

=10

0+1

1

+

1=1

0

0-

xn-2…x0+

xn-2…x0

+1=

1

xn-2…x0

+

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

則[X]補

=

X

=

0xn-2…x0

Y

=

[Y]補

=

+

yn-2…y0

Y

=[Y]補-2n

=

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

2n-1-2n-1

-(

1…1

-

yn-2…y0

+

1

)

=

-(

yn-2…y0

+

1

)14△X→[X]補—

若X為正數(shù),改符號位為0,其余各位不變;若X為負數(shù),改符號位為1,其余各位取反、末位加1

例9—X=+0101,[X]補=X=-0101,[X]補=0

0101;1

1011△[X]補→X—

若[X]補最高位為0,改其為正號,其余各位不變;若[X]補最高位為1,改其為負號,其余各位取反、末位加1

例10—[X]補=0

0101,X=+

0101;[X]補=1

1011,X=-

010115△[X]原→[X]補—

若[X]原最高位為0,[X]補=[X]原;

若[X]原最高位為1,[X]補=[X]原各數(shù)值位取反、末位加1

例11—

[X]原=0

0101,[X]補=0

0101;[X]原=1

0101,[X]補=1

1011△[X]補→[X]原—

若[X]補最高位為0,[X]原=[X]補;

若[X]補最高位為1,[X]原=[X]補各數(shù)值位取反、末位加1

例12—

[X]補=0

0101,[X]原=0

0101;[X]補=1

0101,[X]原=1

1011符號位(最高位)不變符號位(最高位)不變16*[X]補與[-X]補的關(guān)系:

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

當X≥0時,X

=

[X]補,其中xn-1=0,

[-X]補

=

1xn-2…x0

+1

=

xn-1xn-2…x0

+1△[X]補→[-X]補—[X]補的各位取反(含符號位)、末位加1[-X]補→[X]補—[-X]補的各位取反(含符號位)、末位加1

例13—[X]補=1

0110,[-X]補=

0

1001+1=

0

1010

練習(xí)3—若X=-01001,[-X]補=?若[X]補=101010,[-X]補=?-X=?

當X<0時,[X]補

=

2n

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

[-X]補

=|X|=

2n

-[X]補=11…1-[X]補+1

=

xn-1xn-2…x0

+117

0

01001

0

01001

練習(xí)4—

①若X=+01001,[X]原=,[X]補=

②若X=-01010,[X]原=,[X]補=

1

01010

1

10110

+

01010

0

01010

③若[X]原=001010,X=,[X]補=

④若[X]原=101110,X=,[X]補=

-

01110

1

10010

+

01110

1

10010

⑤若[X]補=001110,X=,[-X]補=

⑥若[X]補=101110,X=,[-X]補=

-

10010

0

10010

0

10101

0

10101

⑦若[-X]補=101011,[X]補=,[X]原=

⑧若[-X]補=001001,[X]補=,[X]原=

1

10111

1

01001

714183、反碼(Ones’complement)表示法

*編碼目標:作為原碼與補碼相互轉(zhuǎn)換時的一種過渡編碼*整數(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*小數(shù)反碼定義:設(shè)X=±0.x-1…x-(n-1),模=2-2-(n-1),則[X]反

=

(2-2-(n-1))

+

X(mod2-2-(n-1))

=X

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

例14—[+1101]反=01101,[-1101]反=1001010

例15—[+0.1101]反=0.1101,[-0.1101]反=1.0010*反碼與補碼關(guān)系:若X為正數(shù),[X]補=[X]反;

若X為負數(shù),[X]補=[X]反+11911

原碼、補碼、反碼比較:

①機器數(shù)的最高位均為符號位(0/1表示正/負)原碼無11…1110…0110…00

00…0000…0101…11反碼

10…0011…1011…11

00…0000…0101…11補碼

10…0010…0111…1100…0000…0101…11真值

-2n-1-(2n-1-1)

-1

0

+1+(2n-1-1)④[+0]補=[-0]補,補碼比原碼、反碼多表示一個負數(shù)②若真值X為正數(shù),[X]原=[X]補=[X]反③若真值X為負數(shù),[X]補=[X]原數(shù)值位各位求反、末位+1

[X]反=[X]原數(shù)值位各位求反移碼

00…0000…0101…1110…0010…0111…11204、移碼表示法

*編碼目標:數(shù)(含符號及數(shù)值)連續(xù)時,編碼連續(xù)*整數(shù)移碼定義:

設(shè)X=±xn-2…x0,取模=2n、偏移量=2n-1,則

[X]移

=

2n-1+X(mod2n)

=

2n-1

+

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

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

[+001]移=1001,[+111]移=1111,[-1000]移=0000補碼

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ù)編碼(似無符號數(shù)),便于比較大小②[X]移=[X]補符號位取反、其余各位不變21三、十進制數(shù)編碼*BCD碼(BinaryCodedDecimal):又稱二-十進制編碼,是指用4位二進制編碼表示1位十進制數(shù)位的編碼方式*BCD碼種類:分有權(quán)碼和無權(quán)碼兩種,最常用的是8421碼十進制數(shù)01234567898421碼0000000100100011010001010110011110001001余3碼0011010001010110011110001001101010111100

BCD碼缺省時指8421碼(特殊聲明除外)!*十進制數(shù)的編碼方法:①對各數(shù)位按序用BCD碼編碼,符號編碼放在最后;②用特定編碼表示符號(如1100和1101表示正和負)

例—+427表示為0100001001111100

-123表示為000100100011110122四、字符及字符串編碼1、字符編碼*字符編碼:字符在字符集中惟一的數(shù)字化代碼,表示字符在字符集中的序號或特征號*字符編碼的類型:有輸入碼、內(nèi)碼、交換碼、字模碼4種

鍵盤計算機B轉(zhuǎn)換處理傳送字模碼內(nèi)碼輸入碼交換碼顯示器傳送計算機A交換碼內(nèi)碼內(nèi)碼字符數(shù)據(jù)字符字模庫MEM交換碼字符傳送時的編碼(序號),僅與字符集大小有關(guān)與輸入法、字符集大小有關(guān)與字體、字號大小有關(guān)字符存儲時的編碼(數(shù)據(jù)表示),與字符集大小、存儲器字長有關(guān)23*有關(guān)字符編碼的習(xí)慣叫法:

字符編碼—均指交換碼的編碼!

字符數(shù)據(jù)—均指內(nèi)碼的編碼!*常見字符編碼(交換碼)種類:編碼種類碼點數(shù)量編碼長度說明ASCII碼1287美國標準信息交換碼,英文,使用最廣泛EBCDIC碼2568擴展二-十進制交換碼,英文,IBM定義Unicode碼6553616統(tǒng)一字符碼,支持各國語言,使用較廣泛ANSI碼2568美國國家標準協(xié)會交換碼,英文,含ASCII碼GB2312-80744514漢字國標碼,中文①碼點數(shù)量—需編碼的信息數(shù)量;

(如交換碼指字符數(shù),字模碼指字符點陣數(shù))②編碼長度—采用等長編碼,長度=log2

碼點數(shù)量,Unicode可變長242、字符串編碼*字符串特性:

①由多個字符構(gòu)成②所含字符數(shù)不固定*字符串編碼方法:①由各個字符編碼組成②通過特定編碼標志字符串的結(jié)束,結(jié)束編碼放在最后

└→字符集必須包含該字符(如ASCII碼中編碼為0的字符)

例—字符串“am”的ASCII編碼為110000111011010000000

作業(yè)一:P78~79—2~725*冗余校驗思想:①用待發(fā)數(shù)據(jù)(M)形成校驗位(P),M與P一起傳送②用接收數(shù)據(jù)(M’)形成新校驗位(P”),用P’及P”檢錯/糾錯五、校驗碼存儲器或傳輸線路M函數(shù)fP輸出方比較器P”P’糾正器M函數(shù)fM’輸入方狀態(tài)*術(shù)語:校驗碼—由數(shù)據(jù)和校驗位組成的信息編碼檢錯(檢驗)—檢查數(shù)據(jù)在傳送過程中有/無錯誤糾錯(校正)—根據(jù)錯誤位置糾正數(shù)據(jù)(取反)*常見校驗碼:奇偶校驗碼、海明校驗碼,循環(huán)冗余校驗碼261、奇偶校驗碼*編碼原理:采用1位校驗位,使校驗碼中

“1”的位數(shù)為奇數(shù)或偶數(shù)個*校驗原理:檢測校驗碼中

“1”的個數(shù)特性,確定是否有錯

例1—數(shù)據(jù)101001001101001100011奇校驗碼101001000110100?1100011?偶校驗碼101001010110100?1100011?有奇校驗/偶校驗方法預(yù)先約定為奇數(shù)/偶數(shù)個*校驗碼編碼:

(設(shè)數(shù)據(jù)信息為mnmn-1…m1)

校驗碼組成—共n+1位,數(shù)據(jù)mnmn-1…m1校驗位p1

異或與模2加—

ab=a+b(mod2)

校驗位編碼—奇校驗時:P=p1=mn+mn-1+…+m1+1(mod2)

偶校驗時:P=p1=mn+mn-1+…+m1(mod2)27*校驗方法:故障字S—S=P’P”,其中P’是接收的、P”是形成的檢錯—若S=0無錯誤,若S=1有錯誤糾錯—無此能力(∵無法獲得錯誤位置)

例2—接收的奇校驗碼故障字S錯誤位數(shù)(人工)發(fā)送碼(參考)10100100001010010001101001?10110110101101100?10110110101101000?201101101*校驗?zāi)芰Γ褐荒軝z測奇數(shù)個錯誤,無糾錯能力

例3—下列接收的校驗碼①01001、②10100、③10011中,只有一個有奇數(shù)個錯,發(fā)送時采用的是奇校驗還是偶校驗碼?*應(yīng)用:廣泛應(yīng)用于I/O傳輸?shù)臄?shù)據(jù)校驗25282、海明校驗碼*編碼原理:將數(shù)據(jù)分成k個有重疊的組,

每個組使用一個奇偶校驗位(共k個校驗位)*校驗原理:多重奇偶校驗,即某位錯誤導(dǎo)致多個校驗位變化,從而實現(xiàn)檢錯與糾錯(定位)*校驗?zāi)芰δ繕耍耗軝z測并糾正1位錯誤*校驗方法:(能力目標→方法推導(dǎo))

設(shè)數(shù)據(jù)M=mn…m1,校驗位P=pk…p1(即有k個奇偶檢驗組)校驗碼的編碼規(guī)則?k的長度?

故障字S—S=sk…s1,si=pi’pi”=pi’+

pi”(mod2)

檢錯—若S=0無錯誤,S≠0有錯誤糾錯—S值表示錯誤位置(共有n+k種),該位信息取反26校驗碼常稱為單糾錯碼SEC29*校驗位位數(shù)k的確定:校驗?zāi)芰δ繕艘蟆?k-1≥n+k,其中n+k表示1位錯誤種類n12~45~1112~2627~5758~120k(最小值)234567k的取值—*校驗碼編碼規(guī)則:

(以4個校驗組為例)

故障字S值的約定—S≠0時表示錯誤位置,S值有n+k+1種無錯誤:0000(→校驗碼位置序號從1開始編號)

校驗位錯:0001(p1)、0010(p2)、0100(p3)、1000(p4)

數(shù)據(jù)位錯:S的其余碼值(≥2個si=1)

校驗碼的組成規(guī)則—按“S值=錯誤位置”規(guī)則排列信息位置序號151413121110987654321信息排列m11m10m9m8m7m6m5p4m4m3m2p3m1p2p1校驗位次重要,1個si=130位置及信息校驗組151413121110987654321111111101101110010111010100110000111011001010100001100100001m11m10m9m8m7m6m5p4m4m3m2p3m1p2p1第4組√√√√√√√△第3組√√√√√√√△第2組√√√√√√√△第1組√√√√√√√△

檢驗位的編碼規(guī)則—

(缺省為偶校驗方式)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)*應(yīng)用:常應(yīng)用于I/O傳輸、RAID存儲等方面的校驗28

信息位加入校驗組規(guī)則—信息位的位置hk…h(huán)1中,hi=1時就加入第i校驗組該信息位錯誤時si=131

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

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

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

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

根據(jù)故障字約定,校驗碼排列m7m6m5p4m4m3m2p3m1p2p1

故偶校驗碼=m7m6m5p4m4m3m2p3m1p2p1=1

1

0

0

0

0

1

1

0

0

0

根據(jù)檢驗位編碼規(guī)則,得(偶校驗方式)

p4=m7m6m5

=0p3=

m4m3m2

=1p2=m7m6

m4m3m1=0p1=m7

m5m4

m2m1=02932

例6—續(xù)例5,請分析下列接收的海明偶校驗碼是否有錯?錯誤時的位置?①11000011010、②11000001000、③11001001000

解:①接收的M’=1100010、P’=0110,可求得P”=0100,S=P’+P”(mod2),即無進位的模2加,得S=0010,∴有錯誤,位置2錯誤(p2位錯),數(shù)據(jù)M=1100010

②接收的M’=1100000、P’=0100,可求得P”=0001,S=P’+P”(mod2),得S=0101,∴有錯誤,位置5錯誤(數(shù)據(jù)位m2錯),數(shù)據(jù)M=1100010

③接收的M’=1101000、P’=0100,可求得P”=0110,S=P’+P”(mod2),得S=0010,∴有錯誤,p2錯?實際是m4及m2位錯(M’=1101000)!*校驗?zāi)芰Γ篠EC能檢測并糾正1位錯,最多只可發(fā)現(xiàn)2位錯!30333、循環(huán)冗余校驗碼—CRC(CyclicRedundancyCheck)碼*基本概念:模2乘—與手工乘法類似,乘積各位求和時采用模2加法

模2除—上商規(guī)則,部分余數(shù)的首位即為位商;

求余規(guī)則,按位模2減(即模2加)1010

×10110100000

1010_

10001010110110000

101

010

000

100

10101……余數(shù)(比除數(shù)少1位)

編碼與多項式—可用多項式mn-1Xn-1+…+m1X+m0=M(X)來表示信息編碼mn-1…m1m0,mi=0或1時稱M(X)為二進制多項式;

M(X)左移k位相當于M(X)·Xk34*編碼原理:CRC碼由數(shù)據(jù)M(X)及校驗位R(X)拼接組成;而R(X)為M(X)左移k位后、模2除以k+1位生成多項式G(X)的余數(shù)即[M(X)·Xk]/G(X)=Q(X)……R(X)(模2除)

CRC碼=M(X)·Xk-R(X)=M(X)·Xk+R(X)(模2加減)數(shù)據(jù)mn-1…m1校驗位rk…r1

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

解:G(X)=X3+X+1,即1011→校驗位R(X)為3位

M(X)·X3/G(X)=1100000/1011=1110……010

(模2除)CRC碼=1100000+010=1100

010CRC碼特點—模2除以G(X)時余數(shù)為零,即

[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除)35*校驗原理:--設(shè)接收的CRC碼=M’(X)·Xk+R’(X)①用接收的CRC碼模2除以G(X),求得余數(shù)R”(X);②若R”(X)=0,表示M’(X)正確;否則,R”(X)可表明出錯位置循環(huán)碼[與M’(X)無關(guān)]M’(X)串行移位不同值表示錯誤位置不同(不是錯誤位置)糾錯成本低(避免了海明校驗碼的譯碼器電路)適用于串行設(shè)備28R”(X)具有的特性:第i位錯誤時為R”i(X),第i+1位錯誤時為R”i+1(X),有[

R”i(X)·X]/G(X)=…R”i+1(X)第i+2位錯誤時為R”i+2(X),有[R”i+1(X)·X]/G(X)=…R”i+2(X)

……

…………最低位有錯時校正36

例8—續(xù)例7,CRC碼1位錯誤時的余數(shù)特性如下表:A1A2A3A4A5

A6

A7出錯位置余數(shù)R”(X)R”(X)特性m’4…m’1r’3…r’11100010無0001100011A70011100000A6010

0010/1011=…0101100110A5100

0100/1011=…1001101010A40111000/1011=…0111110010A31100110/1011=…1101000010A21111100/1011=…1110100010A11011110/1011=…101循環(huán)次數(shù)操作A1

A2

A3

A4

A5

A6

A7余數(shù)錯誤位置0CRC/G(X)1101010011A41M’(X)<<1、[R”(X)<<1]/G(X)101010*110A32M’(X)<<1、[R”(X)<<1]/G(X)01010**111A23M’(X)<<1、[R”(X)<<1]/G(X)1010***101A1M’(X)最高位糾錯、M’(X)<<10010***000無

例9—續(xù)例8,CRC糾正1位錯時的原理如下表:(共循環(huán)4次)3437*對G(X)選擇的要求:①發(fā)生校驗?zāi)芰Ψ秶鷥?nèi)錯誤時,使R”(X)均不為零;②發(fā)生不同位置錯誤時,使R”(X)應(yīng)該均不同;③連續(xù)作R”(X)補0并模2除時,使新R”(X)是循環(huán)變化的*常用的G(X):

CRC-CCITT:G(X)=X16+X12+X5+1CRC-16:G(X)=X16+X15+X2+1CRC-12:G(X)=X12+X11+X3+X2+X+1CRC-32:G(X)=X32+X26+X23+X16+X12+X11+X10+X8+X7

+X5+X4+X2+X+1*校驗?zāi)芰Γ篊RC碼檢測及糾正錯誤的能力隨n及G(X)而不同;

CRC碼檢錯能力較強、糾錯能力較弱*應(yīng)用:廣泛應(yīng)用于MEM傳送、網(wǎng)絡(luò)通信等方面38§2.2數(shù)據(jù)的表示

計算機用編碼表示數(shù)據(jù):數(shù)據(jù)數(shù)值數(shù)據(jù)非數(shù)值數(shù)據(jù)邏輯數(shù)

字符(串)

--含漢字圖形其它

--聲音、圖像等無符號數(shù)

--自然數(shù)有符號數(shù)

--整數(shù)、純小數(shù)、實數(shù)等

計算機只支持最常用(最基本)的數(shù)據(jù)類型:

數(shù)據(jù)類型—一個值的集合、在這個值集上的一組操作

數(shù)據(jù)表示—計算機硬件能夠直接識別和引用的數(shù)據(jù)類型類型轉(zhuǎn)換—程序員及編譯程序完成應(yīng)用→表示的變換程序員應(yīng)用需要的數(shù)據(jù)類型編程語言支持的數(shù)據(jù)類型硬件支持的數(shù)據(jù)類型編譯程序如整數(shù)39一、數(shù)值數(shù)據(jù)的表示方法2、馮·諾依曼計算機的硬件特征

①采用二進制表示指令和數(shù)據(jù),采用二進制運算②二進制中只有0和1,無法顯式表示符號和小數(shù)點

③機器字長固定,CPU采用定長方式處理1、數(shù)值數(shù)據(jù)的數(shù)學(xué)特征

①進制可有多種②符號為“+”或“-”,符號可以缺?、坌?shù)點為“.”

,位置可任意變化,點可隱含表示④數(shù)碼長度可任意變化

⑤運算不會產(chǎn)生溢出運算會產(chǎn)生溢出!40*進制問題處理:*符號問題處理:有符號數(shù)—

無符號數(shù)—*小數(shù)點問題處理:

①點的表示—②位置表示—*編碼格式選擇:*數(shù)碼長度問題處理:①同一數(shù)據(jù)類型—

②同一操作集數(shù)據(jù)—3、數(shù)值數(shù)據(jù)的表示方法支持二進制,可支持二-十進制符號用數(shù)字表示,符號位置為數(shù)值適于數(shù)據(jù)通常存儲、I/O時用隱含方式表示約定不同數(shù)據(jù)類型采用不同格式自然數(shù)、整數(shù)純小數(shù)實數(shù)隱含于最低位之后隱含于最高位之前純小數(shù)尾數(shù)+整數(shù)指數(shù)定點格式

浮點格式便于硬件實現(xiàn)運算的某種編碼值集+操作集只有一種長度(固定)

←定長處理常有幾種長度(數(shù)據(jù)類型)←如整數(shù)41*運算問題處理:

①運算類型—指令操作碼指明運算類型及數(shù)據(jù)表示(類型)

數(shù)值數(shù)據(jù)的處理方法:含數(shù)據(jù)的表示和數(shù)據(jù)的操作方法

②運算方法—按數(shù)據(jù)表示(格式/編碼/長度)實現(xiàn)相應(yīng)運算③溢出處理—硬件檢測/發(fā)出通知,軟件是否/如何處理39MEM中信息無法表明類型定點與浮點表示機器數(shù)編碼方法表示格式(小數(shù)點表示)編碼方式(符號及數(shù)值表示)數(shù)碼長度(數(shù)值范圍表示)數(shù)據(jù)的表示數(shù)據(jù)的操作數(shù)據(jù)處理運算方式溢出處理系統(tǒng)結(jié)構(gòu)確定組成邏輯實現(xiàn)42二、數(shù)的定點表示1、定點表示方法指約定數(shù)據(jù)中隱含的小數(shù)點位置固定不變*定點數(shù)的表示范圍:

(設(shè)數(shù)碼長度為n位)類型編碼自然數(shù)(無符號)整數(shù)(有符號)純小數(shù)(有符號)原碼-(2n-1-1)~+(2n-1-1)-(1-2-(n-1))~+(1-2-(n-1))補碼

-2n-1~+(2n-1-1)-1~+(1-2-(n-1))無符號編碼0~2n-1*定點表示格式:2、定點數(shù)的表示

無符號整數(shù)有符號整數(shù)純小數(shù)Sn-1

Sn-2

S0Sf

Sn-2

S0Sf

S-1…S-(n-1)數(shù)值數(shù)符數(shù)值數(shù)符數(shù)值用于表示字符(char,BYTE)43

*硬件支持的定點數(shù)表示:無符號整數(shù)--無符號編碼方式、m種長度←m種數(shù)據(jù)表示有符號整數(shù)—某種編碼方式、m種長度←m種數(shù)據(jù)表示補碼概率≈100%默認為補碼方式

示例1—C語言中的6種整數(shù)類型:short[int]unsignedshort[int]

intunsignedintlong[int]unsignedlong[int]※說明:純小數(shù)通常表示為浮點數(shù)

←減少硬件成本

示例2—IA32支持的6種定點數(shù)表示:

8/16/32bit、無符號編碼的定點整數(shù),

8/16/32bit、補碼編碼的定點整數(shù)44三、數(shù)的浮點表示1、浮點表示方法指約定數(shù)據(jù)中隱含的小數(shù)點位置是可變的

表示—尾數(shù)用定點純小數(shù)表示,階用定點純整數(shù)表示*浮點表示格式:由定點格式的尾數(shù)和階組成

格式—1SE

ESM

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

EMSM

概念:尾數(shù)--±M,階(指數(shù))—±E,尾數(shù)的基—RM,階的基—RE45*浮點數(shù)的表示范圍與精度:

假設(shè)尾數(shù)及階的基RM=RE=2,數(shù)值長度分別為m位及e位2、浮點數(shù)的表示下溢區(qū)正上溢區(qū)(+∞)負上溢區(qū)(-∞)負數(shù)區(qū)機器零絕對零N正min正數(shù)區(qū)N負maxN正maxN負min

例1—若浮點表示格式中m=10、e=4,尾數(shù)及階的編碼均為補碼方式,寫出(-54)10的機器碼

解:(-54)10=(-110110)2=-0.11011×2+110,

浮點數(shù)機器碼為0011010010100000

影響因素—e決定范圍、m決定精度46

例2—若浮點表示格式中尾數(shù)為8位(含1位符號位)、階為5位(含1位符號位),寫出下列實數(shù)的浮點數(shù)或機器碼編碼格式實數(shù)浮點數(shù)浮點數(shù)的表示階尾數(shù)階碼尾數(shù)碼原碼原碼+10101.11+0.1010111×2+1010010101010111-0.0010111-0.1011100×2-10+0.1010111×2+110101101010101111011011011010移碼補碼+0.0010111+0.1011100×2-10-10101.11-0.1010111×2+101001010101110011101111010002010010

1101110001110

0101110010101

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

*硬件支持的浮點數(shù)表示:實數(shù)(及純小數(shù))—IEEE754標準,有2種浮點格式

示例—C語言中的2種浮點數(shù)類型:float,double473、浮點數(shù)的規(guī)格化*目的:對給定的浮點表示格式,使浮點數(shù)的表示精度最大

例3—若浮點表示格式中m=3、e=3、尾數(shù)和階均為原碼編碼方式,不同表示方法的浮點數(shù)精度不同:

+111.1=0.1111×23=0.01111×24=0.001111×25*規(guī)格化數(shù)的要求:尾數(shù)真值的最高位為1,即

≤|M|<1*規(guī)格化的操作:左規(guī)—尾數(shù)左移一位,階碼減一

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

應(yīng)用—非規(guī)格化數(shù)→規(guī)格化數(shù),可能需多次規(guī)格化操作45001101110100001101010001表示的值111.0110.0100.048

例4—若浮點數(shù)尾數(shù)及階的基均為2,回答下列問題:非規(guī)格化浮點數(shù)+1.0111×2+010-0.00010×2+010+1011.1×2+010規(guī)格化操作右規(guī)1次規(guī)格化浮點數(shù)+0.10111×2+011編碼格式規(guī)格化數(shù)的機器碼最大正數(shù)最小正數(shù)最大負數(shù)最小負數(shù)階尾數(shù)階尾數(shù)階尾數(shù)階尾數(shù)階尾數(shù)原碼原碼01110111111111010000移碼補碼011111010000*規(guī)格化數(shù)的表示范圍及數(shù)碼特征:

原碼尾數(shù)—最高數(shù)值位為1

補碼尾數(shù)—最高數(shù)值位與符號相反

←便于硬件實現(xiàn)-1.00…00真值補碼100…00-0.11…11-0.10…01-0.10…00-0.01…11-0.00…01100…01101…11110…00110…01111…11…………左規(guī)3次-0.10000×2-001右規(guī)4次+0.10111×2+1101111

0000111111000001111111110000

1111101111

10000045494、IEEE754標準*表示格式(及數(shù)碼長度):有單精度、雙精度兩種格式(長度分別為32位及64位)*編碼方式:

①數(shù)制—M和E均采用二進制方式(即RM=RE=2)2381單精度浮點表示格式數(shù)符S階E尾數(shù)M3252111雙精度浮點表示格式數(shù)符S階E尾數(shù)M64②碼制—M為原碼編碼的定點純小數(shù)(改進了定點位置),

E為移碼編碼的定點整數(shù)(改進了偏移值)50*階的碼制:采用余127碼和余1023碼余X碼—偏移值為X的移碼標準移碼:真值=E-28-1=E-128

←可稱余128碼余127碼:真值=E-(28-1-1)=E-127*尾數(shù)的碼制:

(以單精度格式為例)

支持非規(guī)格化尾數(shù)、規(guī)格化尾數(shù)兩種方式

規(guī)格化尾數(shù)—尾數(shù)真值=±1.m-2…m-24,

M表示=m-2…m-24,尾數(shù)精度=24位

階的范圍—1≤E≤254表示規(guī)格化數(shù),-126≤階≤+127

E=0和255另作他用(如表示非規(guī)格化數(shù))

非規(guī)格化尾數(shù)—尾數(shù)真值=±0.m-1…m-23,

M表示=m-1…m-23,尾數(shù)精度≤23位階<-126擴展0.1m-2…m-2351*IEEE754標準浮點表示的特征:(以單精度格式為例)參數(shù)值真值N說明E=0,且M=0N=0機器零(下溢區(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×∞±無窮大(上溢區(qū))

說明:①可明確表示機器零、無窮大;②非規(guī)格化數(shù)可減少下溢區(qū)間大小(精度損失);③非數(shù)值用于表示異常(如0/0、負數(shù)開根等)正非規(guī)格化數(shù)區(qū)域機器零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ū)52

例6—求IEEE

754單精度碼為(CC968000)16的浮點數(shù)的真值N

例5—求(-11/128)10的IEEE754單精度規(guī)格化數(shù)的機器碼

解—(-11/128)10

=(

-1011)2×2-7

=(-0.1011)2×2-3

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

解—(CC968000)16=1

10011001

00101101000000000000000N為負數(shù),浮點數(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ù)的表示:表示格式、編碼方式、數(shù)碼長度

(定點/浮點)

(某種)(幾種)494153四、非數(shù)值數(shù)據(jù)的數(shù)據(jù)表示

MEM的訪問/存儲效率:

數(shù)據(jù)訪問效率—指令中1個MEM地址應(yīng)對應(yīng)多個數(shù)據(jù)位

存儲單元長度(MEM字長)的特征:

MEM字長取值—為2n位(n為常數(shù))←便于數(shù)據(jù)長度運算(二進制)MEM字長方案—有二進制位、機器字長、折中長度3種

數(shù)據(jù)存儲效率—短數(shù)據(jù)占1個單元,長數(shù)據(jù)占多個單元0000H0001H…地址數(shù)據(jù)(1位)01…0000H0001H…0000100010001111…地址數(shù)據(jù)(8位)0000H0001H…00001000111100000000000010001111…地址數(shù)據(jù)(設(shè)int為16位)通常MEM字長=折中長度(如字節(jié))541、字符數(shù)據(jù)的表示指字符的交換碼在存儲/處理時的編碼方式,即字符的內(nèi)碼*數(shù)據(jù)的表示方法:表示格式—

數(shù)碼長度—n=kW,W為MEM字長,k受限于字符集大小m

Cm-1

Cm-2…C1

C0

Kp-1…

K0p擴展位字符交換碼n

例1—常見字符交換碼的表示:(假設(shè)MEM按字節(jié)編址)字符集種類交換碼長度內(nèi)碼長度占地址數(shù)ASCII碼78位=7+11個Unicode碼1616位=16+02個GB2312-80碼1416位=14+22個

編碼方式—無符號編碼(二進制)*擴展位的作用:用于填滿數(shù)據(jù)位、或區(qū)分不同字符集55*數(shù)據(jù)的運算及處理方法:

基本運算—關(guān)系運算(如A=B、A≥B等,結(jié)果為真/假)

字符串數(shù)據(jù)的表示:硬件—通常只支持字符數(shù)據(jù)的表示與運算軟件—將字符串轉(zhuǎn)換為字符進行存儲及處理└→字符數(shù)組+特殊字符(字符串結(jié)束符)

處理方法—可用減法運算+邏輯運算代替關(guān)系運算關(guān)系運算A≥BA≤BA>BA<BA=B實現(xià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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論