版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1第二章數(shù)據(jù)的表示和運(yùn)算2§2.1數(shù)據(jù)的編碼一、數(shù)制及其轉(zhuǎn)換1、進(jìn)位計(jì)數(shù)制*進(jìn)位計(jì)數(shù)制:又稱進(jìn)制或數(shù)制,是用一組固定的符號和統(tǒng)一的規(guī)則來表示數(shù)值的方法。有數(shù)碼、基數(shù)和位權(quán)3個(gè)基本參數(shù)*常用的4種進(jìn)制:二進(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書寫形式BODH*R進(jìn)制數(shù)表示:(N
)R=(kn-1…k1k0.k-1k-2…k-m)R=其中,ki∈{0,1,…(R-1)}32、R進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)例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、十進(jìn)制數(shù)轉(zhuǎn)換成R進(jìn)制數(shù)(1)十進(jìn)制數(shù)整數(shù)轉(zhuǎn)換成R進(jìn)制數(shù)整數(shù)例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)十進(jìn)制數(shù)小數(shù)轉(zhuǎn)換成R進(jìn)制數(shù)小數(shù)
整數(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)換成二、八進(jìn)制數(shù)(3)十進(jìn)制數(shù)轉(zhuǎn)換成R進(jìn)制數(shù)
*轉(zhuǎn)換規(guī)則:整數(shù)部分、小數(shù)部分分別轉(zhuǎn)換后再合并練習(xí)1—(19.6875)10=(X)2=(Y)8,X=?Y=?*小數(shù)轉(zhuǎn)換規(guī)則:乘基取整、上左下右54、二、八、十六進(jìn)制數(shù)相互轉(zhuǎn)換*隱含規(guī)律:2=21,8=23,16=24(1)二進(jìn)制、八進(jìn)制數(shù)相互轉(zhuǎn)換*轉(zhuǎn)換規(guī)則:①從小數(shù)點(diǎn)向兩邊分別轉(zhuǎn)換;②3個(gè)二進(jìn)制數(shù)位(不夠時(shí)補(bǔ)零)等價(jià)于1個(gè)八進(jì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
(2)二進(jìn)制、十六進(jìn)制數(shù)相互轉(zhuǎn)換*轉(zhuǎn)換規(guī)則:①從小數(shù)點(diǎn)向兩邊分別轉(zhuǎn)換;②4個(gè)二進(jìn)制數(shù)位(不夠時(shí)補(bǔ)零)等價(jià)于1個(gè)十六進(jìn)制數(shù)位例5—(2B.E)16=(0010
1011.1110)2=(101011.111)2
(11001.11)2=(0001
1001.1100)2=(19.C)16
6二、機(jī)器數(shù)及其編碼*數(shù)值數(shù)據(jù):組成—由符號、小數(shù)點(diǎn)及數(shù)值構(gòu)成,可缺省符號及小數(shù)點(diǎn)運(yùn)算—①符號與數(shù)值分開運(yùn)算;②加減法需先比較大小*機(jī)器數(shù):符號數(shù)字化的數(shù),通常0/1表示+/-;
如(+101)2→(0101)2、(-0.101)2→(-.101)2→(1.101)2真值—帶“+”或“-”符號的數(shù)*機(jī)器數(shù)的運(yùn)算方法:①采用手工運(yùn)算方法,硬件實(shí)現(xiàn)很不方便;如—(+x)+(-y)時(shí),先求x-y、再求結(jié)果符號、最后求x-y或-(y-x)
☆②采用新運(yùn)算方法,便于硬件實(shí)現(xiàn)(如符號與數(shù)值一起運(yùn)算)└→必須使用新的編碼方法!*機(jī)器數(shù)的編碼方法:原碼、補(bǔ)碼、反碼、移碼等71、原碼表示法(原碼編碼方法)*基本思想:用0/1表示符號+/-,數(shù)值位為真值的絕對值*純整數(shù)原碼定義:
設(shè)X=±xn-2…x0,xi=0或1,則[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—設(shè)[X]原=1101,則X=-101例3—設(shè)[+X]原=0110,則[-X]原=1110;[+X]原=0000,則[-X]原=1000,即[+0]原≠[-0]原練習(xí)1—若X=-01000,[X]原=?若[X]原=101010,X=?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]原;②運(yùn)算方法—符號與數(shù)值分開運(yùn)算(與手工運(yùn)算一致)
└→適合于乘除法,加減法較復(fù)雜92、補(bǔ)碼表示法*目標(biāo):實(shí)現(xiàn)符號與數(shù)值一起運(yùn)算*有模運(yùn)算:運(yùn)算時(shí)只計(jì)量小于“?!钡牟糠?,多余部分被丟棄?!?jì)量系統(tǒng)的計(jì)數(shù)范圍;(1)有模運(yùn)算與補(bǔ)數(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ù)同余—若A、B、M滿足A=B+kM(k為有符號整數(shù)),則記
A≡B(mod
M),稱B和A為模M的同余
運(yùn)算特征—c-a
=
c-(M-b)
=
c+b
(modM),即減去一個(gè)數(shù)等價(jià)于加上這個(gè)數(shù)的補(bǔ)數(shù)└→可將減法運(yùn)算轉(zhuǎn)化為加法運(yùn)算10*數(shù)據(jù)編碼思路:使數(shù)值部分無減法運(yùn)算①負(fù)數(shù)用其正補(bǔ)數(shù)表示,正補(bǔ)數(shù)可用模加負(fù)數(shù)求得;例—-4≡8(mod12),即8=12+(-4)②正數(shù)用其本身表示,即正數(shù)的同余數(shù)例—8≡8(mod12),即8=8+12(mod12)(2)補(bǔ)碼定義*基本思想:設(shè)模為M,真值X的[X]補(bǔ)=M+X(modM)*純整數(shù)補(bǔ)碼定義:
設(shè)X=±xn-2…x0,xi=0或1,則[X]補(bǔ)=x’n-1x’n-2…x’0,即[X]補(bǔ)
=
2n
+X(mod2n)
=X
0≤X<2n-12n
+X=2n
-|X|-2n-1≤X<0說明—因X連同符號位共n位,故模為2n11例6—[+0001]補(bǔ)=00001,[-0001]補(bǔ)=10
0000-0001=11111[+1111]補(bǔ)=01111,[-1111]補(bǔ)=10
0000-1111=10001練習(xí)2—若X=-01000、Y=+01000,[X]補(bǔ)=?[Y]補(bǔ)=?例7—n=5、X≥0時(shí),最大[X]補(bǔ)=01111,Xmax=24-1=+15
X<0時(shí),最小[X]補(bǔ)=10000,Xmin=-24=-16
原碼無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)[+0000]補(bǔ)=[-0000]補(bǔ)=00000※數(shù)0的補(bǔ)碼惟一※正數(shù)補(bǔ)碼最高位(符號位)為0,負(fù)數(shù)最高位為1※補(bǔ)碼表示數(shù)的個(gè)數(shù)比原碼多1個(gè)12*定點(diǎn)純小數(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<12+X=2-|X|-1≤X<0例8—[+0.1011]補(bǔ)=0.1011[-0.1011]補(bǔ)=2-0.1011=10.0000-0.1011=1.0101
說明—因X的計(jì)量范圍為-1+2-(n-1)~+1-2-(n-1),故模為21013②設(shè)純整數(shù)X=-xn-2…x0,[Y]補(bǔ)=1yn-2…y0,xi和yi=0或1則[X]補(bǔ)
=
2n+X
=
[2n-1+(2n-1-1)+1]+X
=10
…
0+1
…
1
+
1=1
0
…
0+1-
xn-2…x0+
xn-2…x0=
1
xn-2…x0
+
1(3)補(bǔ)碼的特性*X與[X]補(bǔ)的關(guān)系:①設(shè)純整數(shù)X=+xn-2…x0,[Y]補(bǔ)=0yn-2…y0,xi和yi=0或1則[X]補(bǔ)
=
X
=
0xn-2…x0
Y
=
[Y]補(bǔ)
=
+
yn-2…y0
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
)純小數(shù)真值與補(bǔ)碼的關(guān)系—上述方法同樣適用,自行推導(dǎo)14△X→[X]補(bǔ)—
若X為正數(shù),改符號位為0,其余各位不變;若X為負(fù)數(shù),改符號位為1,其余各位取反、末位加1例9—X=+0101,[X]補(bǔ)=X=-0101,[X]補(bǔ)=0
0101;1
1011△[X]補(bǔ)→X—
若[X]補(bǔ)最高位為0,改其為正號,其余各位不變;若[X]補(bǔ)最高位為1,改其為負(fù)號,其余各位取反、末位加1例10—[X]補(bǔ)=0
0101,X=+
0101;[X]補(bǔ)=1
1011,X=-
010115△[X]原→[X]補(bǔ)—
若[X]原最高位為0,[X]補(bǔ)=[X]原;
若[X]原最高位為1,[X]補(bǔ)=[X]原各數(shù)值位取反、末位加1例11—
[X]原=0
0101,[X]補(bǔ)=0
0101;[X]原=1
0101,[X]補(bǔ)=1
1011△[X]補(bǔ)→[X]原—
若[X]補(bǔ)最高位為0,[X]原=[X]補(bǔ);
若[X]補(bǔ)最高位為1,[X]原=[X]補(bǔ)各數(shù)值位取反、末位加1例12—
[X]補(bǔ)=0
0101,[X]原=0
0101;[X]補(bǔ)=1
0101,[X]原=1
101116*[X]補(bǔ)與[-X]補(bǔ)的關(guān)系:設(shè)純整數(shù)[X]補(bǔ)=xn-1xn-2…x0,xi=0或1,則
當(dāng)X≥0時(shí),X
=
[X]補(bǔ),其中xn-1=0,
[-X]補(bǔ)
=
1xn-2…x0
+1
=
xn-1xn-2…x0
+1
當(dāng)X<0時(shí),[X]補(bǔ)
=
2n
-|X|,其中xn-1=1,
[-X]補(bǔ)
=|X|=
2n
-[X]補(bǔ)=11…1-[X]補(bǔ)+1
=
xn-1xn-2…x0
+1△[X]補(bǔ)→[-X]補(bǔ)—[X]補(bǔ)的各位取反(含符號位)、末位加1[-X]補(bǔ)→[X]補(bǔ)—[-X]補(bǔ)的各位取反(含符號位)、末位加1例13—[X]補(bǔ)=1
0110,[-X]補(bǔ)=
0
1001+1=
0
1010
練習(xí)3—若X=-01001,[-X]補(bǔ)=?若[X]補(bǔ)=101010,[-X]補(bǔ)=?-X=?17
0
01001
0
01001
練習(xí)4—
①若X=+01001,[X]原=,[X]補(bǔ)=;
②若X=-01010,[X]原=,[X]補(bǔ)=;
1
01010
1
10110
+
01010
0
01010
③若[X]原=001010,X=,[X]補(bǔ)=;
④若[X]原=101110,X=,[X]補(bǔ)=;
-
01110
1
10010
+
01110
1
10010
⑤若[X]補(bǔ)=001110,X=,[-X]補(bǔ)=;
⑥若[X]補(bǔ)=101110,X=,[-X]補(bǔ)=;
-
10010
0
10010
0
10101
0
10101
⑦若[-X]補(bǔ)=101011,[X]補(bǔ)=,[X]原=;
⑧若[-X]補(bǔ)=001001,[X]補(bǔ)=,[X]原=
1
10111
1
01001
714183、反碼表示法*目標(biāo):作為原碼與補(bǔ)碼相互轉(zhuǎn)換時(shí)的一種過渡編碼*純整數(shù)反碼定義:
設(shè)X=±xn-2…x0,xi=0或1,取模=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),xi=0或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.001019*反碼與補(bǔ)碼關(guān)系:若X為正數(shù),[X]補(bǔ)=[X]反;若X為負(fù)數(shù),[X]補(bǔ)=[X]反+111
原碼、補(bǔ)碼、反碼比較:
①機(jī)器數(shù)的最高位均為符號位(0/1表示正/負(fù));原碼無11…1110…0110…00
00…0000…0101…11反碼
無
10…0011…1011…11
00…0000…0101…11補(bǔ)碼10…0010…0111…1100…0000…0101…11真值-2n-1-(2n-1-1)
-1
0
+1+(2n-1-1)④[+0]補(bǔ)=[-0]補(bǔ),補(bǔ)碼比原碼、反碼多表示一個(gè)負(fù)數(shù)②若真值X為正數(shù),[X]原=[X]補(bǔ)=[X]反;③若真值X為負(fù)數(shù),[X]補(bǔ)=[X]反+1,[X]反=[X]原各位求反(符號位除外);204、移碼表示法*目標(biāo):實(shí)現(xiàn)符號與數(shù)值一起編碼
←數(shù)連續(xù)時(shí)編碼連續(xù)*純整數(shù)移碼定義:
設(shè)X=±xn-2…x0,其中xi=0或1,取模=2n,則[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補(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ù)編碼(無符號數(shù)),便于比較大?。虎赱X]移=[X]補(bǔ)符號位取反、其余各位不變21三、十進(jìn)制數(shù)編碼*BCD碼(BinaryCodedDicimal):又稱二-十進(jìn)制編碼,是指用4位二進(jìn)制編碼表示1位十進(jìn)制數(shù)位的編碼方式。*BCD碼種類:分有權(quán)碼和無權(quán)碼兩種,最常用的是8421碼。十進(jìn)制數(shù)01234567898421碼0000000100100011010001010110011110001001余3碼0011010001010110011110001001101010111100
BCD碼缺省指8421碼(特殊聲明除外)!*十進(jìn)制數(shù)的編碼方法:①對各數(shù)位按序用BCD碼編碼,符號編碼放在最后;②用特定編碼表示符號(如1100和1101表示正和負(fù))。
例—+427表示為0100001001111100
-123表示為000100100011110122四、字符及字符串編碼1、字符編碼*字符編碼:字符在字符集中惟一的數(shù)字化代碼,表示字符在字符集中的序號或特征號*字符編碼的類型:有輸入碼、內(nèi)碼、交換碼、字模碼4種
與輸入法、字符集大小有關(guān)與字體、字號大小有關(guān)字符交換時(shí)的編碼(序號),僅與字符集大小有關(guān)字符存儲時(shí)的編碼(數(shù)據(jù)表示),與字符集大小、存儲字長有關(guān)鍵盤計(jì)算機(jī)B轉(zhuǎn)換處理傳送字模碼內(nèi)碼輸入碼交換碼顯示器傳送計(jì)算機(jī)A交換碼內(nèi)碼內(nèi)碼字符數(shù)據(jù)字符字模庫MEM交換碼23*有關(guān)字符編碼的約定:
字符編碼—均指交換碼的編碼!
字符數(shù)據(jù)—均指內(nèi)碼的編碼!*常見字符編碼(交換碼)種類:編碼種類碼點(diǎn)數(shù)量編碼長度說明ASCII碼1287美國標(biāo)準(zhǔn)信息交換碼,英文,使用最廣泛EBCDIC碼2568擴(kuò)展二-十進(jìn)制交換碼,英文,IBM定義Unicode碼6553616統(tǒng)一字符碼,支持各國語言,使用較廣泛ANSI碼2568美國國家標(biāo)準(zhǔn)協(xié)會(huì)交換碼,英文,含ASCII碼GB2312-80744514漢字國標(biāo)碼,中文①碼點(diǎn)數(shù)量—需編碼的信息數(shù)量;(如交換碼指字符數(shù),字模碼指字符點(diǎn)陣數(shù))②編碼長度—采用等長編碼,長度=log2
碼點(diǎn)數(shù)量242、字符串編碼*字符串特性:
①由多個(gè)字符構(gòu)成;②所含字符數(shù)不固定。*字符串編碼方法:①由各個(gè)字符編碼組成;②通過特定編碼標(biāo)志字符串的結(jié)束,結(jié)束編碼放在最后
└→字符集必須包含該字符(如ASCII碼中編碼為0的字符)例—C語言中字符串“am”可編碼為1100001110110100000025*冗余校驗(yàn)思想:①用待發(fā)數(shù)據(jù)(M)形成校驗(yàn)信息(P),M與P一起傳送;②用接收數(shù)據(jù)(M’)形成新校驗(yàn)信息(P”),檢錯(cuò)并糾錯(cuò)五、校驗(yàn)碼存儲器或傳輸線路M函數(shù)fP輸出方比較器P”P’糾正器M函數(shù)fM’輸入方狀態(tài)*術(shù)語:校驗(yàn)碼—由數(shù)據(jù)位和校驗(yàn)位組成的信息編碼;檢錯(cuò)(檢驗(yàn))—檢查數(shù)據(jù)在傳送過程中有/無錯(cuò)誤;糾錯(cuò)(校正)—根據(jù)錯(cuò)誤位置糾正數(shù)據(jù)(取反)*常見校驗(yàn)碼:奇偶校驗(yàn)碼、海明校驗(yàn)碼;循環(huán)冗余校驗(yàn)碼261、奇偶校驗(yàn)碼*編碼原理:采用1位校驗(yàn)位,使數(shù)據(jù)位及校驗(yàn)位中“1”的位數(shù)為奇數(shù)或偶數(shù)個(gè)*校驗(yàn)原理:檢測校驗(yàn)碼中“1”的個(gè)數(shù)變化,確定是否有錯(cuò)例1—數(shù)據(jù)101001001101001100011奇校驗(yàn)碼101001000110100?1100011?偶校驗(yàn)碼101001010110100?1100011?有奇校驗(yàn)/偶校驗(yàn)2種方法預(yù)先約定為奇數(shù)/偶數(shù)個(gè)*校驗(yàn)碼編碼:
(設(shè)數(shù)據(jù)信息為mnmn-1…m1)校驗(yàn)碼組成—共n+1位,數(shù)據(jù)mn-1…m1校驗(yàn)位p1
異或與模2加—
XY=X+Y(mod2)校驗(yàn)位編碼—奇校驗(yàn):P=p1=mn+mn-1+…+m1+1(mod2)偶校驗(yàn):P=p1=mn+mn-1+…+m1(mod2)27*校驗(yàn)方法:故障字S—S=P’P”,其中P’是接收的、P”是形成的檢錯(cuò)—若S=0無錯(cuò)誤,若S=1有錯(cuò)誤;糾錯(cuò)—無此能力(∵無法獲得錯(cuò)誤位置)例2—接收的奇校驗(yàn)碼故障字S錯(cuò)誤位數(shù)(人工)發(fā)送碼(參考)10100100001010010001101001??0110110101101100??0110110101101000??01101101*校驗(yàn)?zāi)芰Γ褐荒軝z測奇數(shù)個(gè)錯(cuò)誤,無糾錯(cuò)能力例3—下列接收的校驗(yàn)碼①01001、②10100、③10011中,只有一個(gè)有奇數(shù)位錯(cuò),請問發(fā)送時(shí)采用的是奇校驗(yàn)還是偶校驗(yàn)碼?*應(yīng)用:廣泛應(yīng)用于I/O傳輸?shù)臄?shù)據(jù)校驗(yàn)2528奇偶校驗(yàn)碼的實(shí)現(xiàn)電路
奇校驗(yàn)偶校驗(yàn)譯碼電路+同左側(cè)虛框內(nèi)電路P(校驗(yàn)位)D7D6D5D4D3D2D1D0+++++++編碼電路8位數(shù)據(jù)位p偶校驗(yàn)出錯(cuò)指示奇校驗(yàn)出錯(cuò)指示292、海明校驗(yàn)碼*編碼原理:將數(shù)據(jù)分成k個(gè)有重疊的組,每個(gè)組對應(yīng)有一個(gè)奇偶校驗(yàn)位(共k個(gè)校驗(yàn)位)*校驗(yàn)原理:多重奇偶校驗(yàn),即某位錯(cuò)誤時(shí)導(dǎo)致多個(gè)校驗(yàn)位變化,從而實(shí)現(xiàn)檢錯(cuò)與糾錯(cuò)(定位)*校驗(yàn)?zāi)芰δ繕?biāo):能檢測并糾正1位錯(cuò)誤*校驗(yàn)方法:(能力目標(biāo)→方法推導(dǎo))設(shè)數(shù)據(jù)M=mn…m1,校驗(yàn)位P=pk…p1(即有k個(gè)奇偶檢驗(yàn)組)校驗(yàn)碼的編碼規(guī)則?k的長度?故障字S—S=sk…s1,si=pi’pi”=pi’+
pi”(mod2)檢錯(cuò)—若S=0無錯(cuò)誤,S≠0有錯(cuò)誤;糾錯(cuò)—S值表示錯(cuò)誤位置(共有n+k種),該位信息取反2630*校驗(yàn)組個(gè)數(shù)k的確定:校驗(yàn)?zāi)芰δ繕?biāo)的要求—2k≥n+k+1,其中n+k為1位錯(cuò)誤的種類n12~45~1112~2627~5758~120k(最小值)234567k的取值—*校驗(yàn)碼編碼規(guī)則:
(以4個(gè)校驗(yàn)組為例)故障字S值的約定—
(n+k+1種值)無錯(cuò)誤:0000(→校驗(yàn)碼位置序號從1開始編號)校驗(yàn)位錯(cuò):0001(p1)、0010(p2)、0100(p3)、1000(p4)數(shù)據(jù)位錯(cuò):S的其余碼值(≥2個(gè)si位為“1”)信息在校驗(yàn)碼中的排列規(guī)則—滿足S值的約定位置序號151413121110987654321信息排列m11m10m9m8m7m6m5p4m4m3m2p3m1p2p131
信息加入的校驗(yàn)組—因S=sk…s1,si=pi’
pi”,故位置hk…h(huán)1上的信息應(yīng)加入第i校驗(yàn)組(hi=1)位置及信息校驗(yàn)組151413121110987654321111111101101110010111010100110000111011001010100001100100001m11m10m9m8m7m6m5p4m4m3m2p3m1p2p1第4組√√√√√√√△第3組√√√√√√√△第2組√√√√√√√△第1組√√√√√√√△檢驗(yàn)位的編碼規(guī)則—
(以偶校驗(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)*應(yīng)用:常應(yīng)用于I/O傳輸、RAID存儲等方面的校驗(yàn)2832
解:∵23<7+3+1、24>7+4+1∴校驗(yàn)位位數(shù)=4位;例5—求字符b的ASCII碼(m7…m1=1100010)的海明偶校驗(yàn)碼。例4—若采用海明校驗(yàn)碼時(shí),數(shù)據(jù)有16位,則校驗(yàn)位最少為多少位?
解:2k≥16+k+1,k最小為5位(16<21、32>22)。根據(jù)故障字約定,校驗(yàn)碼排列m7m6m5p4m4m3m2p3m1p2p1故偶校驗(yàn)碼=m7m6m5p4m4m3m2p3m1p2p1=1
1
0
0
0
0
1
1
0
0
0根據(jù)檢驗(yàn)位編碼規(guī)則,得(偶校驗(yàn)方式)p4=m7m6m5
=0p3=
m4m3m2
=1p2=m7m6
m4m3m1=0p1=m7
m5m4
m2m1=02933例6—續(xù)例5,請分析下列接收的海明偶校驗(yàn)碼是否有錯(cuò)?錯(cuò)誤時(shí)的位置?①11000011010、②11000001000、③11001001000
解:①接收的M’=1100010、P’=0110,可求得P”=0100,S=P’+P”(mod2),即無進(jìn)位的模2加,得S=0010,∴有錯(cuò)誤,位置2錯(cuò)誤(p2位錯(cuò)),數(shù)據(jù)M=1100010
②接收的M’=1100000、P’=0100,可求得P”=0001,S=P’+P”(mod2),得S=0101,∴有錯(cuò)誤,位置5錯(cuò)誤(數(shù)據(jù)位m2錯(cuò)),數(shù)據(jù)M=1100010
③接收的M’=1101000、P’=0100,可求得P”=0110,S=P’+P”(mod2),得S=0010,∴有錯(cuò)誤,p2錯(cuò)?m4及m2位錯(cuò)(M’=1101000)!*校驗(yàn)?zāi)芰Γ耗軝z測并糾正1位錯(cuò)誤,最多只可發(fā)現(xiàn)2位錯(cuò)誤!30343、循環(huán)冗余校驗(yàn)碼—CRC(CyclicRedundancyCheck)碼*基本概念:模2乘—與手工乘法類似,乘積各位求和采用模2加法;模2除—上商規(guī)則,部分余數(shù)的首位即為位商;
求余規(guī)則,按位模2減(即模2加)1010
×10110100000
1010_10001010110110000
101
010
000
100
10101……余數(shù)(比除數(shù)少1位)編碼與多項(xiàng)式—可用多項(xiàng)式mn-1Xn-1+…+m1X+m0=M(X)來表示信息編碼mn-1…m1m0,mi=0或1時(shí)稱M(X)為二進(jìn)制多項(xiàng)式;M(X)左移k位相當(dāng)于M(X)·Xk。35*編碼原理:CRC碼由數(shù)據(jù)位M(X)及校驗(yàn)位R(X)拼接組成;而R(X)為M(X)左移k位后、模2除以k+1位生成多項(xiàng)式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…m0校驗(yàn)位rk…r1例7—已知M(X)=1100,G(X)=X3+X+1,求其CRC碼
解:G(X)=X3+X+1,即1011→校驗(yàn)位R(X)為3位M(X)·X3/G(X)=1100000/1011=1110……010
(模2除)CRC碼=1100000+010=1100
010CRC碼特點(diǎn)—模2除以G(X)時(shí)余數(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除)36*校驗(yàn)原理:--設(shè)接收的CRC碼=M’(X)·Xk+R’(X)①用接收的CRC碼模2除以G(X),求得余數(shù)R”(X);②若R”(X)=0,表示M’(X)正確;否則,R”(X)可表明出錯(cuò)位置循環(huán)碼[與M’(X)無關(guān)]M’(X)串行移位不同值表示錯(cuò)誤位置不同(不是錯(cuò)誤位置)糾錯(cuò)成本低(避免了海明校驗(yàn)碼的譯碼器電路)適用于串行設(shè)備28R”(X)具有的特性:第i位錯(cuò)誤時(shí)為R”i(X),[R”i(X)·X]/G(X)=…R”i+1(X)第i+1位錯(cuò)誤時(shí)為R”i+1(X),[R”i+1(X)·X]/G(X)=…R”i+2(X)第i+2位錯(cuò)誤時(shí)為R”i+2(X),[R”i+2(X)·X]/G(X)=…R”i+3(X)
………………最低位有錯(cuò)時(shí)校正37例8—續(xù)例7,CRC碼1位錯(cuò)誤時(shí)的余數(shù)特性如下表:A1A2A3A4A5
A6
A7出錯(cuò)位置余數(shù)R”(X)R”(X)特性m’4…m’1r’3…r’11100010無0001100011A70011100000A6010
0010/1011=…0101100110A51000100/1011=…1001101010A40111000/1011=…0111110010A31100110/1011=…1101000010A21111100/1011=…1110100010A11011110/1011=…10138例9—續(xù)例8,CRC糾正1位錯(cuò)時(shí)的原理如下表:循環(huán)次數(shù)操作A1
A2
A3
A4
A5
A6
A7余數(shù)錯(cuò)誤位置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***101A1糾錯(cuò)0010***000無39*對G(X)選擇的要求:①發(fā)生校驗(yàn)?zāi)芰Ψ秶鷥?nèi)錯(cuò)誤時(shí),使R”(X)均不為零;②發(fā)生不同位置錯(cuò)誤時(shí),使R”(X)應(yīng)該均不同;③連續(xù)作R”(X)補(bǔ)0并模2除時(shí),使新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*校驗(yàn)?zāi)芰Γ篊RC碼檢測及糾正錯(cuò)誤的能力隨n及G(X)而不同;CRC碼檢錯(cuò)能力較強(qiáng)、糾錯(cuò)能力較弱。*應(yīng)用:廣泛應(yīng)用于MEM傳送、網(wǎng)絡(luò)通信等方面。40§2.2數(shù)據(jù)的表示
計(jì)算機(jī)用編碼表示數(shù)據(jù):數(shù)據(jù)數(shù)值數(shù)據(jù)非數(shù)值數(shù)據(jù)邏輯數(shù)
字符(串)
--含漢字圖形其它
--聲音、圖像等無符號數(shù)
--自然數(shù)有符號數(shù)
--整數(shù)、純小數(shù)、實(shí)數(shù)等
計(jì)算機(jī)只支持最常用(最基本)的數(shù)據(jù)類型:數(shù)據(jù)表示—計(jì)算機(jī)硬件能夠直接識別和引用的數(shù)據(jù)類型應(yīng)用數(shù)據(jù)→數(shù)據(jù)表示的轉(zhuǎn)換:程序員或編譯程序完成程序員實(shí)際應(yīng)用需要的數(shù)據(jù)類型計(jì)算機(jī)語言支持的數(shù)據(jù)類型計(jì)算機(jī)硬件支持的數(shù)據(jù)類型編譯程序41一、數(shù)值數(shù)據(jù)的數(shù)據(jù)表示方法2、馮·諾依曼模型計(jì)算機(jī)的硬件特征①指令和數(shù)據(jù)用二進(jìn)制表示,采用二進(jìn)制運(yùn)算;②二進(jìn)制中只有0和1,無法表示符號和小數(shù)點(diǎn);
③機(jī)器字長固定,CPU內(nèi)部全部采用定長方式處理。1、數(shù)值數(shù)據(jù)的數(shù)學(xué)特征
①進(jìn)制可有多種;②符號為“+”或“-”,可以沒有符號;③小數(shù)點(diǎn)為“.”,可隱含表示,小數(shù)點(diǎn)位置可任意變化;④數(shù)碼長度可任意變化;⑤不會(huì)產(chǎn)生運(yùn)算溢出423、數(shù)值數(shù)據(jù)的表示方法*符號問題處理:
有符號數(shù)—用數(shù)字表示符號,
無符號數(shù)—符號位置為數(shù)值;*進(jìn)制問題處理:只支持二進(jìn)制方式;數(shù)據(jù)本身無法區(qū)分在指令級進(jìn)行區(qū)分無符號數(shù)、整數(shù)純小數(shù)實(shí)數(shù)隱含于最低位之后隱含于最高位之前純小數(shù)尾數(shù)+整數(shù)指數(shù)定點(diǎn)格式浮點(diǎn)格式數(shù)據(jù)本身無法區(qū)分,在指令級進(jìn)行區(qū)分*小數(shù)點(diǎn)問題處理:①點(diǎn)的表示—用隱含方式表示;②位置表示—約定不同數(shù)據(jù)類型的位置不同43*數(shù)碼長度問題處理:①不同數(shù)據(jù)類型—數(shù)碼長度固定;←便于定長方式處理②同一數(shù)據(jù)類型—可有幾種長度;←可提高處理及存儲效率*運(yùn)算問題處理:①運(yùn)算方法—按數(shù)據(jù)表示的格式及編碼進(jìn)行相應(yīng)運(yùn)算;
數(shù)值數(shù)據(jù)的處理方法:包括數(shù)據(jù)的表示和數(shù)據(jù)的操作方法表示格式(小數(shù)點(diǎn)表示)編碼方式(符號及數(shù)值表示)數(shù)碼長度(決定了數(shù)值范圍)運(yùn)算方式溢出處理數(shù)據(jù)的表示數(shù)據(jù)的操作數(shù)據(jù)處理定點(diǎn)與浮點(diǎn)表示機(jī)器數(shù)編碼②數(shù)據(jù)類型區(qū)分—由指令操作碼區(qū)分;③溢出處理—硬件檢測并發(fā)出通知,由軟件處理39系統(tǒng)結(jié)構(gòu)決定組成邏輯實(shí)現(xiàn)44二、數(shù)的定點(diǎn)表示1、定點(diǎn)表示方法指約定數(shù)據(jù)中隱含的小數(shù)點(diǎn)位置固定不變。*定點(diǎn)數(shù)的表示范圍:(設(shè)數(shù)碼長度為n位)自然數(shù)(無符號)整數(shù)(有符號)純小數(shù)Sn-1
Sn-2…S0
Sf
Sn-2…S0
Sf
S-1…S-(n-1)數(shù)值數(shù)符數(shù)值數(shù)符數(shù)值類型編碼自然數(shù)(無符號)純整數(shù)(有符號)純小數(shù)原碼0~2n-1(無符號編碼)-(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))*定點(diǎn)表示形式:有約定在數(shù)值最低位之后和最高位之前兩種2、定點(diǎn)數(shù)的表示采用定點(diǎn)表示格式的數(shù)稱為定點(diǎn)數(shù),通常有幾種數(shù)碼長度。45三、數(shù)的浮點(diǎn)表示概念:尾數(shù)--±M,階—±E,尾數(shù)的基—RM,階的基—RE1、浮點(diǎn)表示方法指約定數(shù)據(jù)中隱含的小數(shù)點(diǎn)位置是可變的。表示—尾數(shù)用定點(diǎn)純小數(shù)表示,階用定點(diǎn)整數(shù)表示*浮點(diǎn)表示形式:由尾數(shù)和階組成
格式—1SE
ESM
M階符階值數(shù)符尾數(shù)值1em或SE
EMSM
46*浮點(diǎn)數(shù)的表示范圍與精度:
假設(shè)尾數(shù)及階的基均為2,數(shù)值長度分別為m位及e位2、浮點(diǎn)數(shù)的表示采用浮點(diǎn)表示格式的數(shù)稱為浮點(diǎn)數(shù),通常有幾種數(shù)碼長度。下溢區(qū)正上溢區(qū)(+∞)負(fù)上溢區(qū)(-∞)負(fù)數(shù)區(qū)機(jī)器零絕對零N正min正數(shù)區(qū)N負(fù)maxN正maxN負(fù)min例1—若浮點(diǎn)表示格式中m=10、e=4,尾數(shù)及階均為補(bǔ)碼編碼方式,寫出(-54)10的機(jī)器碼。解:(-54)10=(-110110)2=-0.11011×2+110,浮點(diǎn)數(shù)機(jī)器碼為00110
10010100000影響因素—e決定了范圍、m決定了精度47例2—若浮點(diǎn)表示格式中尾數(shù)為8位(含1位符號位)、階為5位(含1位符號位),寫出下列實(shí)數(shù)的浮點(diǎn)數(shù)及機(jī)器碼。編碼格式實(shí)數(shù)浮點(diǎn)數(shù)浮點(diǎn)數(shù)的表示階尾數(shù)階碼尾數(shù)碼原碼原碼+10101.11+0.1010111×2+1010010101010111-0.0010111-0.10111×2-10移碼補(bǔ)碼+0.0010111+0.10111×2-10-10101.11-0.1010111×2+101例3—浮點(diǎn)表示格式同例2,寫出下列機(jī)器碼的浮點(diǎn)數(shù)。編碼格式浮點(diǎn)數(shù)的表示浮點(diǎn)數(shù)階尾數(shù)階碼尾數(shù)碼原碼原碼0110101010111+0.1010111×2+11011011011011010移碼補(bǔ)碼001010101110011101111010002010010
1101110001110
0101110010101
10101001-0.1011010×2-110+0.10111×2-1011-0.0011000×2+1101483、浮點(diǎn)數(shù)的規(guī)格化*目的:在現(xiàn)有的浮點(diǎn)數(shù)表示格式中,使表示精度最大化。例4—若浮點(diǎn)表示格式中m=3、e=3、尾數(shù)和階均為原碼編碼方式,不同表示方法的浮點(diǎn)數(shù)精度不同:+101.1=0.1011×23=0.01011×24=0.001011×25001101010100001001010001*規(guī)格化數(shù)的要求:尾數(shù)真值的最高位為1,即
≤|M|<1*規(guī)格化的操作:左規(guī)—尾數(shù)左移一位,階碼減一;
右規(guī)—尾數(shù)右移一位,階碼加一。
應(yīng)用—非規(guī)格化數(shù)→規(guī)格化數(shù),可能需多次規(guī)格化操作4449例5—若浮點(diǎn)數(shù)尾數(shù)及階的基均為2,回答下列問題:非規(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ī)格化數(shù)的機(jī)器碼最大正數(shù)最小正數(shù)最大負(fù)數(shù)最小負(fù)數(shù)階尾數(shù)階尾數(shù)階尾數(shù)階尾數(shù)階尾數(shù)原碼原碼01110111111111010000移碼補(bǔ)碼011111010000*規(guī)格化數(shù)的表示范圍及數(shù)碼特征:原碼尾數(shù)—最高數(shù)值位為1;補(bǔ)碼尾數(shù)—最高數(shù)值位與符號相反
←便于硬件實(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…………左規(guī)3次-0.10000×2-001右規(guī)4次+0.10111×2+1101111
0000111111000001111111110000
1111101111
10000044504、IEEE754標(biāo)準(zhǔn)*表示格式及數(shù)碼長度:有單精度、雙精度兩種格式及長度*編碼方式:
①數(shù)制—M和E均采用二進(jìn)制方式(即RM=RE=2);2381單精度浮點(diǎn)表示格式數(shù)符S階E尾數(shù)M3252111雙精度浮點(diǎn)表示格式數(shù)符S階E尾數(shù)M64②碼制—M為原碼編碼的定點(diǎn)純小數(shù)(改進(jìn)了定點(diǎn)位置),
E為移碼編碼的定點(diǎn)整數(shù)(改進(jìn)了移碼值)51*階的碼制:采用的是余127碼和余1023碼余X碼—偏移值為X的移碼稱為余X碼,標(biāo)準(zhǔn)移碼:真值=E-28-1=E-128,余127碼:真值=E-(28-1-1)=E-127;*尾數(shù)的碼制:
(以單精度格式為例)支持非規(guī)格化尾數(shù)和規(guī)格化尾數(shù)兩種方式;規(guī)格化尾數(shù)—規(guī)格化的尾數(shù)真值=±1.m-2…m-24,機(jī)器碼M=m-2…m-24,尾數(shù)精度=24位階的范圍—1≤E≤254,而0和255另作他用,即-126≤階的真值≤127非規(guī)格化尾數(shù)—尾數(shù)真值=±0.m-1…m-23,機(jī)器碼M=m-1…m-23,尾數(shù)精度=23位;52*IEEE754標(biāo)準(zhǔn)浮點(diǎn)表示的特征:(以單精度格式為例)參數(shù)值真值N說明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×∞±無窮大(上溢區(qū))說明:①明確地表示了機(jī)器零及無窮大;②非規(guī)格化數(shù)減少了下溢區(qū)間大小(精度損失);③非數(shù)值用于表示異常(如0/0、負(fù)數(shù)開根等)正非規(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ū)53例6—求IEEE
754單精度碼為(CC968000)16的浮點(diǎn)數(shù)的真值N例5—求(-11/128)10的IEEE754單精度規(guī)格化數(shù)的機(jī)器碼解—(-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為負(fù)數(shù),浮點(diǎn)數(shù)為規(guī)格化數(shù)(∵1<10011001<254);數(shù)符階尾數(shù)10111
10110110
0000
0000
0000
0000
000
機(jī)器碼為:階=(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ù)的表示小結(jié):表示格式有定點(diǎn)和浮點(diǎn)兩種,編碼方式?jīng)Q定運(yùn)算器的運(yùn)算方法,數(shù)碼長度總是固定的484154四、非數(shù)值數(shù)據(jù)的數(shù)據(jù)表示
提高M(jìn)EM的存儲效率:指令中地址效率—1個(gè)MEM地址應(yīng)對應(yīng)多個(gè)數(shù)據(jù)位;
MEM字長的特征:
MEM字長—均為2n位(n為常數(shù));←便于數(shù)據(jù)長度的二進(jìn)制運(yùn)算MEM字長種類—有二進(jìn)制位、機(jī)器字長、折中長度3類數(shù)據(jù)的存儲效率—短數(shù)據(jù)占1個(gè)字長,長數(shù)據(jù)占多個(gè)字長0000H0001H…地址數(shù)據(jù)(1位)01…0000H0001H…0000100010001111…地址數(shù)據(jù)(8位)0000H0001H…00001000111100000000000010001111…地址數(shù)據(jù)(設(shè)字長為16位)通常不采用按位編址通常采用按折中長度(如字節(jié))編址551、字符數(shù)據(jù)的表示指字符的交換碼在存儲/處理時(shí)的表示方式,即字符的內(nèi)碼。*數(shù)據(jù)的表示方法:表示格式—
數(shù)碼長度—為MEM字長的倍數(shù),即n=kW;m
Cm-1
Cm-2…C1
C0
Kx-1…
K0x擴(kuò)展位字符交換碼n例1—常見字符交換碼的表示:字符字符數(shù)據(jù)的表示種類編碼長度MEM按字節(jié)編址MEM按字(設(shè)=16)編址數(shù)碼長度占地址數(shù)數(shù)碼長度占地址數(shù)ASCII碼78位=7+11個(gè)16位=7+91個(gè)Unicode碼1616位=16+02個(gè)16位=16+01個(gè)GB2312-80碼1416位=14+22個(gè)16位=14+21個(gè)編碼方式—無符號的二進(jìn)制編碼56*擴(kuò)展位編碼:OS只支持一種字符集時(shí)—擴(kuò)展位僅用于填滿數(shù)據(jù)位;OS同時(shí)支持多種字符集時(shí)—擴(kuò)展位常用于區(qū)分不同字符集如:MEM按字節(jié)編址時(shí),ASCII碼最高位編碼為0;GB2312-80碼各字節(jié)最高位編碼位1*數(shù)據(jù)的運(yùn)算及處理方法:
基本運(yùn)算—關(guān)系運(yùn)算(比較是否相同、判斷前后次序);
字符串?dāng)?shù)據(jù)的表示:硬件—通常只支持字符數(shù)據(jù)的表示與運(yùn)算;軟件—將字符串轉(zhuǎn)換為字符進(jìn)行存儲及處理。處理方法—可用減法運(yùn)算+邏輯運(yùn)算代替關(guān)系運(yùn)算。結(jié)果為零?結(jié)果為負(fù)?需設(shè)置為硬件狀態(tài)位用特殊字符作為字符串的結(jié)束符572、邏輯數(shù)據(jù)的表示*數(shù)學(xué)特征:值域—真、假;
運(yùn)算—與(AND)、或(OR)、非(NOT)等*運(yùn)算處理方法:可采用所有位同時(shí)按位進(jìn)行與/或/非運(yùn)算
可獲得最大性能←┘└→一位操作時(shí),軟件負(fù)責(zé)準(zhǔn)備數(shù)據(jù)*數(shù)據(jù)的表示方法:
數(shù)碼長度—1位→n位(n為MEM字長倍數(shù));←以提高存儲效率表示格式—n個(gè)邏輯數(shù)據(jù)捆綁表示,每個(gè)邏輯數(shù)據(jù)占1位;bn-1b0
Ln-1
Ln-2…L1
L0例2—8位邏輯數(shù)A和B如何實(shí)現(xiàn)第0位的OR操作(結(jié)果在A中)?編碼方式—各位獨(dú)立編碼,1/0可表示真/假解:步驟為①
C=BAND01H;②
A=AORC5358附:數(shù)據(jù)的表示小結(jié)
數(shù)據(jù)的表示方法:
有表示格式、編碼方式、數(shù)碼長度3個(gè)方面,而數(shù)碼長度只與數(shù)據(jù)的實(shí)例有關(guān)、與數(shù)據(jù)的類型無關(guān)
數(shù)據(jù)的表示方法實(shí)例:表示方法數(shù)據(jù)類型表示格式編碼方式運(yùn)算方法數(shù)碼長度數(shù)值數(shù)據(jù)自然數(shù)定點(diǎn)表示(無符號)無符號編碼算術(shù)定長(可有幾種)整數(shù)定點(diǎn)表示(有符號)某種機(jī)器碼定長(可有幾種)實(shí)數(shù)浮點(diǎn)表示尾數(shù)及階獨(dú)立編碼,兩種機(jī)器碼浮點(diǎn)定長(可有幾種)非數(shù)值數(shù)據(jù)字符定點(diǎn)表示(無符號)無符號編碼關(guān)系定長(字符集定)邏輯數(shù)邏輯表示(捆綁)獨(dú)立編碼,二進(jìn)制碼串邏輯定長(可有幾種)59
MEM字長的確定思路:(系統(tǒng)結(jié)構(gòu)研究的內(nèi)容)
MEM字長=min{使用頻率很高的各種數(shù)據(jù)的數(shù)碼長度}通常,MEM字長=字節(jié)(1B=8bit,ASCII碼字符的使用頻率很高)
機(jī)器字長的確定思路:(系統(tǒng)結(jié)構(gòu)研究的內(nèi)容)
機(jī)器字長=max{使用頻率很高的各種定點(diǎn)數(shù)的數(shù)碼長度}
數(shù)據(jù)的表示實(shí)現(xiàn):⑴編譯程序?qū)⒄Z言數(shù)據(jù)類型轉(zhuǎn)換成機(jī)器數(shù)據(jù)的表示形式;⑵指令操作碼
指明機(jī)器數(shù)據(jù)的表示類型;⑶運(yùn)算器必須具有相應(yīng)功能處理不同類型的機(jī)器數(shù)據(jù)!60§2.3定點(diǎn)數(shù)運(yùn)算方法一、移位運(yùn)算1、移位及移位運(yùn)算*移位:數(shù)值相對于某個(gè)位置的移動(dòng)例—20.0m=2000.0cm,稱20相對于小數(shù)點(diǎn)左移了2位*移位操作:有左移、右移2種類型;二進(jìn)制數(shù)左移或右移n位相當(dāng)于乘以或除以2n*移位運(yùn)算:對計(jì)算機(jī)中機(jī)器數(shù)的移位操作運(yùn)算種類—對有符號數(shù),有算術(shù)左移、算術(shù)右移;對無符號數(shù),有邏輯左移、邏輯右移①符號數(shù)字化②新編碼方法運(yùn)算參數(shù)—操作數(shù)、移動(dòng)位數(shù)612、邏輯移位運(yùn)算*操作數(shù)類型:無符號機(jī)器數(shù)例1—某REG內(nèi)容為00111001,邏輯移位運(yùn)算結(jié)果如下:*運(yùn)算規(guī)則:
機(jī)器數(shù)整體移位,移出的數(shù)丟棄,出現(xiàn)的空位補(bǔ)0邏輯左移2位丟棄部分邏輯右移2位丟棄部分0011100100111001000000*運(yùn)算實(shí)現(xiàn)方法:通常用移位寄存器實(shí)現(xiàn)練習(xí)—若(REG)=11001001,邏輯左移1位再右移1位的結(jié)果?0邏輯左移運(yùn)算移位寄存器0邏輯右移運(yùn)算移位寄存器*溢出判斷方法:左移、移丟數(shù)碼為1時(shí)運(yùn)算溢出623、算術(shù)移位運(yùn)算*操作數(shù)類型:有符號機(jī)器數(shù)(原碼、補(bǔ)碼、反碼等)例3真值原碼補(bǔ)碼反碼真值原碼補(bǔ)碼反碼+2000100001000010-2100101111011101算術(shù)左移1位+4-4算術(shù)右移1位+1-1*運(yùn)算規(guī)則:符號位不變,數(shù)值部分整體移位,空位添補(bǔ)規(guī)則如下表(根據(jù)編碼方式的數(shù)學(xué)特征添補(bǔ))碼制真值算術(shù)移位運(yùn)算規(guī)則符號位數(shù)值左移空位添補(bǔ)規(guī)則數(shù)值右移空位添補(bǔ)規(guī)則原碼正/負(fù)數(shù)保持不變空位補(bǔ)0補(bǔ)碼正/負(fù)數(shù)末位數(shù)值位補(bǔ)0首位數(shù)值位補(bǔ)符號位反碼正數(shù)末位數(shù)值位補(bǔ)0首位數(shù)值位補(bǔ)符號位負(fù)數(shù)末位數(shù)值位補(bǔ)1補(bǔ)碼特性—[2X]補(bǔ)=2[X]補(bǔ)及[X]補(bǔ)=XS*2n-1+[X]補(bǔ)
00100
00100
0010000001000010000110100100011110011111110111111063*運(yùn)算實(shí)現(xiàn)方法:通常用移位寄存器實(shí)現(xiàn)(b)補(bǔ)碼(a)原碼(c)正數(shù)反碼(d)負(fù)數(shù)反碼00001例4原/補(bǔ)/反碼原碼補(bǔ)碼反碼00100001(+33)10100001(-33)11011111(-33)11011110(-33)①左移1位再左移1位②右移1位再右移4位再右移1位*溢出判斷方法:左移移丟數(shù)值1時(shí)溢出右移移丟數(shù)值1僅影響精度
原碼左移、移丟數(shù)碼為1時(shí)溢出;
補(bǔ)碼/反碼左移、移丟與符號相反的數(shù)碼時(shí)溢出01000010(+66)00000100(+4)00010000(+16)00000001(+1)00000000(+0)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藝術(shù)展覽設(shè)計(jì)師的空間布局與藝術(shù)呈現(xiàn)
- 年產(chǎn)100萬套轉(zhuǎn)椅配件及15萬套成品生產(chǎn)線項(xiàng)目可行性研究報(bào)告模板-立項(xiàng)拿地
- 2025年全球及中國自鎖平頭螺母行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球自由式風(fēng)帆板行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球鈣鈦礦太陽光模擬器行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球生命科學(xué)服務(wù)行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球無人機(jī)測繪系統(tǒng)行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國碳捕獲與利用技術(shù)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球汽車空調(diào)電機(jī)行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國家用前置過濾器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 二零二五版電力設(shè)施維修保養(yǎng)合同協(xié)議3篇
- 最經(jīng)典凈水廠施工組織設(shè)計(jì)
- VDA6.3過程審核報(bào)告
- 2024-2030年中國并購基金行業(yè)發(fā)展前景預(yù)測及投資策略研究報(bào)告
- 2024年湖南商務(wù)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫帶答案
- 骨科手術(shù)中常被忽略的操作課件
- 《湖南師范大學(xué)》課件
- 2024年全國各地中考試題分類匯編:作文題目
- 2024年高壓電工操作證考試復(fù)習(xí)題庫及答案(共三套)
- 《糖拌西紅柿 》 教案()
- 彈性力學(xué)數(shù)值方法:解析法:彈性力學(xué)中的變分原理
評論
0/150
提交評論