計(jì)算機(jī)組成原理(第6版)課件 第2章 數(shù)據(jù)表示、運(yùn)算與校驗(yàn)_第1頁(yè)
計(jì)算機(jī)組成原理(第6版)課件 第2章 數(shù)據(jù)表示、運(yùn)算與校驗(yàn)_第2頁(yè)
計(jì)算機(jī)組成原理(第6版)課件 第2章 數(shù)據(jù)表示、運(yùn)算與校驗(yàn)_第3頁(yè)
計(jì)算機(jī)組成原理(第6版)課件 第2章 數(shù)據(jù)表示、運(yùn)算與校驗(yàn)_第4頁(yè)
計(jì)算機(jī)組成原理(第6版)課件 第2章 數(shù)據(jù)表示、運(yùn)算與校驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩110頁(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ù)表示、運(yùn)算與校驗(yàn)主要介紹:①數(shù)字型數(shù)據(jù)的計(jì)數(shù)制、符號(hào)數(shù)的表示、定點(diǎn)數(shù)和浮點(diǎn)數(shù);②基本的運(yùn)算方法;③字符的表示;④常用的數(shù)據(jù)校驗(yàn)方法;1/322.1.1進(jìn)位計(jì)數(shù)制※數(shù)制的基與權(quán)在任一數(shù)制中,每一個(gè)數(shù)位上允許使用的記數(shù)符號(hào)的個(gè)數(shù)被稱(chēng)為該數(shù)制的基數(shù)。每1位都對(duì)應(yīng)1個(gè)表示該位在數(shù)碼中的位置的值,這個(gè)值就稱(chēng)為數(shù)位的權(quán)值w。[例]

12810,110122.1數(shù)值型數(shù)據(jù)的表示方法

W=102W=232/32(1)2進(jìn)制:0、1(2)8進(jìn)制:0、1、2、…、7(3)16進(jìn)制:0、…、9、A、B、C、D、E、F1.常用的幾種進(jìn)位制2.進(jìn)制之間的轉(zhuǎn)換(1)整數(shù)

10

2(除2取余法)(2)小數(shù)10

2(乘2取整法)(3)整數(shù)

2

10(按權(quán)相加)(4)小數(shù)2

10(按權(quán)相加)(5)16進(jìn)制?2進(jìn)制(逐位轉(zhuǎn)換/分組轉(zhuǎn)換)3/3229(1)2910→X22141270231211201高位低位(2)0.687510→X2除2取余乘2取整0.6875×2=1.37510.375×2=0.7500.75×2=1.510.5×2=1.01低位高位X2=111012X2=0.10112(3)1101.112→X10X10=1×23=13.7510按權(quán)相加+1×22+0×21+1×20+1×2-1+1×2-24/32(4)1111012→X16X16=111101=00111101(5)28AF16→X2X2=28AF(6)28AF16→X10X10=28AF==1041510=0010=0011

1101=3D161000101011112×163+8×162+10×161+15×160按權(quán)相加逐位轉(zhuǎn)換4位分組、按組轉(zhuǎn)換5/322.1.2帶符號(hào)數(shù)的表示數(shù)的符號(hào)表示規(guī)則:“0”表示正號(hào)“+”,“1”表示負(fù)號(hào)“-”01001010+1001010-100101011001010一個(gè)二進(jìn)制數(shù),用0-1代碼表示符號(hào),數(shù)值位不變就得到與該二進(jìn)制數(shù)真值對(duì)應(yīng)的原碼真值原碼1、原碼二進(jìn)制數(shù)的碼制:原碼、反碼、補(bǔ)碼和移碼6/32字長(zhǎng)為8位的原碼表示范圍為:-127~+127

[+127]原

=01111111

[–127]原

=11111111數(shù)值“0”有兩種原碼形式:

[+0]原=00000000

[-0]原=100000007/322、反碼②負(fù)數(shù)情況符號(hào)位保持為“1”,數(shù)值位分別“按位取反”①

正數(shù)情況X反=X原(X≥0)[例]

X=

-1101001

(真值-105)X原=1

1101001X反=1

0010110[例]

X=

+1101001(真值+105)

X反=X原=0

11010018/32字長(zhǎng)8位的反碼表示范圍為:-127~+127

[+127]反=01111111

[-127]反=10000000數(shù)值“0”也有兩反碼形式:[+0]反=00000000[-0]反=1111111119/32※補(bǔ)碼的編碼規(guī)則:3、補(bǔ)碼(a)對(duì)于正數(shù)(字長(zhǎng)8位)

[X]補(bǔ)=[X]原

(即X≥0時(shí))(b)對(duì)于負(fù)數(shù)(字長(zhǎng)8位)符號(hào)位仍保持為“1”其余各數(shù)值位“按位取反,末位再加1”

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

(即X<0時(shí))10/32編碼定義:[X]補(bǔ)=X+2n(模2n),n為編碼位數(shù)字長(zhǎng)8位的補(bǔ)碼表示范圍為:-128~+127

[+127]補(bǔ)=01111111;

[-128]補(bǔ)=1

0000000※注意補(bǔ)碼比原碼和反碼多表示1個(gè)負(fù)值,即-128數(shù)值“0”只有1種補(bǔ)碼形式:

[+0]補(bǔ)=[-0]補(bǔ)=

0000000011/324、原碼和補(bǔ)碼之間的轉(zhuǎn)換(1)已知[X]原,求[X]補(bǔ)[例]已知[X]原=10011010,求[X]補(bǔ)

解:[X]原=

10011010

↓↓↓↓↓↓↓↓11100101+

1[X]補(bǔ)=11100110符號(hào)位不變,其余各位變反原碼為負(fù)數(shù)末位加112/32+1

(2)已知[X]補(bǔ),求[X]原

[[X]補(bǔ)]補(bǔ)=[X]原[例]已知[X]補(bǔ)=11101100,求[X]原解:[X]補(bǔ)=

11101100

↓↓↓↓↓↓↓↓

10010011[X]原=10010100符號(hào)位不變,其余各位變反補(bǔ)碼為負(fù)數(shù)末位加113/32+1(3)求補(bǔ)(變補(bǔ)),即已知[X]補(bǔ),求[-X]補(bǔ)[X]補(bǔ)的代碼連同符號(hào)位一起變反,末位再加1,即得到[-X]補(bǔ)[例]已知[X]補(bǔ)=01010110,求[-X]補(bǔ)解:[X]補(bǔ)=01010110

↓↓↓↓↓↓↓↓10101001

[-X]補(bǔ)=10101010不區(qū)分正負(fù)數(shù)連同符號(hào)位一起變反末位加114/325、移(增)碼上述規(guī)則等價(jià)于將x正向平移或者增加2n-1

,因此稱(chēng)之為移碼或增碼。移碼通常用于表示浮點(diǎn)數(shù)的階碼。階碼一般為整數(shù),故移碼通常只用于表示整數(shù)對(duì)定點(diǎn)整數(shù)x,它的移碼是:

[x]移=2n-1+x,其中-2n-1≤x<2n-1這里的n為X原位數(shù)15/32[例]階碼的為6位,X表示其真值

X移=25+X(-25<X<25)[例]當(dāng)正數(shù)X=+10101時(shí),

X移=25+X=110101

當(dāng)負(fù)數(shù)X=-10101時(shí),

X移=25+X=25-10101

=001011移碼表示范圍與補(bǔ)碼一致,0也只有1個(gè)移碼。正數(shù):將原碼符號(hào)位變反,即得到移碼。負(fù)數(shù):將原碼連同符號(hào)位一起變反,末位再加1,即得到移碼(與變補(bǔ)等效)。補(bǔ)碼和移碼:

符號(hào)相反、數(shù)值位相同16/32二進(jìn)制代碼無(wú)符號(hào)真值原碼真值反碼真值補(bǔ)碼真值移碼真值0000000000000001┆0111111001111111100000001000000110000010┆11111101111111101111111101┆126127128129130┆253254255+0+1┆+126+127-0-1-2┆-125-126-127+0+1┆+126+127-127-126-125┆-2-1-0+0+1┆+126+127-128-127-126┆-3-2-1-128-127┆-2-1012┆12512612717/321、定點(diǎn)數(shù)的表示2.1.3定點(diǎn)數(shù)與浮點(diǎn)數(shù).01011101數(shù)值部分符號(hào)位小數(shù)點(diǎn)數(shù)的小數(shù)點(diǎn)固定在同一位置不變。①帶符號(hào)的定點(diǎn)小數(shù)約定所有數(shù)的小數(shù)點(diǎn)的位置,固定在符號(hào)位之后。字長(zhǎng)n+1位,則表示范圍為:-(1-2-n)

~1-2-n18/32②帶符號(hào)的定點(diǎn)整數(shù)

0101110

.1數(shù)值部分符號(hào)位小數(shù)點(diǎn)小數(shù)點(diǎn)的位置固定在最低數(shù)值位之后字長(zhǎng)n+1位,則數(shù)的表示范圍為:-(2n-1)~2n-119/32③無(wú)符號(hào)定點(diǎn)整數(shù)若代碼序列為XnXn-1…X1X0,共n+1位,則有:典型值真值代碼序列最大正數(shù)2n+1-111…1111最小非零正數(shù)100….001表示范圍為:小數(shù)點(diǎn)的位置固定在最低數(shù)值位之后

0~(2n+1-1)分辨率為:

120/3210000000補(bǔ)~01111111補(bǔ)無(wú)符號(hào)數(shù):定點(diǎn)整數(shù):定點(diǎn)小數(shù):00000000~11111111025511111111原~01111111原-127127-1281271.1111111原~0.1111111原-(1-2-7)(1-2-7)1.0000000補(bǔ)~0.1111111補(bǔ)-1(1-2-7)※字長(zhǎng)8位的定點(diǎn)數(shù)的表示范圍21/322、浮點(diǎn)數(shù)的表示原理①浮點(diǎn)表示中,小數(shù)點(diǎn)的位置可按需浮動(dòng)格式模型:階符階碼位

.?dāng)?shù)符.尾數(shù)位階碼(帶符號(hào)的定點(diǎn)整數(shù))尾數(shù)(帶符號(hào)的定點(diǎn)小數(shù))隱含小數(shù)點(diǎn)隱含小數(shù)點(diǎn)22/32②引入浮點(diǎn)數(shù)表示的意義[例]某字長(zhǎng)為8位的原碼二進(jìn)制數(shù)定點(diǎn)數(shù):11111111~01111111-127

127-(1-2-7)

1-2-7精度:1精度:2-7浮點(diǎn)數(shù):5位階碼+3位尾數(shù)215×(-0.75)

~

215×0.75精度:11111001=2-15×0.2501111111~01111011整數(shù):小數(shù):相同字長(zhǎng)時(shí),浮點(diǎn)數(shù)的表示范圍更大、精度更高!23/32浮點(diǎn)數(shù)真值:N=±RE×M

階碼E尾數(shù)M階符數(shù)符R:階碼的底數(shù),隱含約定為2。E:階碼,定點(diǎn)整數(shù),補(bǔ)碼或移碼表示,其位數(shù)決定了數(shù)值的范圍;M:尾數(shù),為定點(diǎn)小數(shù),原碼或補(bǔ)碼表示,其位數(shù)決定著數(shù)的精度;數(shù)符表示數(shù)的正負(fù)。③浮點(diǎn)數(shù)的機(jī)器(存儲(chǔ))格式EfE1…EmMfM1…Mn24/32④尾數(shù)M的規(guī)格化表示規(guī)格化的目的→使浮點(diǎn)數(shù)的表示代碼“唯一”128=0.128×103=1.28×102=12.8×101,…科學(xué)計(jì)數(shù)法約定:1≤|M|<10則規(guī)范形式:128=1.28×102(唯一)3.2=1.6×21=0.8×22=0.4×23,…可以表示成任意多個(gè)代碼形式約定尾數(shù)M的值域,使數(shù)的表示是唯一的、確定的→計(jì)算不便→尾數(shù)M的“規(guī)格”化25/32正數(shù),規(guī)格化后最高數(shù)值位為“1”負(fù)數(shù),規(guī)格化后最高數(shù)值位為“0”規(guī)格化以后尾數(shù)的最高有效位為“1”對(duì)于補(bǔ)碼:對(duì)于原碼:①浮點(diǎn)數(shù)用原碼表示時(shí)0-11-1/21/2-1≤M﹤-1/2

或1/2≤M﹤1②浮點(diǎn)數(shù)用補(bǔ)碼表示時(shí)1/2≤|M|﹤1M原=0.1000,1.1010M原=0.0010,1.0110如0.1010,0.1110非規(guī)格化如1.0010,1.0000-0.875-10.6250.87526/32最小浮點(diǎn)數(shù)最大浮點(diǎn)數(shù)為最大正數(shù):[例1]階符1位、階碼m位,數(shù)符1位、尾數(shù)n位,如果表示成規(guī)格化補(bǔ)碼,分析各真值對(duì)應(yīng)的M、E取值情況。最小浮點(diǎn)正數(shù)為最大正數(shù):2

-1m為最小負(fù)數(shù):-1為最大正數(shù):2

-1m1-2-n為最小負(fù)數(shù):-2

m為最小正數(shù):2-1最大浮點(diǎn)負(fù)數(shù)為最小負(fù)數(shù):-2

m為最大負(fù)數(shù):-(1/2+2-n)N=M×2E-1≤M<-1/2或1/2≤M<1=F(M,E)-2m≤E≤2m-1E→M→

E→M→

E→M→

E→M→

27/32[思考]某十六進(jìn)制浮點(diǎn)數(shù)A368000016,將其表示成補(bǔ)碼,字長(zhǎng)32位,階碼8位(含1位階符),尾數(shù)24位(含1位數(shù)符),求該浮點(diǎn)數(shù)十進(jìn)制的真值。表示范圍:231

×(-1)[例2]某個(gè)用規(guī)格化補(bǔ)碼表示的浮點(diǎn)數(shù),其中階碼6位(含1位階符),尾數(shù)10位(含1位數(shù)符)。絕對(duì)精度=2-32×0.5=2-33相對(duì)精度=2-9(即最小的非0正數(shù)):(只與尾數(shù)的數(shù)值位數(shù)有關(guān)):011111

100…00~011111

011…11231×

(1-2-9)100000

010…00xxxxxx

000…0128/323、※IEEE754格式的浮點(diǎn)數(shù)在上述的表示格式中:S=浮點(diǎn)數(shù)的符號(hào)位,0表示正數(shù),1表示負(fù)數(shù);E=階碼,8位,采用移碼表示,階符隱含;M=尾數(shù),23位,純小數(shù)表示,且真值=1+M;階碼E采用移碼形式,但只偏移27-1

(不是27)。

有32位浮點(diǎn)數(shù)(單精度)和64位浮點(diǎn)數(shù)(雙精度)①32位短浮點(diǎn)數(shù):SEM3130

~

2322

~

029/32在上述表示格式中:S=浮點(diǎn)數(shù)的符號(hào)位,0表示正數(shù),1表示負(fù)數(shù);E=階碼,11位,采用移碼方式,階符隱含;M=尾數(shù),52位,用純小數(shù)表示;對(duì)階碼E編碼時(shí),只偏移210-1

(標(biāo)準(zhǔn)移碼偏移210)。②64位長(zhǎng)浮點(diǎn)數(shù):SEM6362

~

5251

~

030/32※補(bǔ)充說(shuō)明:

31/32(1)為了確保浮點(diǎn)數(shù)表示的唯一性,約定0≤M<1;(2)E為全0且M非全0:非規(guī)范浮點(diǎn)數(shù)(E偏移126),則:F真=(-1)S×M×2E-126(5)E為全1(255):M為全0,則F真=±∞(6)E為全1(255):M非全0時(shí),代碼無(wú)效(NaN);(4)1≤E≤254:數(shù)是規(guī)范浮點(diǎn)數(shù)(E偏移127),則:F真=(-1)S×(1+M)×2E-127(3)E為全0且M為全0:表示浮點(diǎn)數(shù)0[解答]首先分別將整數(shù)和小數(shù)部分轉(zhuǎn)換成二進(jìn)制:20.59375=10100.10011然后移動(dòng)小數(shù)點(diǎn),使其在第1、2位之間10100.10011=1.010010011×24

小數(shù)點(diǎn)被左移了4位,于是得到:e=4尾符S=0,階碼E=4+127=131,尾數(shù)M=010010011最后得到32位浮點(diǎn)數(shù)的二進(jìn)制代碼:01000001101001001100000000000000

=(41A4C000)16[例]

將十進(jìn)制數(shù)20.59375轉(zhuǎn)換成IEEE754的32位標(biāo)準(zhǔn)浮點(diǎn)數(shù)的2進(jìn)制格式,并寫(xiě)出相應(yīng)的16進(jìn)制數(shù)。32/322.2字符表示方法2.2.1ASCII碼ASCII(AmericanStandardCodeforInformationInterchange)。字符總數(shù):128包含數(shù)字0~9,大小寫(xiě)英文字母,運(yùn)算符,標(biāo)點(diǎn)符號(hào),標(biāo)示符,格式控制符等等。代碼寬度:7b存儲(chǔ)寬度:7b(有效位)+1b(奇偶校驗(yàn)位)=8b33/7ASCII碼示例16進(jìn)制30313233343536373839數(shù)字0123456789①數(shù)字型②字符型16進(jìn)制4142434445464748494A字符ABCDEFGHIJ③其它型16進(jìn)制2528292A3C3D3E3F407F字符%()*<=>?@DEL34/72.2.2漢字編碼1.漢字的輸入碼35/7①數(shù)字輸入碼包括:數(shù)字碼、拼音碼、字形碼√常用的是國(guó)標(biāo)區(qū)位碼,用數(shù)字串代表漢字;√將6763個(gè)二級(jí)漢字分為94個(gè)區(qū),每區(qū)94位,把漢字表示成二維數(shù)組,數(shù)組下標(biāo)就是區(qū)位碼?!鶖?shù)字編碼輸入的優(yōu)缺點(diǎn):無(wú)重碼,輸入碼與內(nèi)部碼的轉(zhuǎn)換方便,代碼難以記憶。[例]平?3829(位于碼表38區(qū)、29位)以漢字拼音為基礎(chǔ)的輸入方法(如微軟拼音)根據(jù)漢字的書(shū)寫(xiě)形狀來(lái)進(jìn)行編碼(如五筆字型)。②拼音輸入碼√簡(jiǎn)單方便;√同音字多,重碼率高,影響輸入速度?!匆糨斎氪a的優(yōu)缺點(diǎn):③字形輸入碼√把漢字的筆劃部件用字母或數(shù)字進(jìn)行編碼,按筆劃順序依次輸入,就能對(duì)應(yīng)一個(gè)漢字。√簡(jiǎn)單方便,符合書(shū)寫(xiě)習(xí)慣;√重碼率高,需要記住字形結(jié)構(gòu)?!中屋斎氪a的優(yōu)缺點(diǎn):36/72.漢字的內(nèi)碼國(guó)標(biāo)碼:10進(jìn)制區(qū)位碼轉(zhuǎn)成16進(jìn)制,再加2020H用于漢字信息的存儲(chǔ)、交換、檢索等操作的計(jì)算機(jī)內(nèi)代碼,一般用兩個(gè)字節(jié)表示。機(jī)內(nèi)碼:國(guó)標(biāo)碼+8080H(與ASCII區(qū)別),或者區(qū)位碼轉(zhuǎn)成16進(jìn)制+A0A0H√機(jī)內(nèi)碼的基礎(chǔ)是國(guó)標(biāo)碼[例]“啊”的區(qū)位碼160110=1001H國(guó)標(biāo)碼=1001H+2020H=3021H機(jī)內(nèi)碼=1001H+A0A0H=B0A1H37/73.漢字字模碼字模碼用點(diǎn)陣表示的漢字字形代碼,是漢字的輸出形式。38/7例如:字模碼漢字的字模碼為:16×16位=32字節(jié)※特別說(shuō)明:39/7①字模點(diǎn)陣用來(lái)構(gòu)成漢字庫(kù),并非而機(jī)內(nèi)存儲(chǔ)。②字庫(kù)中存儲(chǔ)每個(gè)漢字的點(diǎn)陣代碼,用于漢字的顯示輸出或打印輸出。③當(dāng)顯示輸出或打印輸出時(shí)才檢索字庫(kù),輸出字模點(diǎn)陣,得到字形?!虧h字的輸入碼、內(nèi)碼、字模碼分別是用于計(jì)算機(jī)輸入、內(nèi)部處理、輸出三種不同用途的編碼;√各有用途,不能混為一談。2.3數(shù)據(jù)處理與存儲(chǔ)40/1110011111、移位操作(1)邏輯移位

:數(shù)碼位置變化。(2)算術(shù)移位

10001111循環(huán)左移::符號(hào)位不變、數(shù)碼位置變化算術(shù)左移:1

10

(-15)(-30)000111101111數(shù)值發(fā)生2n倍變化,n為移動(dòng)的位數(shù)空位補(bǔ)041/11(1)單符號(hào)位:0011101110

(2)雙符號(hào)位:001110

000111①正數(shù)補(bǔ)碼\原碼移位規(guī)則※移位規(guī)則左移右移右移0

01110

0011左移左移右移右移011100

001110000111數(shù)符不變(單:符號(hào)位不變;雙:第1符號(hào)位不變)空位補(bǔ)0(右移時(shí)第2符號(hào)位移至尾數(shù)最高位)42/11(2)單符號(hào)位:1101110110

(3)雙符號(hào)位:101100

110110②負(fù)數(shù)補(bǔ)碼移位(1)移位規(guī)則左移右移右移1

10111

1101左移右移右移110110111011數(shù)符不變(單:符號(hào)位不變;雙:第1符號(hào)位不變)左移空位補(bǔ)0(第二符號(hào)位移至尾數(shù)最高位)。右移空位補(bǔ)143/11※易出錯(cuò)處:00

1110左右011100正確:11

0110101100001100011100

000110正確:00

1110111100左正確:101100

111110右11

0110正確:44/112、舍入方法①0舍1入(原碼、補(bǔ)碼)000100原

100101原

111011補(bǔ)

②末位恒置1(原碼、補(bǔ)碼)000100原

111011補(bǔ)

100101原

00010原

10011原

11110補(bǔ)

00011原

10011原

11101補(bǔ)

[例]保留4位尾數(shù):[例]保留4位尾數(shù):45/110000000A000AFFFF800A800A0000002A002A0000F12CF12C直接把符號(hào)位(0/1)填充到擴(kuò)展位高位均全補(bǔ)03、數(shù)位擴(kuò)展與壓縮(1)符號(hào)擴(kuò)展(2)0-擴(kuò)展(3)位數(shù)壓縮棄高位、留低位F12B800A02A0F12C800AF12C(針對(duì)無(wú)符號(hào)數(shù))46/114、數(shù)據(jù)存儲(chǔ)(按字節(jié)編址)(1)小端模式/Little-Endian小地址單元存儲(chǔ)數(shù)據(jù)的低位(即尾端)#103#102#101#100FFFF0001FFFF0001(2)大端模式/Big-Endian大地址單元存儲(chǔ)數(shù)據(jù)的低位(即尾端)#103#102#101#100FFFF00010100FFFF47/115、數(shù)據(jù)字的對(duì)齊(Alignment)48/11要求數(shù)據(jù)的地址是相應(yīng)的邊界地址

※按邊界對(duì)齊(假定存儲(chǔ)字寬度為32位,按字節(jié)編址,字長(zhǎng)32位)

字地址:4的倍數(shù)(低兩位為0)

半字地址:2的倍數(shù)(低位為0)

字節(jié)地址:任意※不按邊界對(duì)齊

例如inti,shortk,doublex,charc則&i=0;&k=4;&x=8;&c=16則&i=0;&k=4;&x=6;&c=14;ikxc按字邊界對(duì)齊不按邊界對(duì)齊0004081216字節(jié)0字節(jié)1

字節(jié)2

字節(jié)3ikxc試分析訪存次數(shù)的變化情況字節(jié)0字節(jié)1字節(jié)2字節(jié)3000408121649/11

思考下列問(wèn)題:1、在32位機(jī)器上輸出si,usi,i,ui的十進(jìn)制(真值)和十六進(jìn)制值(補(bǔ)碼機(jī)器數(shù))是什么?shortsi=-32768;unsignedshortusi=si;inti=si;unsingnedintui=usi;已知32768=215=1000000000000000B2、某機(jī)存儲(chǔ)器按字節(jié)編址,字長(zhǎng)32位,欲存儲(chǔ)倆數(shù)shortfloatf1=-256,f2=-128.75。試分析在地址碼為#1000存儲(chǔ)單元的小端字對(duì)齊存儲(chǔ)模式。50/112.4基本運(yùn)算方法補(bǔ)碼(+、–、×、÷)原碼(+、–、×、÷)浮點(diǎn)數(shù)運(yùn)算移碼(+、–)定點(diǎn)數(shù)運(yùn)算51/472.4.1定點(diǎn)數(shù)的運(yùn)算定點(diǎn)數(shù)一般用補(bǔ)碼表示;符號(hào)位參加運(yùn)算。重點(diǎn):基于補(bǔ)碼的加、減乘、除法52/471.補(bǔ)碼的加減法(X+Y)補(bǔ)=X補(bǔ)+Y補(bǔ)(1)(X-Y)補(bǔ)=X補(bǔ)+(-Y)補(bǔ)(2)數(shù)學(xué)依據(jù):(X+Y)補(bǔ)=X+Y+2n=X+Y+2n+2n=X補(bǔ)+Y補(bǔ)全過(guò)程以2n為模,即除以2n后取余數(shù)。(X-Y)補(bǔ)=X-Y+2n=X-Y+2n+2n=X補(bǔ)+(-Y)補(bǔ)其中,(-Y)補(bǔ)=[Y補(bǔ)]變補(bǔ)Y的符號(hào)置反后再表示成補(bǔ)碼Y補(bǔ)連同符號(hào)一起變反、末尾+153/472)X=–3Y=–2

X補(bǔ)=11101

Y補(bǔ)=1111011011(-5補(bǔ)碼)1)X=3Y=2

X補(bǔ)=00011

Y補(bǔ)=0001000101(+5補(bǔ)碼)【例】求(X+Y)補(bǔ)1)X=4Y=–5

X補(bǔ)=00100

Y補(bǔ)=11011(-Y)補(bǔ)=0010101001(+9補(bǔ)碼)2)X=–4Y=5

X補(bǔ)=11100

Y補(bǔ)=00101(-Y)補(bǔ)=1101110111(–9補(bǔ)碼)【例】求(X–Y)補(bǔ)

X補(bǔ)=00100

Y補(bǔ)=11011

X補(bǔ)=11100

Y補(bǔ)=0010154/4700101原10101原※補(bǔ)碼表示與變補(bǔ)運(yùn)算的區(qū)別補(bǔ)碼表示10011補(bǔ)變補(bǔ)運(yùn)算補(bǔ)碼表示符號(hào)位不變負(fù)數(shù)尾數(shù)改變,正數(shù)尾數(shù)不變。00011補(bǔ)變補(bǔ)運(yùn)算符號(hào)位變反,尾數(shù)變反、末尾加1【舉例】11011001010110111101(-Y)補(bǔ)也稱(chēng)為Y補(bǔ)的機(jī)器負(fù)數(shù)。55/47(2)補(bǔ)碼加減運(yùn)算流程操作數(shù)用補(bǔ)碼表示,符號(hào)位參加運(yùn)算得到補(bǔ)碼表示的結(jié)果,符號(hào)位指示結(jié)果的正負(fù)X補(bǔ)+Y補(bǔ)X補(bǔ)+(-Y)補(bǔ)ADDSUB56/47(3)邏輯實(shí)現(xiàn)#控制信號(hào)加法器輸入端:Sub:控制MUX和CinA:輸入A補(bǔ)B:輸入B補(bǔ)加法器輸出端:Sum:加法結(jié)果Cout:進(jìn)位信號(hào)#補(bǔ)碼加減運(yùn)算器框圖MUXSum加法器444AZFCinCout4B401SubBOF補(bǔ)碼加/減運(yùn)算部件邏輯SFCFB'ZF:0標(biāo)志位;SF:符號(hào)標(biāo)志;CF:進(jìn)位/借位標(biāo)志;OF:溢出標(biāo)志。57/47(4)溢出判斷思考:在什么情況下可能產(chǎn)生溢出?A:4位尾數(shù),1位符號(hào)(SA)B:4位尾數(shù),1位符號(hào)(SB)

補(bǔ)碼,故符號(hào)位也參加運(yùn)算結(jié)果的符號(hào),記為Sf符號(hào)位的進(jìn)位,記為Cf尾數(shù)最高位的進(jìn)位,記為C[假設(shè)]補(bǔ)碼表示的A、B兩數(shù)做加減運(yùn)算*溢出的判斷規(guī)則58/470011011100正確00011000101)A=3、B=23+2:001012)A=10、B=710+7:010100011110001正溢正確負(fù)溢正確正確3)A=-3、B=-2-3+(-2):1101111101111104)A=-10、B=-7-10+(-7):01111101101

10015)A=6、B=-46+(-4):000106)A=-6、B=4-6+4:11110110100010059/470

101000111(2)A=10B=710+7:10001(4)A=-10B=-7-10+(-7):011111011011001①硬件判斷邏輯一(根據(jù)SA、SB與Sf的關(guān)系)+溢出邏輯=SASBSf②硬件判斷邏輯二(根據(jù)Cf與C的關(guān)系)正溢負(fù)溢SASBSf60/47正確00011000101)A=3B=23+2:001012)A=10B=710+7:010100011110001正溢正確負(fù)溢正確正確3)A=-3B=-2-3+(-2):1101111101111104)A=-10B=-7-10+(-7):0111110110110015)A=6B=-46+(-4):0001000110111006)A=-6B=4-6+4:111101101000100Cf=0C=0Cf=0C=1Cf=1C=1Cf=1C=0Cf=1C=1Cf=0C=011111161/47②硬件判斷邏輯二(Cf與C的關(guān)系)溢出邏輯=Cf⊕C③硬件判斷邏輯三(從雙符號(hào)位)①硬件判斷邏輯一(SA、SB與Sf的關(guān)系)+溢出邏輯=SASBSfSASBSf62/471)3+2:正確00001100001000

01012)10+7:001010000111010001正溢正確負(fù)溢正確正確3)-3+(-2):1110111111011111104)-10+(-7):1011111101101110015)6+(-4):0000100001101111006)-6+4:11

111011

1010000100第1符號(hào)位Sf1第2符號(hào)位Sf263/47③硬件判斷邏輯三(雙符號(hào)位Sf1、Sf2)溢出邏輯=Sf1⊕Sf2②硬件判斷邏輯二(Cf與C的關(guān)系)溢出邏輯=Cf⊕C①硬件判斷邏輯一(SA、SB與Sf的關(guān)系)+溢出邏輯=SASBSfSASBSf00/11-正確;01-正溢;10-負(fù)溢;64/472、原碼加減運(yùn)算[符號(hào)位單獨(dú)處理、數(shù)值位加減]

先比較兩數(shù)符號(hào):①加法:同號(hào)數(shù)值位求和,異號(hào)求差;②減法:異號(hào)數(shù)值位求和,同號(hào)求差;※求和時(shí):數(shù)值位相加,和的符號(hào)取被加數(shù)(被減數(shù))符號(hào)[若最高位產(chǎn)生進(jìn)位,則結(jié)果有溢出?!蟛顣r(shí):被加數(shù)(被減數(shù))與加數(shù)(減數(shù))求補(bǔ)后相加?!炎罡邤?shù)值位有進(jìn)位,相加結(jié)果為正,數(shù)值位正確;符號(hào)取被加數(shù)(被減數(shù))的符號(hào)?!炎罡邤?shù)值位無(wú)進(jìn)位,相加結(jié)果為負(fù),得到數(shù)值位的補(bǔ)碼,需對(duì)結(jié)果求補(bǔ)還原為絕對(duì)值形式的數(shù)值位;符號(hào)位與被加數(shù)(被減數(shù))的符號(hào)相反。65/473原+2原3原+[-2]原3原-2原3原-[-2]原求和求差[例]已知[X]原

=1.0011,[Y]原

=1.1010,計(jì)算[X+Y]原解:由原碼加減運(yùn)算規(guī)則知:同號(hào)相加,則求和,和的符號(hào)同被加數(shù)符號(hào)。和的數(shù)值位為:0011+1010=1101和的符號(hào)位為:1

[X+Y]原

=1.1101[例]已知[X]原

=1.0011,[Y]原

=1.1010,要求計(jì)算[X–Y]原

解:由原碼加減運(yùn)算規(guī)則知:同號(hào)相減,則數(shù)值位求差

差的數(shù)值位為:0011+(1010)求補(bǔ)

=0011+0110=1001

最高數(shù)值位無(wú)進(jìn)位,表明加法結(jié)果為負(fù),需對(duì)1001求補(bǔ),還原為絕對(duì)值形式的數(shù)值位。即:(1001)求補(bǔ)=0111差的符號(hào)位為[X]原的符號(hào)位取反,即

[X–Y]原

=0.011166/473、標(biāo)準(zhǔn)移碼的加減[符號(hào)位和數(shù)值部分一起處理][E1]移+[E2]移=2n-1+E1+2n-1+E2=2n+E1+E2

=[E1+E2]補(bǔ)(mod2n)=E1補(bǔ)+E2補(bǔ)=

(E1移+E2移)反號(hào)[E1]移–[E2]移=2n-1+E1+2n–[E2]移

(mod2n)

=2n-1+E1+2n–2n-1–E2

=2n+E1–E2=[E1–E2]補(bǔ)(mod2n)=E1補(bǔ)+(E2)變補(bǔ)67/47[重要結(jié)論]兩數(shù)移碼的加減等于兩數(shù)加減后表示成的補(bǔ)碼。※補(bǔ)碼和移碼:符號(hào)位相反、數(shù)值位相同①加法:直接將[E1]移和[E2]移進(jìn)行模2n加,結(jié)果的符號(hào)取反。②減法:先將減數(shù)[E2]移求補(bǔ),然后再與被減數(shù)[E1]移進(jìn)行模2n加,結(jié)果的符號(hào)取反。因此,可得到移碼的下列加減法則:[溢出判斷]進(jìn)行模2n相加時(shí),如果兩個(gè)加數(shù)與和數(shù)符號(hào)全相同,則發(fā)生了溢出。68/47[例]用4位移碼計(jì)算“–7+(–6)”和“–3+6”的值。[–7]移

=0001[–6]移=0010 [–3]移=0101 [6]移=1110[–7]移+[–6]移

=0001+0010=0011補(bǔ)

(符號(hào)都為0,有溢出)[–3]移

+[6]移

=0101+1110=0011補(bǔ),(符號(hào)取反后為1011,其真值為+3)思考:[–7+(–6)]移=?

[–3+(6)]移

=?69/47[例]用四位移碼計(jì)算“–7–(–6)”和“–3–5”

[–7]移

=0001[–6]移=0010

[–3]移=0101 [

5

]移=1101

[–7]移

–[–6]移

=0001+1110=1111補(bǔ)

符號(hào)取反后為0111,其真值為–1。

[–3]移

–[

5

]移

=0101+0011=1000補(bǔ)符號(hào)取反后為0000,其真值為–870/472.4.2定點(diǎn)數(shù)乘法√原碼一位乘√補(bǔ)碼一位乘√原碼兩位乘71/471、原碼一位乘原碼乘法部分積累加、移位。[例]

0.1101×1.1011乘積

P

=|X|×|Y|X原Y原符號(hào)SP=SX⊕SY72/47手工運(yùn)算0.1101×0.10111101110100001101.10001111添加符號(hào):1.10001111部分積思考:1)加數(shù)的個(gè)數(shù)增多情況2)加數(shù)的位數(shù)增多的情況解決辦法:可將1次總加改為分步移位累加←|X|←|Y|①加數(shù)只為|X|或0②個(gè)數(shù)為|Y|的位數(shù)73/47原碼1位乘法(1)算法原理[每次將1位乘數(shù)所對(duì)應(yīng)的部分積與原部分積的累加和相加,并移位]設(shè)置寄存器:

A:存放部分積累加和、乘積高位

B:存放被乘數(shù)

C:存放乘數(shù)、乘積低位

A=00.0000B=|X|=00.1101C=|Y|=.1011

設(shè)置初值:74/47步數(shù)CR條件操作A

C

00.0000.1011

0)Cn=1+BCn+00.110100.1101

0.1101×0.1011

1101110100001101

0.10001111BC

1101

00.01101.101

0.1101×0.10111)Cn=1+B+00.110101.001100.100111.10

0.1101×0.1011

0.1101×0.1011

1101110100001101

0.10001111BC2)Cn=0+0+00.000000.100100.0100111.13)Cn=1+B+00.110101.000100.10001111X原×Y原

=1.10001111101111011110111175/47(2)算法流程0→A、0→CR、|X|→B、|Y|→CCn=1?CR=n?1/2(A+B)→A,C1/2(A+0)→A,C

CR+1→CRYYNNSX⊕SY→SA76/47選擇(3)32位硬件邏輯方案加法器AC寄存器控制邏輯clock0/BCnAC[63:32]AC[63:32]T=0:|X|→B,|Y|→AC[31:0],0→AC[63:32]32位BT=1:AC[63:32]+0/B→AC[63:32],AC右移T=2:T=n:同上,然后置符號(hào)?!璚n

右移SxSy64位的移位寄存器Cn=AC[0]77/472.補(bǔ)碼一位乘法※Booth(比較法)Yn

(高位)Yn+1(低位)運(yùn)算操作[XY]補(bǔ)=[An]補(bǔ)+(Y1-Y0)×[X]補(bǔ)*乘數(shù)尾添加Yn+1,循環(huán)判別YnYn+1,累加如表情況的的校正值,再整體右移1位(即?×

)。78/4700?×A補(bǔ)01?×

(A補(bǔ)+X補(bǔ))10?×(A補(bǔ)-X補(bǔ))11?×A補(bǔ)Y0[例]

X=-0.1101,Y=-0.1011,計(jì)算[XY]補(bǔ)初始化A=00.0000,ACCn+100000010101步數(shù)

CnCn+1條件操作1

1

0

-B+0011010011010

011011010

1101010右移1位→2

0

1

+B+1100111110011

1100110101右移1位→11101

079/47B=X補(bǔ)=11.0011,-B=-X補(bǔ)=001101

C=Y補(bǔ)=1.01010011001000步數(shù)

CnCn+1條件操作3

1

0

-B+001101100100100100

111101111010右移1位→4

0

1

+B+

1100111101111

1011

111110111101右移1位→11110011101

0

1

0

-B+001101111110[XY]補(bǔ)=0010001111=

+0.1000

1111保持不變!!80/4701校正.(請(qǐng)參考教材)※補(bǔ)碼1位乘法除了比較法,還有校正法。①乘數(shù)Y補(bǔ)為正,乘以X補(bǔ)累加,結(jié)果不校正;②乘數(shù)Y補(bǔ)為負(fù),乘以X補(bǔ)累加,結(jié)果-X補(bǔ)校正;81/472.4.3

定點(diǎn)數(shù)的除法√補(bǔ)碼不恢復(fù)余數(shù)除法√原碼恢復(fù)/不恢復(fù)余數(shù)除法√補(bǔ)碼恢復(fù)余數(shù)的除法82/471.補(bǔ)碼不恢復(fù)余數(shù)除法[算法思想]被除數(shù)X補(bǔ)、除數(shù)Y補(bǔ)、余數(shù)ri,

i=0、1…初始化:令r0=X補(bǔ),比較r0與Y補(bǔ)符號(hào),同號(hào)上商1,異號(hào)上商0×2?左移1位ri、Y補(bǔ)數(shù)符商對(duì)應(yīng)操作[-Y補(bǔ)]?+[Y補(bǔ)]變補(bǔ)商修正:循環(huán):i=1…n,按下表?xiàng)l件決定每步操作余數(shù)修正:(|X|<|Y|)83/47同號(hào)異號(hào)10ri+1=2×[ri]補(bǔ)-Y補(bǔ)ri+1=2×[ri]補(bǔ)+Y補(bǔ)符號(hào)位+1,末尾恒置1左移了n次,則余數(shù)=2-n×rn1

0000101

000110[例]X÷Y=+0.1000÷(-0.1010)=?R=X補(bǔ)=001000,001000000001r0Y補(bǔ)異號(hào)2r1Y補(bǔ)異號(hào)2r0

/←

+110110010000

00000+Br12r1

/←

001100

00000+B+110110r2r0上商0000110000000步數(shù)條件操作被除數(shù)余數(shù)

商Q上商084/47B=Y補(bǔ)=110110,-B=001010,Q=000000111010R=X補(bǔ)=001000,B=Y補(bǔ)=110110,-B=0010103r2Y補(bǔ)異號(hào)2r2

/←

+B4r3Y補(bǔ)同號(hào)r32r3

/←

111010

000000001000000r200010000000+110110上商0商校正:

-B+001010111110余數(shù):00001000000110100

000102-4×

r4r4數(shù)符+1、末尾恒置1上商1

10011補(bǔ)

85/4701+1置1左移了4位2.4.4IEEE754浮點(diǎn)四則運(yùn)算浮點(diǎn)運(yùn)算的實(shí)現(xiàn):低檔微機(jī),通過(guò)子程序中檔微機(jī),通過(guò)浮點(diǎn)處理器(協(xié)處理器)高檔微機(jī),通過(guò)專(zhuān)門(mén)的浮點(diǎn)運(yùn)算部件86/47[以IEEE754浮點(diǎn)數(shù)為例]浮點(diǎn)數(shù)運(yùn)算→尾數(shù)運(yùn)算、階碼運(yùn)算原碼移碼加減乘除加減87/470、IEEE754短浮點(diǎn)數(shù)階碼的加減①Ex和Ey分別是兩數(shù)階碼,Eb是結(jié)果階碼,則:Eb=Ex+Ey+129(mod28)原理推導(dǎo):88/47階碼用非標(biāo)準(zhǔn)移碼表示(僅偏移2n-1-1=127)[Ex+Ey]移

=127+(Ex+Ey)=[Ex]移

+[Ey]移

+10000001=(127+Ex)+(127+Ey)–127=[Ex]移+[Ey]移–127

=[Ex]移+[Ey]移+127求補(bǔ)=[Ex]移+[Ey]移+(-127)補(bǔ)=[Ex]移

+[Ey]移

+129(mod28)②Ex和Ey分別是兩數(shù)階碼,Eb是結(jié)果階碼,則:Eb=Ex-Ey=Ex+[–Ey]補(bǔ)+127(mod28)原理推導(dǎo):89/47[Ex–Ey]移

=127+(Ex–Ey)(mod28)=127+Ex-Ey-127+127=[Ex]移–[Ey]移

+127=[Ex]移+(–[Ey]移)補(bǔ)+01111111=[Ex]移+([Ey]移)求補(bǔ)+01111111(mod28)或者mod28,等價(jià)于忽略最高位的進(jìn)位。[例]若兩個(gè)階碼分別為10和-5,求10+(-5)和10-(-5)Ex=127+10=137=10001001Ey=127+(–5)=122=01111010[–Ey]補(bǔ)=10000110Eb=Ex+Ey+129

=10001001+01111010+10000001

=10000100

=132(mod28)

=+5

正確Eb=Ex+[Ey]求補(bǔ)

+127

=10001001+10000110+01111111=10001110

=142(mod28)

=+15正確90/471000100101111010+

100000011

10000100

1000100110000110+

01

11

11111

10001110

1、浮點(diǎn)的加減運(yùn)算浮點(diǎn)加減法的思路:假設(shè):A=2AE×AM,B=2BE×BM

A+B=(AM+BM)×2E

調(diào)整階碼和尾數(shù):AE→E←BE、AM、BM

浮點(diǎn)數(shù)的加減→移位操作→尾數(shù)原碼加減91/47[目的]使兩數(shù)階碼相等(小數(shù)點(diǎn)實(shí)際位置對(duì)齊,尾數(shù)對(duì)應(yīng)權(quán)值相同)。[規(guī)則]22×0.100123×0.110123×0.010123×0.1101小階向大階對(duì)齊。判操作數(shù)是否為0尾數(shù)為0階碼下溢(歸0)(3)對(duì)階(1)檢測(cè)能否簡(jiǎn)化操作(2)計(jì)算階差92/47補(bǔ)1以減小誤差(4)尾數(shù)加減.※階碼比較:比較線路或減法?!鶎?duì)階操作:小階的階碼增大,尾數(shù)右移。[例]AE>BE,則BE+1→BE,BM,直到BE=AEAM±BM→AM(5)結(jié)果規(guī)格化

|M|<1|M|

≥2應(yīng)左移規(guī)格化應(yīng)右移規(guī)格化尾數(shù)M左右移動(dòng),使:1≤|M|<293/47溢出判斷94/47以下情況下,可能會(huì)導(dǎo)致階碼溢出左規(guī)(階碼-1)時(shí)

左規(guī)時(shí):先判斷階碼是否為全0,若是,則直接置階碼下溢;否則,階碼減1后判斷階碼是否為全0,若是,則階碼下溢。右規(guī)(階碼+1)時(shí)右規(guī)(+1)時(shí),先判斷階碼是否為全1,若是,則直接置階碼上溢;否則,階碼加1后判斷階碼是否為全1,若是,則階碼上溢。[例]已知x=0.5,y=-0.4375,求x+y=?

x=0.5=1/2=(0.100...0)2=(1.00...0)2×2-1

y=-0.4375=(-0.01110...0)2=(-1.110..0)2×2-2[x]浮=0

01111110,000…00

[y]浮=1

01111101,110…00求階差、對(duì)階:ΔE移=01111110-

0111

1101+127e=128-127=+1故對(duì)y進(jìn)行對(duì)階:[y]浮=101111110

1110…00尾數(shù)真值相加:01.0000...00

+(10.1110...00)(原碼加法:異號(hào)求差,加數(shù)變補(bǔ)后求和)左規(guī):+0.00100…00×2-1=+1.00…0×2-4

[x+y]浮=0

0111101100…00

=+0.0625

95/470111111010000011+

01

11

11111

10000000

=10000000=1281.0000…00+1.0010…001

0.0010…00

=00.00100…00

<1求補(bǔ)求補(bǔ)2、浮點(diǎn)數(shù)的乘法※運(yùn)算步驟:①求階和AE+BE浮點(diǎn)乘法→分解成:移碼加法、原碼乘法;②尾數(shù)相乘,設(shè):A=2AE×AM,B=2BE×BM

則:A×B=(AM×BM)×2AE+BE

③結(jié)果規(guī)格化。④其它處理:如舍入、置0、階碼溢出判斷不需左規(guī)!最多右規(guī)1次!96/473、浮點(diǎn)數(shù)的除法※運(yùn)算步驟:浮點(diǎn)除法→分解成:移碼減法、原碼除法設(shè):A=2AE×AM,B=2BE×BM

則:A÷B=(AM/BM)×2AE-BE①求階差A(yù)E-BE②尾數(shù)相除,③結(jié)果規(guī)格化。需右規(guī)??④其它處理:如舍入、置0、階碼溢出判斷97/472.5數(shù)據(jù)的校驗(yàn)(1)奇偶校驗(yàn)(2)海明校驗(yàn)(3)循環(huán)冗余校驗(yàn)98/18待編碼信息10110001奇校驗(yàn)編碼10110001偶校驗(yàn)編碼10110001102.5.1奇偶校驗(yàn)校驗(yàn)位(1)編碼規(guī)則增設(shè)1位校驗(yàn)位,從而使1的個(gè)數(shù)是奇或偶數(shù)5個(gè)“1”4個(gè)“1”99/18(2)偶校驗(yàn)電路邏輯++++D7D6+D5D4+D3D2+D1D0+偶形成校驗(yàn)輸出校驗(yàn)位偶校驗(yàn)邏輯電路圖11111101110正確,或者有偶數(shù)位錯(cuò)000110100/18++++D7D6+D5D4+D3D2+D1D0+偶形成校驗(yàn)輸出校驗(yàn)位※任何1個(gè)數(shù),減去1個(gè)偶數(shù),其奇偶性不變11111101101輸出1:有奇數(shù)位錯(cuò)1001110所以奇偶校驗(yàn)均不能發(fā)現(xiàn)偶數(shù)位錯(cuò),也無(wú)法定位錯(cuò)誤101/182.5.2海明校驗(yàn)√是一種多重分組奇偶校驗(yàn);(1)分成幾組?每組包含多少校驗(yàn)位?[假設(shè)]待編碼信息K位,分成r組,每組1個(gè)校驗(yàn)位√將代碼組織為若干分組,每組進(jìn)行奇偶校驗(yàn);√能夠檢驗(yàn)是否出錯(cuò),也能定位出錯(cuò)位;校驗(yàn)碼位數(shù):r位;海明編碼總長(zhǎng):N=k+r位;海明編碼時(shí):各組單獨(dú)進(jìn)行奇偶校驗(yàn)編碼,以確定各組的校驗(yàn)位。102/18※各參數(shù)應(yīng)滿足:若k

=

4,則r

3滿足上述定理,可組成7位海明碼。代碼檢驗(yàn)時(shí):每組能產(chǎn)生1個(gè)指誤碼→

r位指誤碼→

2r種可能的指誤代碼指誤碼為全0其余(2r-1)種指誤代碼:比如:G3G2G1G0如0000、0001、0010、….

←→

海明編碼無(wú)錯(cuò);→分別用于指示(2r-1)種只有1位錯(cuò)的情況≤2r-1N=k+r103/18(2)分組方法1234567指誤碼P1P2A1P3A2A3A4第3組第2組第1組數(shù)據(jù)碼1位錯(cuò)有效信息:A1A2A3A4,校驗(yàn)位:P1P2P3,偶校驗(yàn)方式101G3G2G1=000G3G2G1=101101101010101如果有多位數(shù)字發(fā)生錯(cuò)誤呢?G3G2G1=101G3G2G1=1015需增加分組擴(kuò)大碼距!(k=4,r=3)編碼的海明距離:d=3;第5位錯(cuò)√√√√√√√√√√√√G3G2G1104/18(3)編碼規(guī)則每組均采用偶校驗(yàn),填入校驗(yàn)碼,組內(nèi)具有偶數(shù)個(gè)1[例如]4比特有效碼(待編碼數(shù)據(jù))1001(4)檢錯(cuò)與糾錯(cuò)[例如]讀取到數(shù)據(jù):0011011增加分組,能提高檢錯(cuò)和糾錯(cuò)能力(k=4,r=3)海明編碼:0011001(黃色的為檢驗(yàn)碼)指誤碼:據(jù)此推斷第6位出錯(cuò),第3組0011011G3=1第2組0011011G2=1第1組0011011G1=0G3G2G1=1102=610001101100110110011001定位+糾錯(cuò)105/182.5.3循環(huán)冗余校驗(yàn)[校驗(yàn)原理]用待校驗(yàn)數(shù)據(jù)除以某個(gè)約定代碼,能除盡則表明數(shù)據(jù)正確,否則通過(guò)循環(huán)移位校正出錯(cuò)位。(1)編碼方法即CRC,CyclicRedundancyCheck;①將待編碼的k位有效數(shù)據(jù)M(x)左移r位得到全編碼多項(xiàng)式M(x)·xr,空出r位,以裝填r位余數(shù);②選取一個(gè)r+1位的生成多項(xiàng)式G(x),對(duì)M(x)·xr進(jìn)行模2除運(yùn)算,得到商Q(x)和余數(shù)R(x)的代碼;③將左移r位的待編碼信息,與余數(shù)R(x)模2加,可拼接成為包含有效數(shù)據(jù)在內(nèi)的CRC編碼。106/18[例]將4位有效信息(1100)編成CRC碼,使用生成多項(xiàng)式為代碼(1011)待編碼數(shù)據(jù):1100(k=4),則M(x)=1x3+1x2+0x1+0※CRC編碼過(guò)程:生成多項(xiàng)式代碼:1011,則G(x)=1x3+0x2+1x1+1余數(shù)的位數(shù)r:等于G(x)中最高項(xiàng)的指數(shù),r=3得到:M(x)·xr=(x3+x2)·x3=1x6+1x5+0x4+0x3+0x2+0x1+0①先確定G

溫馨提示

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