第3章-2定點(diǎn)數(shù)和浮點(diǎn)數(shù)_第1頁(yè)
第3章-2定點(diǎn)數(shù)和浮點(diǎn)數(shù)_第2頁(yè)
第3章-2定點(diǎn)數(shù)和浮點(diǎn)數(shù)_第3頁(yè)
第3章-2定點(diǎn)數(shù)和浮點(diǎn)數(shù)_第4頁(yè)
第3章-2定點(diǎn)數(shù)和浮點(diǎn)數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩63頁(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)介

3.2.3定點(diǎn)數(shù)和浮點(diǎn)數(shù)

計(jì)算機(jī)中的兩種表示方式數(shù)值范圍:一種數(shù)據(jù)類型所能表示的最大值和最小值數(shù)據(jù)精度:實(shí)數(shù)所能表示的有效數(shù)字位數(shù)。數(shù)值范圍和數(shù)據(jù)精度均與使用多少位二進(jìn)制位數(shù)以及編碼方式有關(guān)。計(jì)算機(jī)用數(shù)字表示正負(fù),隱含規(guī)定小數(shù)點(diǎn)。采用“定點(diǎn)”、“浮點(diǎn)”兩種表示形式。11.數(shù)的定點(diǎn)表示方法(1).定點(diǎn)整數(shù)——小數(shù)點(diǎn)位置固定在數(shù)的最低位之后

如:Dn-1Dn-2??????D1D0

.范圍:

2n-1-1

~

-2n-1(采用字長(zhǎng)n=16位補(bǔ)碼時(shí)其值為32767~-32768)(2).定點(diǎn)小數(shù)——小數(shù)點(diǎn)位置固定在數(shù)的符號(hào)位之后、數(shù)值最高位之前。如:D0.

D-1??????D-(n-2)D-(n-1)范圍:1-2-(n-1)~-1

(采用字長(zhǎng)n=16位時(shí)其值為32767/32768~-1)其中n表示字長(zhǎng)多少位2(1)浮點(diǎn)數(shù)的表示:是把字長(zhǎng)分成階碼和尾數(shù)兩部分。其根據(jù)就是:①JEm-2…….E0S

D-1……D-(n-1)

階符階碼值數(shù)符.尾數(shù)值

②SJEm-2…….E0D-1……D-(n-1)數(shù)符階符階碼值.尾數(shù)值

通常,階碼為補(bǔ)碼或移碼定點(diǎn)整數(shù),尾數(shù)為補(bǔ)碼或原碼定點(diǎn)小數(shù)。2.數(shù)的浮點(diǎn)表示方法3(2)浮點(diǎn)數(shù)的規(guī)格化目的:字長(zhǎng)固定的情況下提高表示精度的措施:1

增加尾數(shù)位數(shù)(但數(shù)值范圍減?。?

采用浮點(diǎn)規(guī)格化形式4規(guī)格化方法:調(diào)整階碼使尾數(shù)滿足下列關(guān)系:尾數(shù)為原碼表示時(shí),無(wú)論正負(fù)應(yīng)滿足1/2<|d|<1即:小數(shù)點(diǎn)后的第一位數(shù)一定要為1。 正數(shù)的尾數(shù)應(yīng)為0.1x….x 負(fù)數(shù)的尾數(shù)應(yīng)為1.1x….x尾數(shù)用補(bǔ)碼表示時(shí),小數(shù)最高位應(yīng)與數(shù)符符號(hào)位相反。 正數(shù)應(yīng)滿足1/2≦d<1,即0.1x….x 負(fù)數(shù)應(yīng)滿足-1/2>d≥-1,即1.0x….x5例題:設(shè)某機(jī)器用32位表示一個(gè)實(shí)數(shù),階碼部分8位(含1位階符),用定點(diǎn)整數(shù)補(bǔ)碼表示;尾數(shù)部分24位(含數(shù)符1位),用規(guī)格化定點(diǎn)小數(shù)補(bǔ)碼表示,基數(shù)為2。則:1.求X=256.5的第一種浮點(diǎn)表示格式X=(256.5)10=+(100000000.1)2=+(0.1000000001x2+9)28位階碼為:(+9)補(bǔ)=0000100124位尾數(shù)為:(+0.1000000001)補(bǔ)

=0.10000000010000000000000所求256.5的浮點(diǎn)表示格式為:00001001

010000000010000000000000用16進(jìn)制表示此結(jié)果則為:(09402000)166

Y=-(256.5)10=-(100000000.1)2

=-0.1000000001x2+98位階碼為:(+9)補(bǔ)=0000100124位尾數(shù)為:(-0.1000000001)補(bǔ)=1.01111111110000000000000所求-256.5的浮點(diǎn)表示格式為:00001001

101111111110000000000000用16進(jìn)制表示此結(jié)果則為:(09BFE000)162.求Y=-256.5的第一種浮點(diǎn)表示格式7(3)溢出問(wèn)題定點(diǎn)數(shù)的溢出——根據(jù)數(shù)值本身判斷浮點(diǎn)數(shù)的溢出——根據(jù)規(guī)格化后的階碼判斷上溢——浮點(diǎn)數(shù)階碼大于機(jī)器最大階碼——中斷下溢——浮點(diǎn)數(shù)階碼小于機(jī)器最小階碼——零處理溢出的具體判斷方法將結(jié)合實(shí)例在后續(xù)課程中介紹8微機(jī)中所能表示的數(shù)值類型(1)無(wú)符號(hào)二進(jìn)制數(shù)(字節(jié)、字和雙字)(2)帶符號(hào)的二進(jìn)制定點(diǎn)整數(shù)形式(16、32、64位補(bǔ)碼表示)和18位BCD碼整數(shù)形式(80bit)。(3)浮點(diǎn)數(shù)(IEEE754標(biāo)準(zhǔn))包括數(shù)符S、階碼E和尾數(shù)D三個(gè)字段。9微機(jī)中的四種整數(shù)類型整數(shù)類型數(shù)值范圍精度格式16位整數(shù)-32768~32767二進(jìn)制16位補(bǔ)碼表示短整數(shù)-231~231-1二進(jìn)制32位補(bǔ)碼表示長(zhǎng)整數(shù)-263~263-1二進(jìn)制64位補(bǔ)碼表示BCD整數(shù)-1018+1~1018-1十進(jìn)制18位80個(gè)二進(jìn)制其中最左面1字節(jié)的最高位是符號(hào)位,余7位無(wú)效;另外72位是18位BCD碼,原碼表示。10IEEE754標(biāo)準(zhǔn)格式如下(-1)S2E(D0.D-1……D-(P-1))最高是數(shù)符S占1位,0表示正、1表示負(fù);指數(shù)項(xiàng)E,基數(shù)是2,E是一個(gè)帶有一定偏移量的無(wú)符號(hào)整數(shù);尾數(shù)部分D,它是一個(gè)帶有一位整數(shù)位的二進(jìn)制小數(shù)真值形式。其規(guī)格化形式應(yīng)調(diào)整階碼使其尾數(shù)整數(shù)位D0為1且與小數(shù)點(diǎn)一起隱含掉。1112微機(jī)中浮點(diǎn)數(shù)表示成規(guī)格化形式,如下圖所示:

單精度313023220符號(hào)位階碼尾數(shù)有效位

1·雙精度636252510符號(hào)位階碼尾數(shù)有效位

1·擴(kuò)展精度797864630符號(hào)位階碼尾數(shù)有效位

微機(jī)中浮點(diǎn)數(shù)的三種表示形式

13例如將十進(jìn)制數(shù)178.125表示成微機(jī)中的單精度浮點(diǎn)數(shù)解:178.125=10110010.001B=1.0110010001x27

指數(shù)E=7+127=134=10000110B127是單精度浮點(diǎn)數(shù)應(yīng)加的指數(shù)偏移量,其完整的浮點(diǎn)數(shù)形式為:01000011001100100010000000000000=43322000H

14例:將下面Pentium機(jī)中的單精度浮點(diǎn)數(shù)表示成十進(jìn)制真值是多少?

0011,1111,0101,1000,0000,0000,0000,0000數(shù)符:S=(-1)0=1(正號(hào))階碼:E=(01111110)2-127=126-127=-1尾數(shù):D=(1.1011)2X=1.1011x2-1=(0.11011)2=0.84375153.2.4數(shù)字化信息的編碼及表示計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理和運(yùn)算,就必須首先實(shí)現(xiàn)數(shù)字化表達(dá)。另外由于計(jì)算機(jī)除了數(shù)據(jù)處理和運(yùn)算外,還要進(jìn)行各種文字(特別是中文)的處理與編輯。因此,所有由計(jì)算機(jī)處理的信息也要用數(shù)字進(jìn)行編碼。這樣在物理機(jī)制上可以以數(shù)字信號(hào)表示.16信息的數(shù)字化表示形式數(shù)字信號(hào):是一種在時(shí)間上或空間上離散的信號(hào),單個(gè)信號(hào)是常用的二值邏輯(0或1),依靠多位信號(hào)組合表示廣泛的信息.171.用一串脈沖信號(hào)表示數(shù)字代碼

(先發(fā)低位后發(fā)高位為例)10110tU182.用一組電平信號(hào)表示數(shù)字代碼0tU10tU10tU00tU119

3.用一組數(shù)字代碼表示字符(如ASCII碼)4.用若干點(diǎn)的組合表示圖像(如圖形點(diǎn)陣碼)5.用數(shù)字信號(hào)表示聲音(如VCDDVD光盤(pán))6.用數(shù)字代碼表示命令與狀態(tài)20數(shù)字化方法表示信息的優(yōu)點(diǎn):抗干擾能力強(qiáng),可靠性高;位數(shù)增多則數(shù)的表示范圍可擴(kuò)大;物理上容易實(shí)現(xiàn),并可存儲(chǔ);表示信息的范圍與類型極其廣泛;能用邏輯代數(shù)等數(shù)字邏輯技術(shù)進(jìn)行處理.213.3二進(jìn)制乘法運(yùn)算1.軟件編程方法實(shí)現(xiàn)(時(shí)序控制乘法器)

由手算到機(jī)器實(shí)現(xiàn),要解決三個(gè)問(wèn)題:符號(hào)問(wèn)題、部分積相加進(jìn)位問(wèn)題、移位問(wèn)題。原碼乘法是先取絕對(duì)值相乘,再根據(jù)同號(hào)相乘為正、異號(hào)相乘位負(fù),單獨(dú)決定符號(hào)位。補(bǔ)碼乘法則讓符號(hào)位直接參加運(yùn)算,算法將會(huì)復(fù)雜一些。2.硬件快速乘法器實(shí)現(xiàn)

利用中大規(guī)模集成電路芯片,在一拍節(jié)中實(shí)現(xiàn)多項(xiàng)部分積的相加,成為陣列乘法器。

223.3.1定點(diǎn)數(shù)一位乘法

1.定點(diǎn)原碼一位乘規(guī)則:在機(jī)器中采用A,B,C寄存器來(lái)分別存放部分積,被乘數(shù)和乘數(shù)

(1)在機(jī)器內(nèi)一次加法操作只能求出兩數(shù)之和,因此每求得一個(gè)相加數(shù)時(shí),就得與上次部分積相加。(2)人工計(jì)算時(shí),相加數(shù)逐次向左偏移一位,由于最后的乘積位數(shù)是乘數(shù)(或被乘數(shù))的兩倍.由于在求本次部分積時(shí),前一次部分積的最低位,不再參與運(yùn)算,因此可將其右移一位。相加數(shù)可直送而不必偏移,于是用N位加法器就可實(shí)現(xiàn)兩個(gè)N位數(shù)相乘。(3)部分積右移時(shí)乘數(shù)寄存器同時(shí)右移一位,這樣可以用乘數(shù)寄存器的最低位來(lái)控制相加數(shù)(取被乘數(shù)或零),同時(shí)乘數(shù)寄存器的最高位可接收部分積右移出來(lái)的一位,因此,完成乘法運(yùn)算后,A寄存器中保存乘積的高位部分,乘數(shù)寄存器C中保存乘積的低位部分。23例:設(shè)X=0.1101,Y=0.1011,求X?Y.其中寄存器B=X,Cd=4.流程圖3.6計(jì)算過(guò)程如下:00000010110011010011010001101101001101010011001001111000000000100100010011110011010100010010001111+x右移一位→+x右移一位→+0右移一位→+x右移一位→部分積A乘數(shù)C乘積高位乘積低位1(丟失)1(丟失)0(丟失)1(丟失)X?Y=0.1000111124

注意:兩操作數(shù)的絕對(duì)值相乘,符號(hào)位單獨(dú)處理。寄存器A.B均設(shè)置雙符號(hào)位,第1符號(hào)位始終是部分積符號(hào),決定在右移時(shí)第1符號(hào)位補(bǔ)0操作步數(shù)由乘數(shù)的尾數(shù)位數(shù)決定,用計(jì)數(shù)器Cd來(lái)計(jì)數(shù)。即作n次累加和移位。最后是加符號(hào)位,根據(jù)Sx⊕Sy決定。252.定點(diǎn)補(bǔ)碼一位乘法

實(shí)現(xiàn)補(bǔ)碼乘法有兩種方法,現(xiàn)在廣泛使用的是Booth算法,也稱為比較法。這種方法在機(jī)器實(shí)現(xiàn)中要在乘數(shù)末位Yi之后再增加一個(gè)附加位Yi+1,并令其初始值為0。然后根據(jù)比較Yi、Yi+1的值決定下一步操作,規(guī)則如下:(部分積初始為0)YiYi+1操作00原部分積右移一位01原部分積加X(jué)補(bǔ)后再右移一位10原部分積加[-X補(bǔ)]后再右移一位11原部分積右移一位26例3.35:設(shè)X=-0.1101,Y=0.1011,即[X]補(bǔ)=11.0011,[Y]補(bǔ)=0.1011,[-X]=00.1101求[X?Y]補(bǔ).計(jì)算過(guò)程如下:0000000.10110初始值,最后一位補(bǔ)0001101Y5Y4=01+[-X]補(bǔ)001101000110101011右移一位000000Y4Y3=11+0000110000011010101右移一位110011Y3Y2=10+[X]補(bǔ)110110111011001010右移一位001101Y2Y1=01+[-X]補(bǔ)001000000100000101右移一位110011Y1Y0=10+[X]補(bǔ)1101110001+→+→+→+→+部分積乘數(shù)YYiYi+1說(shuō)明乘積高位乘積低位[X?Y]補(bǔ)=1.01110001,X?Y=-0.1000111127

初始值與符號(hào)位:A寄存器存放部分累加和,初始為0,采用雙符號(hào)位。第1符號(hào)位指示累加和的正負(fù),以控制右移時(shí)補(bǔ)0或補(bǔ)1。B中存放被乘數(shù)的補(bǔ)碼,雙符號(hào)位?;静僮鳎河肅寄存器最末兩位作判斷位,決定下一步的操作。移位:在右移時(shí),第2符號(hào)位值移入位數(shù)的最高位,第1符號(hào)位值不變且移入第2符號(hào)位,而A寄存器末位移入C寄存器。步數(shù)與最后一步操作:乘數(shù)有效位是4位,共作5步。注意,最后一步不移位因?yàn)檫@一步是用來(lái)處理符號(hào)位的。

283.4.1定點(diǎn)除法運(yùn)算

1.定點(diǎn)原碼一位除法

有恢復(fù)余數(shù)法和不恢復(fù)余數(shù)法(加減交替法),計(jì)算機(jī)中常用后者。因?yàn)樗牟僮鞑襟E少,而且也不復(fù)雜。其處理思想是:先減后判,如減后發(fā)現(xiàn)不夠減,則在下一步改作加除數(shù)操作。這樣操作步驟固定易于編程。其要點(diǎn)如下:(1)要求被除數(shù)|X|<除數(shù)|Y|,并取原碼尾數(shù)的絕對(duì)值相除;符號(hào)位單獨(dú)處理,商的符號(hào)為相除兩數(shù)符號(hào)的半加和。(2)被除數(shù)的位數(shù)可以是除數(shù)的兩倍,其低位的數(shù)值部分開(kāi)始時(shí)放在商寄存器中。運(yùn)算中,放被除數(shù)和商的A、C寄存器同時(shí)移位,并將商寄存器C中最高位移到被除數(shù)寄存器A的最低位中。(3)每步操作后,可根據(jù)余數(shù)Ri符號(hào)來(lái)判斷是否夠減:Ri位正表明夠減,上商Q為1。Ri為負(fù)表明不夠減,上商Q為0。(4)基本操作可用通式描述為:Ri=2Ri+(1-2Qi)Y

(5原碼除的思想是先當(dāng)成正數(shù)相除,若最后一步所得余數(shù)為負(fù),則應(yīng)恢復(fù)余數(shù),但不移位,以保持Ri為正。舉例如下:29例3.39:設(shè)被乘數(shù)X=0.1011,Y=0.1101,用加減交替法求X/Y.

[-Y]補(bǔ)=11.0011,計(jì)算過(guò)程如下:00101100000開(kāi)始情形110011+[-Y]補(bǔ)11111000000不夠減,商上011110000000左移001101+Y00100100001夠減,商上101001000010左移110011+[-Y]補(bǔ)00010100011夠減,商上100101000110左移110011+[-Y]補(bǔ)11110100110不夠減,商上011101001100左移001101+Y00011101101夠減,商上1+)+)+)+)+)被除數(shù)(余數(shù)R)(被除數(shù))(商)操作說(shuō)明余數(shù)商X/Y=0.1101,余數(shù)=0.011130

A寄存器中開(kāi)始時(shí)存放被除數(shù)的絕對(duì)值,以后將存放各次余數(shù),取雙符號(hào)位。B寄存器存放除數(shù)的絕對(duì)值,取雙符號(hào)位。C寄存器同來(lái)存放商,取單符號(hào)位。第一步操作:將被除數(shù)X視為初始余數(shù)R0,根據(jù)R0符號(hào)位正(絕對(duì)值),令商符為0,正是的商符以后再置入。第一步為-Y。商值則根據(jù)余數(shù)R0的符號(hào)來(lái)決定,正則商上1,求下一位商的辦法是余數(shù)左移一位再減去除數(shù);當(dāng)余數(shù)為負(fù)則商上0,求下一位商的辦法是余數(shù)左移一位再加上除數(shù)。左移位時(shí)末位補(bǔ)0。操作步數(shù)與最后一步操作:如果要求得n位商(不含符號(hào)位),則需作n步“左移-加減”循環(huán);若第n步余數(shù)為負(fù),則需增加一步恢復(fù)余數(shù),這增加的一步不移位。312.定點(diǎn)補(bǔ)碼一位除法(加減交替法)補(bǔ)碼除法規(guī)則表:X補(bǔ)、Y補(bǔ)、r補(bǔ)分別為被除數(shù)、除數(shù)和余數(shù)

X補(bǔ)Y補(bǔ)數(shù)符商符第一步操作r補(bǔ)Y補(bǔ)數(shù)符

上商下一步操作同號(hào)0減法同號(hào)(夠減)異號(hào)(不夠減)

102[ri]補(bǔ)--Y補(bǔ)2[ri]補(bǔ)+Y補(bǔ)異號(hào)1

加法同號(hào)(不夠減)異號(hào)(夠減)

102[ri]補(bǔ)--Y補(bǔ)2[ri]補(bǔ)+Y補(bǔ)32

以上是在|X|<|Y|即不溢出的前提下;(1)第一步如果被除數(shù)與除數(shù)同號(hào),用被除數(shù)減去除數(shù);若兩數(shù)異號(hào),用被除數(shù)加上除數(shù)。如果所得余數(shù)與除數(shù)同號(hào)上商1,若余數(shù)與除數(shù)異號(hào),上商0,該商即為結(jié)果的符號(hào)位。(2)求商的數(shù)值部分如果上次上商1,將余數(shù)左移一位后減去除數(shù);如果上次上商0,將余數(shù)左移一位后加上除數(shù)。然后判斷本次操作后的余數(shù),如果余數(shù)與除數(shù)同號(hào)上商1;若余數(shù)與除數(shù)異號(hào)上商0。如此重復(fù)執(zhí)行n-l次(設(shè)數(shù)值部分有n位)。(3)商的最后一位一般采用恒置1的辦法,井省略了最低位+1的操作,此時(shí)最大誤差為士2-n.如果對(duì)商的精度要求較高則可按規(guī)則(2)再進(jìn)行一次操作以求得商的第n位。當(dāng)除不盡時(shí)若商為負(fù),要在商的最低一位加1,使商從反碼值轉(zhuǎn)變成補(bǔ)碼值;若商為正最低位不需要加1。33例3.40:設(shè)[X]補(bǔ)=1.0111,[Y]補(bǔ)=0.1101,求[X/Y]補(bǔ).

[-Y]補(bǔ)=11.0011,計(jì)算過(guò)程如下:[X/Y]補(bǔ)=1.010111011100000開(kāi)始情形001101兩數(shù)異號(hào)+[Y]補(bǔ)?書(shū)00010000001余數(shù)與除數(shù)同號(hào),商上100100000010左移110011上次商1,+[-Y]補(bǔ)11101100010余數(shù)與除數(shù)異號(hào),商上011011000100左移001101上次商0,+[-Y]補(bǔ)00001100101余數(shù)與除數(shù)同號(hào),商上100011001010左移110011上次商1,+[-Y]補(bǔ)11100101010余數(shù)與除數(shù)異號(hào),商上011001010101左移,商的最低位恒置1+)+)+)+)被除數(shù)(余數(shù))商操作說(shuō)明余數(shù)商34

例3.40最低位恒置1,余數(shù)不正確。A寄存器存放被除數(shù)(補(bǔ)碼),以后存放余數(shù),取雙符號(hào)位。B寄存器存放除數(shù)(補(bǔ)碼),雙符號(hào)位。C寄存器存放商,初始值為0(未考慮商符之前),單符號(hào)位。如余數(shù)為0,則表示除盡。例3.41如采用商的最低位恒置1的方法,其誤差為2-n=2-4。補(bǔ)碼除法規(guī)則表補(bǔ)充說(shuō)明:1、表中i=0~n-1.2、上采用末位恒置1的方法,操作簡(jiǎn)便。如要提高精度,則要提高精度,則按上述規(guī)則多求一位,再采用以下方法對(duì)商進(jìn)行處理:兩數(shù)能除盡時(shí),如除數(shù)為正,商不必加2-n,如除數(shù)為負(fù),商加2-n;兩數(shù)除不盡時(shí),如商為正,商不必加2-n,如商為負(fù),商加2-n。35

例3.42[X]補(bǔ)=1.0111,[Y]補(bǔ)=1.0011,則[-Y]補(bǔ)=0.1101。求[X/Y]補(bǔ)=?被除數(shù)(余數(shù))商操作說(shuō)明11。0111+00。1101兩數(shù)同號(hào),+[-Y]補(bǔ)00。01000余數(shù)與除數(shù)異號(hào),商0左移00。1000+11。0011+[Y]補(bǔ)11。101101同號(hào),商1左移11。0110+00。1101+[-Y]補(bǔ)00。0011010異號(hào),商0左移00。0110+11。0011+[Y]補(bǔ)11。10010101同號(hào),商1左移11。0010+00。1101+[-Y]補(bǔ)11。111101011同號(hào),商1[X/Y]補(bǔ)=0.1011[余數(shù)]補(bǔ)=1。1111x2-4

363.5浮點(diǎn)數(shù)的運(yùn)算方法浮點(diǎn)數(shù)的表示形式(以2為底):N=M·2E其中,M為浮點(diǎn)數(shù)的尾數(shù),一般為絕對(duì)值小于1的規(guī)格化二進(jìn)制小數(shù)用原碼或補(bǔ)碼形式表示;E為浮點(diǎn)數(shù)的階碼,一般是用移碼或補(bǔ)碼表示的整數(shù)。階碼的底除了2以外,還有用8或16表示的,這里先以2為底進(jìn)行討論。然后再簡(jiǎn)介以8或16為底的數(shù)的運(yùn)算。371.加、減法運(yùn)算兩數(shù)首先均為規(guī)格化數(shù),在進(jìn)行規(guī)格化浮點(diǎn)數(shù)的加減運(yùn)算需經(jīng)過(guò)五步完成:對(duì)階操作:低階向高階補(bǔ)齊,使階碼相等;尾數(shù)運(yùn)算:階碼對(duì)齊后直接對(duì)尾數(shù)運(yùn)算;結(jié)果規(guī)格化:對(duì)運(yùn)算結(jié)果進(jìn)行規(guī)格化處理;(使補(bǔ)碼尾數(shù)的最高位和尾數(shù)符號(hào)相反)如溢出則需左規(guī),如不是規(guī)格化時(shí)應(yīng)右規(guī)。舍入操作:丟失位進(jìn)行0舍1入或恒置1處理;判斷溢出:判斷階碼是否溢出,下溢則將運(yùn)算結(jié)果置0,上溢則中斷。38具體說(shuō)明如下:

對(duì)階運(yùn)算(小階向大階對(duì)齊)尾數(shù)為原碼時(shí),尾數(shù)右移,符號(hào)位不動(dòng),最高位補(bǔ)0尾數(shù)為補(bǔ)碼時(shí),尾數(shù)右移,符號(hào)也移位,最高位補(bǔ)符號(hào)位例如:求 =?小階對(duì)大階舍掉的是如大階對(duì)小階則舍掉的是39

規(guī)格化:原碼尾數(shù)高位為1,補(bǔ)碼與符號(hào)相反舍入操作:0舍1入或恒置1例1:求 =?0舍1入后為恒置1例2:求=?0舍1入后為恒置1判斷結(jié)果的正確性(即結(jié)果的階碼是否溢出)40例:假設(shè)

其中指數(shù)和小數(shù)均為二進(jìn)制真值,求X+Y=?其階碼4位(含階符),補(bǔ)碼表示;尾數(shù)6位,補(bǔ)碼表示,尾數(shù)符號(hào)在最高位,尾數(shù)數(shù)值5位。解:尾符階碼尾數(shù)5位[X]浮=0001011010[Y]浮=1001100010對(duì)階[X]浮=0001101101尾數(shù)求和00.01101+11.00010=11.01111[X]浮+[Y]浮=1001101111規(guī)格化、舍入操作、階碼溢出判斷,最后: [X+Y]真=41例:假設(shè)其中指數(shù)和小數(shù)均為二進(jìn)制真值,求X-Y。其階碼4位(含階符),補(bǔ)碼表示;尾數(shù)6位,補(bǔ)碼表示,尾數(shù)符號(hào)在最高位,尾數(shù)數(shù)值5位

解:尾符階碼尾數(shù)[X]浮=0001011010[Y]浮=1001100010對(duì)階[X]浮=0001101101尾數(shù)求差:[X尾-Y尾]補(bǔ)=[X尾]補(bǔ)+[-Y尾]補(bǔ)=00.01101+00.11110=01.01011規(guī)格化處理、舍入操作均不需要,階碼溢出檢查:尾數(shù)符號(hào)位為01,尾數(shù)發(fā)生上溢出,做規(guī)格化處理尾數(shù)連同符號(hào)右移一位00.101011,階碼加1至0100舍入操作恒置1后:[X]浮-[Y]浮=0010010101

[X-Y]真=

423.5.2浮點(diǎn)數(shù)的乘、除法運(yùn)算兩浮點(diǎn)數(shù)相乘其乘積的階碼為相乘兩數(shù)階碼之和,其尾數(shù)應(yīng)為相乘兩數(shù)的尾數(shù)之積。兩個(gè)浮點(diǎn)數(shù)相除,商的階碼為被除數(shù)的階碼減去除數(shù)的階碼得到的差,尾數(shù)為被除數(shù)的尾數(shù)除以除數(shù)的尾數(shù)所得的商。參加運(yùn)算的兩個(gè)數(shù)都為規(guī)格化浮點(diǎn)數(shù),乘除運(yùn)算都可能出現(xiàn)結(jié)果不滿足規(guī)格化要求的問(wèn)題,因此也必須進(jìn)行規(guī)格化、舍入和判溢出等操作。規(guī)格化時(shí)要修改階碼。43

.浮點(diǎn)數(shù)乘法運(yùn)算(階碼的底為8或16)前面的討論,是以階碼值的底為2來(lái)進(jìn)行的。為了用相同位數(shù)的階碼表示更大范圍的浮點(diǎn)數(shù),在一些計(jì)算機(jī)中也有選用階碼的底為8或16的。此時(shí)浮點(diǎn)數(shù)N被表示成N=8E·M或N=16E·M階碼E和尾數(shù)M還都是用二進(jìn)制表示的,其運(yùn)算規(guī)則與階碼以2為底基本相同,但關(guān)于對(duì)階和規(guī)格化操作有新的相應(yīng)規(guī)定。當(dāng)階碼以8為底時(shí),只要尾數(shù)滿足1/8≤M<l或一1≤M〈一1/8就是規(guī)格化數(shù)。執(zhí)行對(duì)階和規(guī)格化操作時(shí),每當(dāng)階碼的值增或減1,尾數(shù)要相應(yīng)右移或左移三位。當(dāng)階碼以16為底時(shí),只要尾數(shù)滿足1/16《M<1或一1《M<一1/16就是規(guī)格化數(shù)。執(zhí)行對(duì)階和規(guī)格化操作時(shí),階碼的值增或減1,尾數(shù)必須移四位。判別為規(guī)格化數(shù)或?qū)崿F(xiàn)規(guī)格化操作,均應(yīng)使數(shù)值的最高三項(xiàng)(以8為底)或四位(以16為底)中至少有一位與符號(hào)位不同。5浮點(diǎn)數(shù)除法運(yùn)算步驟與乘法運(yùn)算類似,也分求商的階碼、尾數(shù)相除、規(guī)格化、舍入和判溢出5個(gè)步驟,不再詳細(xì)討論。443.6運(yùn)算部件

1.定點(diǎn)運(yùn)算部件定點(diǎn)運(yùn)算部件由算術(shù)邏輯運(yùn)算部件ALU、若干個(gè)寄存器、移位電路、計(jì)數(shù)器、門(mén)電路等組成。ALU部件主要完成加減法算術(shù)運(yùn)算及邏輯運(yùn)算(其功能可參考242節(jié)),其中還應(yīng)包含有快速進(jìn)位電路。2.浮點(diǎn)運(yùn)算部件通常由階碼運(yùn)算部件和尾數(shù)運(yùn)算部件組成。其各自的結(jié)構(gòu)與定點(diǎn)運(yùn)算部件相似。但階碼部分僅執(zhí)行加減法運(yùn)算。其尾數(shù)部分則執(zhí)行加減乘除運(yùn)算,左規(guī)時(shí)有時(shí)需要左移多位。為加速移位過(guò)程,有的機(jī)器設(shè)置了可移動(dòng)多位的電路。453.7計(jì)算機(jī)中的數(shù)據(jù)校驗(yàn)方法

采用冗余校驗(yàn)方法:即在基本的有效數(shù)據(jù)外,再擴(kuò)充部分位,增加部分(冗余部分)被稱為校驗(yàn)位。將校驗(yàn)位與數(shù)據(jù)位一起按某種規(guī)則編碼,寫(xiě)入存儲(chǔ)器或向外發(fā)送。當(dāng)從存儲(chǔ)器讀出或接收到外部傳入的代碼時(shí),再按相應(yīng)的規(guī)則進(jìn)行判讀。若約定的規(guī)則被破壞,則表示出現(xiàn)錯(cuò)誤。根據(jù)錯(cuò)誤的特征進(jìn)行修正恢復(fù)。46幾個(gè)名詞概念:碼字:由若干代碼組成的一個(gè)字。如8421碼中6(0110),7(0111)碼距:一種碼制中任意兩個(gè)碼字間的最小距離。距離:兩個(gè)碼字之間不同的代碼個(gè)數(shù)。8421碼中,最小的碼距為1,如0000和0001、0010和0011等;最大碼距為4,如0111和1000。8421碼的碼距為1。碼距為1,即不能查錯(cuò)也不能糾錯(cuò)。碼距越大,查錯(cuò)、糾錯(cuò)能力越強(qiáng)。473.7.1奇偶校驗(yàn)法

奇偶校驗(yàn)法是計(jì)算機(jī)中廣泛采用的檢查傳輸數(shù)據(jù)準(zhǔn)確性的方法。奇偶校驗(yàn)法的原理是:在每組數(shù)據(jù)信息上附加一個(gè)校驗(yàn)位,校驗(yàn)位的取值(0或1)取決于這組信息中‘1’的個(gè)數(shù)和校驗(yàn)方式(奇或偶校驗(yàn))。如果采用奇校驗(yàn),則這組數(shù)據(jù)加上校驗(yàn)碼位后數(shù)據(jù)中‘1’的個(gè)數(shù)應(yīng)為奇數(shù)個(gè)。如果采用偶校驗(yàn),則這組數(shù)據(jù)加上校驗(yàn)碼位后數(shù)據(jù)中‘1’的個(gè)數(shù)應(yīng)為偶數(shù)個(gè)。48例如:八位信息‘10101011’中共有5個(gè)‘1’,附加校驗(yàn)位后變?yōu)榫盼弧H舨捎闷嫘r?yàn),則附加的校驗(yàn)位應(yīng)取‘0’值,保證1的個(gè)數(shù)為奇數(shù)個(gè)即010101011;若采用偶校驗(yàn)則附加的校驗(yàn)位應(yīng)取‘1’值即110101011。奇偶校驗(yàn)的特點(diǎn):1、奇偶校驗(yàn)法使數(shù)據(jù)的碼距為2,因而可檢出數(shù)據(jù)傳送過(guò)程中奇數(shù)個(gè)數(shù)位出錯(cuò)的情況;2、實(shí)際中兩位同時(shí)出錯(cuò)的概率極低,奇偶校驗(yàn)法簡(jiǎn)便可靠易行,但它只能發(fā)現(xiàn)錯(cuò)誤,卻不知錯(cuò)在何處,因而不能自動(dòng)糾正。49偶校驗(yàn)出錯(cuò)奇校驗(yàn)出錯(cuò)偶形成奇形成D校為校驗(yàn)位D校D1D2D3D4D5D6D7D88位數(shù)據(jù)的奇偶校驗(yàn)碼形成電路及檢碼電路503.7.2海明碼校驗(yàn)方法海明碼校驗(yàn)方法以奇偶校驗(yàn)法為基礎(chǔ),其校驗(yàn)位不是一個(gè)而是一組,故其碼距大于2。海明碼校驗(yàn)方法能夠檢測(cè)出具體錯(cuò)誤并糾正。原理是在數(shù)據(jù)中加入r個(gè)校驗(yàn)位,將數(shù)據(jù)的碼距按照一定規(guī)則拉長(zhǎng)。r個(gè)校驗(yàn)位可以表示2r個(gè)信息,除一個(gè)表示無(wú)誤信息外,其余2r-1信息可以用來(lái)標(biāo)明錯(cuò)誤的具體位置,但由于校驗(yàn)位本身也可能在傳送中出錯(cuò),所以只有2r-1-r個(gè)信息可用,即r位校驗(yàn)碼只可標(biāo)明2r-1-r個(gè)錯(cuò)誤信息。或2r≧k+r+1k是被傳送數(shù)據(jù)的位數(shù)。

例如:用4個(gè)校驗(yàn)位能可靠傳輸24-1-4=11位信息;而要校驗(yàn)32位數(shù)據(jù)則需至少6個(gè)校驗(yàn)位。51

如要能檢測(cè)與自動(dòng)校正一位錯(cuò)井發(fā)現(xiàn)兩位錯(cuò)此時(shí)校驗(yàn)位的位數(shù)r和數(shù)據(jù)位的位數(shù)k應(yīng)滿足下述關(guān)系:2r-1≧k+r(3.19)按式(3.19),可計(jì)算出數(shù)據(jù)位k與校驗(yàn)位r的對(duì)應(yīng)關(guān)系,如教材表3.8所示。52一、編碼方法(以四個(gè)校驗(yàn)位進(jìn)行說(shuō)明)

四個(gè)校驗(yàn)位最多可以校驗(yàn)11位數(shù)據(jù)。設(shè): D10D9D8D7D6D5D4D3D2D1D0為11個(gè)數(shù)據(jù)位, P4P3P2P1分別為四個(gè)校驗(yàn)碼,則編碼規(guī)則是:海明碼的總位數(shù)等于數(shù)據(jù)位與校驗(yàn)位之和;每個(gè)校驗(yàn)位Pi排放在2i-1的位置,例如P4排放在第24-1=8位,其余數(shù)據(jù)位依序排列。即:

D10D9D8D7D6D5D4P4D3D2D1P3D0P2P1海明碼的每一位用多個(gè)校驗(yàn)位一起進(jìn)行校驗(yàn),被校驗(yàn)的位號(hào)等于校驗(yàn)它的各校驗(yàn)位位號(hào)和;各校驗(yàn)位的值為它參與校驗(yàn)的數(shù)據(jù)位的異或。53

海明碼校驗(yàn)表海明碼位號(hào)參與校驗(yàn)的校驗(yàn)位位號(hào)參與的校驗(yàn)位H1P11P1H2P22P2H3D02,1(3=2+1)P2P1H4P34P3H5D14,1(5=4+1)P3,P1H6D24,2(6=4+2),P3,P2H7D34,2,1(7=4+2+1)P4,P3,P2,P1H8P48P4H9D48,1(8=8+1)P4,P1H10D58,2(10=8+2)P4,P2H11D68,2,1(11=8+2+1)P4,P2,P1H12D78,4(12=8+4)P4,P3H13D88,4,1(13=8+4+1)P4,P3,P1H14D98,4,2(14=8+4+2)P4,P3,P2H15D108,4,2,1(15=8+4+2+1)P4,P3,P2,P154

各校驗(yàn)位形成公式:

P1=D0⊕D1⊕D3⊕D4⊕D6⊕D8⊕D10(1)P2=D0⊕D2⊕D3⊕D5⊕D6⊕D9⊕D10(2)P3=D1⊕D2⊕D3⊕D7⊕D8⊕D9⊕D10(3)P4=D4⊕D5⊕D6⊕D7⊕D8⊕D9⊕D10(4)按上述方式Pi的取值是采用偶校驗(yàn)時(shí)的取值,當(dāng)采用奇校驗(yàn)時(shí),Pi則取反。這樣Pi連同數(shù)據(jù)位一起形成了海明碼的各位。

55二、檢查糾錯(cuò)(以四個(gè)校驗(yàn)位進(jìn)行說(shuō)明)

海明碼數(shù)據(jù)傳送到接收方后,再將各校驗(yàn)位的值與它所參與校驗(yàn)的數(shù)據(jù)位的異或結(jié)果進(jìn)行異或運(yùn)算。運(yùn)算結(jié)果稱為校驗(yàn)和。校驗(yàn)和共有四個(gè)。對(duì)偶校驗(yàn)來(lái)說(shuō),如果校驗(yàn)和不為零則傳輸過(guò)程中間有錯(cuò)誤。而錯(cuò)誤的具體位置則由四個(gè)校驗(yàn)和依序排列后直接指明。如果四個(gè)校驗(yàn)和

S4S3S2S1依序排列后等于(1001)2=(9)10時(shí),就表明海明碼的第九位也就是D4發(fā)生了錯(cuò)誤,此時(shí)只要將D4取反,也就糾正了錯(cuò)誤。56

校驗(yàn)和Si的表達(dá)式:S1=D0⊕D1⊕D3⊕D4⊕D6⊕D8⊕D10⊕P1

S2=D0⊕D2⊕D3⊕D5⊕D6⊕D9⊕D10⊕P2S3=D1⊕D2⊕D3⊕D7⊕D8⊕D9⊕D10⊕P3S4=D4⊕D5⊕D6⊕D7⊕D8⊕D9⊕D10⊕P4當(dāng)采用偶校驗(yàn)方式其傳送數(shù)據(jù)正確時(shí),校驗(yàn)和S1~S4的值分別都為0;當(dāng)采用奇校驗(yàn)方式其傳送數(shù)據(jù)正確時(shí),校驗(yàn)和S1~S4的值分別都為1。當(dāng)不為上述值時(shí),傳送就發(fā)生了錯(cuò)誤。

57解:已知D10D9D8D7D6D5D4D3D2D1D0=10110100110由于被校驗(yàn)位的位號(hào)等于校驗(yàn)它的各校驗(yàn)位位號(hào)之和以及各校驗(yàn)位的取值等于它參與校驗(yàn)的數(shù)據(jù)位取值的異或。所以校驗(yàn)位的取值以及所求海明碼為: P1=D0D1

D3

D4

D6

D8

D10=1 P2=D0

D2

D3

D5

D6

D9

D10=1 P3=D1

D2

D3

D7

D8

D9

D10=1 P4=D4

D5

D6

D7

D8

D9

D10=0D10D9D8D7D6D5D4P4D3D2D1P3D0P2P1=101101000111011傳送正確時(shí)校驗(yàn)和的值為0,如果不等于0,則是幾就是第幾位出錯(cuò),是7則是第7位D3出錯(cuò),此時(shí)將其取反即可糾正錯(cuò)誤。例題:采用4位校驗(yàn)位、偶校驗(yàn)方式,寫(xiě)出10110100110的海明碼。58

59

以上圖3.11是H=12,數(shù)據(jù)位k=8,校驗(yàn)位r=4的海明校驗(yàn)線路,記作(l2.8)分組碼。圖3.ll中的H12,H11,...,H1是被校驗(yàn)碼,D8,D7,...,D1是糾正后的數(shù)據(jù)。在線路中,先用奇偶形成線路得到S4,S3,S2,S1,如果S4~S1為全“0”,說(shuō)明代碼無(wú)錯(cuò),則D8D7...DI=H12H11H10H9H7H6H5H3。如果S4~S1不為全0,說(shuō)明有錯(cuò)

溫馨提示

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