第二章數(shù)據(jù)表示、運(yùn)算與校驗(yàn)_第1頁
第二章數(shù)據(jù)表示、運(yùn)算與校驗(yàn)_第2頁
第二章數(shù)據(jù)表示、運(yùn)算與校驗(yàn)_第3頁
第二章數(shù)據(jù)表示、運(yùn)算與校驗(yàn)_第4頁
第二章數(shù)據(jù)表示、運(yùn)算與校驗(yàn)_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章第二章 數(shù)據(jù)的表示、運(yùn)算與校驗(yàn)數(shù)據(jù)的表示、運(yùn)算與校驗(yàn)2.1數(shù)值型數(shù)值型數(shù)據(jù)的表示數(shù)據(jù)的表示方法方法2.1.1進(jìn)位計(jì)數(shù)制進(jìn)位計(jì)數(shù)制數(shù)碼:用不同的數(shù)字符號(hào)來表示一種數(shù)制的數(shù)值,這些數(shù)字符號(hào)數(shù)碼:用不同的數(shù)字符號(hào)來表示一種數(shù)制的數(shù)值,這些數(shù)字符號(hào)稱為數(shù)碼。稱為數(shù)碼?;簲?shù)制所使用的數(shù)碼的個(gè)數(shù)?;簲?shù)制所使用的數(shù)碼的個(gè)數(shù)。權(quán):某數(shù)制各位所具有的值。(相鄰兩位權(quán)值之比等于基數(shù))權(quán):某數(shù)制各位所具有的值。(相鄰兩位權(quán)值之比等于基數(shù))1.計(jì)算機(jī)中常用的進(jìn)位制計(jì)算機(jī)中常用的進(jìn)位制1)二進(jìn)制)二進(jìn)制每個(gè)數(shù)位僅允許取每個(gè)數(shù)位僅允許取0或或1兩種值,逢兩種值,逢2進(jìn)位,借進(jìn)位,借1當(dāng)當(dāng)2,基數(shù)為,基數(shù)為2。2

2、)八進(jìn)制)八進(jìn)制所使用的數(shù)碼是所使用的數(shù)碼是8個(gè):個(gè):0,1.7,逢逢8進(jìn)位,借進(jìn)位,借1當(dāng)當(dāng)8,基數(shù)為,基數(shù)為8,各,各位的權(quán)是以位的權(quán)是以8為底的冪。為底的冪。3)十六進(jìn)制)十六進(jìn)制基為基為16,所用數(shù)碼為,所用數(shù)碼為0-9,A-F,共共16個(gè),逢個(gè),逢16進(jìn)位,借進(jìn)位,借1當(dāng)當(dāng)16,各,各位的權(quán)是以位的權(quán)是以16為底的冪。為底的冪。4)十進(jìn)制)十進(jìn)制5)二)二十十進(jìn)制進(jìn)制為了解決二進(jìn)制和十進(jìn)制之間的轉(zhuǎn)換問題,引入了二為了解決二進(jìn)制和十進(jìn)制之間的轉(zhuǎn)換問題,引入了二十十進(jìn)制,即進(jìn)制,即用四位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù)。用四位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù)。對(duì)二對(duì)二十十進(jìn)制的運(yùn)算可先按二進(jìn)制數(shù)運(yùn)算,如

3、果每位和進(jìn)制的運(yùn)算可先按二進(jìn)制數(shù)運(yùn)算,如果每位和 9,不必修,不必修正;如果和正;如果和 9,則作,則作 “加六修正加六修正”。2.各種進(jìn)位制之間的相互轉(zhuǎn)換各種進(jìn)位制之間的相互轉(zhuǎn)換1)十進(jìn)制整數(shù)轉(zhuǎn)換位二進(jìn)制整數(shù))十進(jìn)制整數(shù)轉(zhuǎn)換位二進(jìn)制整數(shù)減權(quán)定位法減權(quán)定位法若轉(zhuǎn)換后的二進(jìn)制代碼序列為若轉(zhuǎn)換后的二進(jìn)制代碼序列為XnXn-1X1X0,則從高位起將十則從高位起將十進(jìn)制數(shù)依次與二進(jìn)制數(shù)各位的權(quán)值進(jìn)行比較。若夠減,則對(duì)進(jìn)制數(shù)依次與二進(jìn)制數(shù)各位的權(quán)值進(jìn)行比較。若夠減,則對(duì)應(yīng)位應(yīng)位Xi=1,減去該位權(quán)值后繼續(xù)往下比較;若不夠減,則對(duì)應(yīng)減去該位權(quán)值后繼續(xù)往下比較;若不夠減,則對(duì)應(yīng)位位Xi=0,越過該位后繼續(xù)往

4、下比較;如此反復(fù)進(jìn)行,直到所有越過該位后繼續(xù)往下比較;如此反復(fù)進(jìn)行,直到所有二進(jìn)制位的位權(quán)都比較完畢為止。二進(jìn)制位的位權(quán)都比較完畢為止。(116)10=(1110100)2除基取余除基取余將十進(jìn)制整數(shù)除以將十進(jìn)制整數(shù)除以2,所得余數(shù)作為對(duì)應(yīng)的二進(jìn)制數(shù)低位的值;,所得余數(shù)作為對(duì)應(yīng)的二進(jìn)制數(shù)低位的值;繼續(xù)對(duì)商除以繼續(xù)對(duì)商除以2,所得的各次余數(shù)就是二進(jìn)制數(shù)的各位值;如,所得的各次余數(shù)就是二進(jìn)制數(shù)的各位值;如此進(jìn)行直到商等于此進(jìn)行直到商等于0為止。為止。2)十進(jìn)制小數(shù)轉(zhuǎn)換為二進(jìn)制小數(shù))十進(jìn)制小數(shù)轉(zhuǎn)換為二進(jìn)制小數(shù)減權(quán)定位法減權(quán)定位法(0.635)10=(0.101)2乘基取整乘基取整將待轉(zhuǎn)換的二進(jìn)制小數(shù)

5、乘以基數(shù)將待轉(zhuǎn)換的二進(jìn)制小數(shù)乘以基數(shù)2,所得的整數(shù)部分就是二進(jìn),所得的整數(shù)部分就是二進(jìn)制小數(shù)的高位值;繼續(xù)對(duì)所余小數(shù)部分乘以基數(shù)制小數(shù)的高位值;繼續(xù)對(duì)所余小數(shù)部分乘以基數(shù)2,所得的整,所得的整數(shù)部分就是次高位的值,如此繼續(xù),直到乘積的小數(shù)部分已為數(shù)部分就是次高位的值,如此繼續(xù),直到乘積的小數(shù)部分已為0,或以滿足所需精度要求為止。,或以滿足所需精度要求為止。3)二進(jìn)制整數(shù)轉(zhuǎn)換位十進(jìn)制整數(shù))二進(jìn)制整數(shù)轉(zhuǎn)換位十進(jìn)制整數(shù)按權(quán)相加按權(quán)相加(1011)2=(11)10逐次乘基相加法逐次乘基相加法從二進(jìn)制的最高位開始,乘以基數(shù)從二進(jìn)制的最高位開始,乘以基數(shù)2,然后與次高位,也就,然后與次高位,也就是相鄰低位

6、相加;所的結(jié)果再乘以基數(shù)是相鄰低位相加;所的結(jié)果再乘以基數(shù)2,再與相鄰低位相,再與相鄰低位相加;如此繼續(xù),直到加上最低位為止。加;如此繼續(xù),直到加上最低位為止。4)二進(jìn)制小數(shù)轉(zhuǎn)換位十進(jìn)制小數(shù))二進(jìn)制小數(shù)轉(zhuǎn)換位十進(jìn)制小數(shù)按權(quán)相加按權(quán)相加(0.1011)2=(0.6875)10逐次除基相加逐次除基相加從二進(jìn)制的最低位開始,除以基數(shù)從二進(jìn)制的最低位開始,除以基數(shù)2之后與次低位(也就是之后與次低位(也就是相鄰高位)相加,所的結(jié)果再除以基數(shù)相鄰高位)相加,所的結(jié)果再除以基數(shù)2,繼續(xù)與相鄰高位,繼續(xù)與相鄰高位位相加,再除以位相加,再除以2;如此繼續(xù),直到與小數(shù)點(diǎn)后的第一位相;如此繼續(xù),直到與小數(shù)點(diǎn)后的第一

7、位相加并除以加并除以2為止。為止。2.1.2帶符號(hào)數(shù)的表示帶符號(hào)數(shù)的表示真值:用正負(fù)號(hào)加絕對(duì)值表示的數(shù)值。真值:用正負(fù)號(hào)加絕對(duì)值表示的數(shù)值。機(jī)器數(shù):在計(jì)算機(jī)內(nèi)部,連同數(shù)符一起數(shù)碼化了的數(shù)。機(jī)器數(shù):在計(jì)算機(jī)內(nèi)部,連同數(shù)符一起數(shù)碼化了的數(shù)。1.原碼表示法原碼表示法讓數(shù)碼序列的最高位為符號(hào)位,符號(hào)位為讓數(shù)碼序列的最高位為符號(hào)位,符號(hào)位為0表示該數(shù)為正,為表示該數(shù)為正,為1表示該數(shù)為負(fù)。定義如下:表示該數(shù)為負(fù)。定義如下:1)定點(diǎn)小數(shù)的原碼序列為定點(diǎn)小數(shù)的原碼序列為X0.X1X2XnX原=X 0 X 11-X=1+|X| -1X0計(jì)數(shù)制計(jì)數(shù)制符號(hào)數(shù)字化符號(hào)數(shù)字化編碼編碼2)定點(diǎn)整數(shù)的原碼序列為定點(diǎn)整數(shù)的

8、原碼序列為XnXn-1 X1X03)結(jié)論:結(jié)論:真值真值0有有+0和和-0之分。之分。對(duì)于小數(shù)原碼,表示范圍對(duì)于小數(shù)原碼,表示范圍-1 X 1對(duì)于整數(shù)原碼,表示范圍對(duì)于整數(shù)原碼,表示范圍- 2n X 2n符號(hào)位不是數(shù)值的一部分,是人為地約定符號(hào)位不是數(shù)值的一部分,是人為地約定“0正正1負(fù)負(fù)”X原=X 0 X 2n2n-X=2n+|X| - 2n X02.補(bǔ)碼表示法補(bǔ)碼表示法1)補(bǔ)碼定義)補(bǔ)碼定義統(tǒng)一定義為:統(tǒng)一定義為: X補(bǔ)補(bǔ)=M+X (mod M)正數(shù)模舍去,負(fù)數(shù)模減去真值的絕對(duì)值。正數(shù)模舍去,負(fù)數(shù)模減去真值的絕對(duì)值。定點(diǎn)小數(shù)補(bǔ)碼序列為定點(diǎn)小數(shù)補(bǔ)碼序列為X0.X1X2Xn ,則定義為:則定義

9、為:X補(bǔ)=X 0 X 12+X=2-|X| -1 X 0例例: x= -0.1011 x補(bǔ)補(bǔ)=10+x=10.0000-0.1011=1.0101y=-0.01111y補(bǔ)補(bǔ)=10+y=10.00000-0.01111=1.10001定點(diǎn)整數(shù)序列定點(diǎn)整數(shù)序列XnXn-1 X1X0 ,則定義為:則定義為:X補(bǔ)=X 0 X 2n2n+1+X=2n+1-|X| - 2n X 02)由真值、原碼轉(zhuǎn)換為補(bǔ)碼)由真值、原碼轉(zhuǎn)換為補(bǔ)碼正數(shù)補(bǔ)碼表示與原碼相同正數(shù)補(bǔ)碼表示與原碼相同負(fù)數(shù)原碼轉(zhuǎn)換為補(bǔ)碼方法有二:負(fù)數(shù)原碼轉(zhuǎn)換為補(bǔ)碼方法有二:#“變反加變反加1”符號(hào)位保持為符號(hào)位保持為1不變,其余各位先變反,然后在末位

10、不變,其余各位先變反,然后在末位加加1。#符號(hào)位保持為符號(hào)位保持為1不變,尾數(shù)部分自低位向高位,第一個(gè)不變,尾數(shù)部分自低位向高位,第一個(gè)1及其以前及其以前的各低位的各低位0都保持不變,以后的各位則按位變反。都保持不變,以后的各位則按位變反。例:若例:若X=0.1011,則則8位字長的位字長的X補(bǔ)補(bǔ)=0.1011000若若X= -0.1011,則則8位字長的位字長的X補(bǔ)補(bǔ)=1.0101000若若X=1011,則則8位字長的位字長的X補(bǔ)補(bǔ)=00001011若若X= -1011,則則8位字長的位字長的X補(bǔ)補(bǔ)=111101013)由補(bǔ)碼表示轉(zhuǎn)換為原碼與真值)由補(bǔ)碼表示轉(zhuǎn)換為原碼與真值對(duì)于正數(shù):對(duì)于正數(shù)

11、: X原原= X補(bǔ)補(bǔ)對(duì)于負(fù)數(shù):對(duì)于負(fù)數(shù):X原原= X補(bǔ)補(bǔ)補(bǔ)補(bǔ)4)已知)已知X補(bǔ)補(bǔ)求求-X補(bǔ)補(bǔ)對(duì)于對(duì)于X補(bǔ)補(bǔ)連同符號(hào)位一起各位變反末尾加連同符號(hào)位一起各位變反末尾加15)算術(shù)移位,左移可由)算術(shù)移位,左移可由X補(bǔ)補(bǔ)求求2X補(bǔ)補(bǔ)、 4X補(bǔ)補(bǔ);右移可由;右移可由X補(bǔ)補(bǔ)求求 X補(bǔ)補(bǔ)/2 、 X補(bǔ)補(bǔ)/46)變相補(bǔ)碼變相補(bǔ)碼(雙符號(hào)補(bǔ)碼雙符號(hào)補(bǔ)碼)為了防止溢出而設(shè)定為了防止溢出而設(shè)定(3 3)移位規(guī)則)移位規(guī)則(1)單符號(hào)位)單符號(hào)位 : 0 01110 1110 (2)雙符號(hào)位:)雙符號(hào)位:00 1110 00 0111正數(shù)補(bǔ)碼和原碼的移位規(guī)則正數(shù)補(bǔ)碼和原碼的移位規(guī)則左移左移右移右移右移右移0 0111

12、 0 0011 左移左移左移左移右移右移右移右移01 1100 00 1110 00 0111 數(shù)符不變數(shù)符不變(單:符號(hào)位不變;雙:第一符號(hào)(單:符號(hào)位不變;雙:第一符號(hào)位不變)。位不變)。空位補(bǔ)空位補(bǔ)0(右移時(shí)第二符號(hào)位移至尾數(shù)最高位)。(右移時(shí)第二符號(hào)位移至尾數(shù)最高位)。(3 3)移位規(guī)則)移位規(guī)則(1)單符號(hào)位)單符號(hào)位 : 1 10111 0110 (2)雙符號(hào)位:)雙符號(hào)位:10 1100 11 0110負(fù)數(shù)補(bǔ)碼移位規(guī)則負(fù)數(shù)補(bǔ)碼移位規(guī)則左移左移右移右移右移右移1 1011 1 1101 左移左移右移右移右移右移11 0110 11 1011 數(shù)符不變數(shù)符不變(單:符號(hào)位不變;雙:第

13、一符號(hào)(單:符號(hào)位不變;雙:第一符號(hào)位不變)。位不變)。左移空位補(bǔ)左移空位補(bǔ)0(第二符號(hào)位移至尾數(shù)最高位)。(第二符號(hào)位移至尾數(shù)最高位)。右移空位補(bǔ)右移空位補(bǔ)16)討論:)討論: 補(bǔ)碼最高位作為符號(hào)位,補(bǔ)碼最高位作為符號(hào)位,“0正正1負(fù)負(fù)”,但補(bǔ)碼的符號(hào)位是,但補(bǔ)碼的符號(hào)位是數(shù)值的一部分。數(shù)值的一部分。 補(bǔ)碼表示中,數(shù)值補(bǔ)碼表示中,數(shù)值0只有一種表示。只有一種表示。 負(fù)數(shù)補(bǔ)碼的表示范圍比原碼稍寬一些,即多一種組合。負(fù)數(shù)補(bǔ)碼的表示范圍比原碼稍寬一些,即多一種組合。 補(bǔ)碼可實(shí)現(xiàn)化減為加。補(bǔ)碼可實(shí)現(xiàn)化減為加。3.反碼表示法反碼表示法正數(shù)的反碼表示與原碼相同;負(fù)數(shù)反碼的符號(hào)位為正數(shù)的反碼表示與原碼相同

14、;負(fù)數(shù)反碼的符號(hào)位為1,尾數(shù)由,尾數(shù)由原碼尾數(shù)逐位變反。原碼尾數(shù)逐位變反。定點(diǎn)小數(shù)反碼序列為定點(diǎn)小數(shù)反碼序列為X0.X1X2Xn ,則定義為:則定義為:定點(diǎn)整數(shù)的反碼序列定點(diǎn)整數(shù)的反碼序列XnXn-1 X1X0 ,則定義為則定義為X反=X 0 X 1(2-2-n)+X -1 X 0X反=X 0 X 2n(2n+1-1)+X - 2n X 04.移碼(增碼)移碼(增碼)設(shè)定點(diǎn)整數(shù)移碼序列為設(shè)定點(diǎn)整數(shù)移碼序列為Xm X2X1X0,則定義為:則定義為: x移移=2m+X -2m X 2m結(jié)論:結(jié)論:最高位為符號(hào)位,最高位為符號(hào)位,1正正0負(fù)負(fù)零的移碼是唯一的零的移碼是唯一的1000000,除符號(hào)位外

15、,移碼各位與補(bǔ)碼同除符號(hào)位外,移碼各位與補(bǔ)碼同用移碼表示便于比較數(shù)的大小,移碼大真值就大,移碼小真值用移碼表示便于比較數(shù)的大小,移碼大真值就大,移碼小真值就小。就小。將十進(jìn)制真值將十進(jìn)制真值(127,1,0,1,127)列列表表示成二進(jìn)制數(shù)及原碼、反碼、補(bǔ)碼、表表示成二進(jìn)制數(shù)及原碼、反碼、補(bǔ)碼、移碼值。移碼值。2.1.3數(shù)的定點(diǎn)表示與浮點(diǎn)表示數(shù)的定點(diǎn)表示與浮點(diǎn)表示1.定點(diǎn)表示法定點(diǎn)表示法在計(jì)算機(jī)中小數(shù)點(diǎn)的位置固定不變的數(shù)叫做定點(diǎn)數(shù)。在計(jì)算機(jī)中小數(shù)點(diǎn)的位置固定不變的數(shù)叫做定點(diǎn)數(shù)。1)無符號(hào)定點(diǎn)整數(shù))無符號(hào)定點(diǎn)整數(shù)略去符號(hào)位的正整數(shù),小數(shù)點(diǎn)位于最低位之后,實(shí)際是不存在略去符號(hào)位的正整數(shù),小數(shù)點(diǎn)位于

16、最低位之后,實(shí)際是不存在的。的。若無符號(hào)定點(diǎn)整數(shù)的代碼序列為若無符號(hào)定點(diǎn)整數(shù)的代碼序列為XnXn- 1 X1X0,則有則有 :最大整數(shù)最大整數(shù) 2n+1-1 111.11最小非零正數(shù)最小非零正數(shù) 1 00001表示范圍表示范圍0- 2n+1-1 ;分辨率分辨率12)帶符號(hào)定點(diǎn)整數(shù))帶符號(hào)定點(diǎn)整數(shù)原碼定點(diǎn)整數(shù)表示范圍:原碼定點(diǎn)整數(shù)表示范圍: -(2n-1 ) (2n-1 )補(bǔ)碼定點(diǎn)整數(shù)表示范圍:補(bǔ)碼定點(diǎn)整數(shù)表示范圍: -2n (2n-1 )分辨率均為分辨率均為13)帶符號(hào)定點(diǎn)小數(shù))帶符號(hào)定點(diǎn)小數(shù)原碼定點(diǎn)小數(shù)表示范圍:原碼定點(diǎn)小數(shù)表示范圍: -( 1 2-n ) ( 1 2-n )補(bǔ)碼定點(diǎn)小數(shù)表示

17、范圍:補(bǔ)碼定點(diǎn)小數(shù)表示范圍: -1 ( 1 2-n)分辨率均為:分辨率均為: 2-n以定點(diǎn)整數(shù)為例以定點(diǎn)整數(shù)為例,用數(shù)軸形式說明原碼、反碼、用數(shù)軸形式說明原碼、反碼、補(bǔ)碼表示范圍和可能的數(shù)碼組合情況。補(bǔ)碼表示范圍和可能的數(shù)碼組合情況。 設(shè)機(jī)器字長設(shè)機(jī)器字長16位位,定點(diǎn)表示定點(diǎn)表示,尾數(shù)尾數(shù)15位位,數(shù)符數(shù)符1位位,問:問:(1)定點(diǎn)原碼整數(shù)表示時(shí)定點(diǎn)原碼整數(shù)表示時(shí),最大正數(shù)是多少最大正數(shù)是多少?最小最小負(fù)數(shù)是多少負(fù)數(shù)是多少?(2)定點(diǎn)原碼小數(shù)表示時(shí)定點(diǎn)原碼小數(shù)表示時(shí),最大正數(shù)最大正數(shù)是多少是多少?最小負(fù)數(shù)是多少最小負(fù)數(shù)是多少?(1)定點(diǎn)原碼整數(shù)表示最大正數(shù)值(2151)10(32767)10

18、最小負(fù)數(shù)值(2151)10(32767)10(2)定點(diǎn)原碼小數(shù)表示 最大正數(shù)值(1215)10(0.111.11)2最小負(fù)數(shù)值(1215)10(0.111.11)2關(guān)于比例因子的設(shè)置。關(guān)于比例因子的設(shè)置。(1.1100+1.1000)2.浮點(diǎn)表示法浮點(diǎn)表示法1)浮點(diǎn)數(shù)的格式)浮點(diǎn)數(shù)的格式N=REMN為真值,為真值,RE為比例因子,為比例因子,M為尾數(shù)為尾數(shù)MnM2M1MfEmE2E1Ef階碼E階符數(shù)符尾數(shù)ME為正,尾數(shù)為正,尾數(shù)M擴(kuò)大若干倍,擴(kuò)大若干倍,E為負(fù),尾數(shù)為負(fù),尾數(shù)M縮小若干倍;縮小若干倍;R是是階碼的底,與尾數(shù)的基相同。階碼的底,與尾數(shù)的基相同。階碼二進(jìn)制位數(shù)決定浮點(diǎn)數(shù)的表示范圍,

19、尾數(shù)二進(jìn)制位數(shù)階碼二進(jìn)制位數(shù)決定浮點(diǎn)數(shù)的表示范圍,尾數(shù)二進(jìn)制位數(shù)決定決定浮點(diǎn)數(shù)的精度浮點(diǎn)數(shù)的精度 為了充分利用尾數(shù)部分的有效位數(shù),一般采取規(guī)格化的約定,為了充分利用尾數(shù)部分的有效位數(shù),一般采取規(guī)格化的約定,當(dāng)當(dāng)R=2時(shí),規(guī)格化的含義是滿足條件時(shí),規(guī)格化的含義是滿足條件1/2 |M| 1。對(duì)于正數(shù)和對(duì)于正數(shù)和原碼表示的負(fù)數(shù),規(guī)格化的特征是原碼表示的負(fù)數(shù),規(guī)格化的特征是M1=1;對(duì)于用補(bǔ)碼表示的對(duì)于用補(bǔ)碼表示的負(fù)數(shù),除負(fù)數(shù),除-1/2這個(gè)特例這個(gè)特例(1.10000)外,規(guī)格化的特征外,規(guī)格化的特征M1=0。若浮點(diǎn)數(shù)的格式如下,階碼部分若浮點(diǎn)數(shù)的格式如下,階碼部分m+1位,位,含一位階符,補(bǔ)碼表示

20、,以含一位階符,補(bǔ)碼表示,以2為底;尾數(shù)為底;尾數(shù)部分部分n+1位,含一位數(shù)符,補(bǔ)碼表示規(guī)格位,含一位數(shù)符,補(bǔ)碼表示規(guī)格化,求其典型值化,求其典型值(最小的正數(shù)、負(fù)數(shù),最最小的正數(shù)、負(fù)數(shù),最大的正數(shù)和、負(fù)數(shù)大的正數(shù)和、負(fù)數(shù))。MnM2M1MfEmE2E1Ef階碼E階符數(shù)符尾數(shù)M2.2 2.2 定點(diǎn)加法、減法運(yùn)算定點(diǎn)加法、減法運(yùn)算2.2.12.2.1補(bǔ)碼加減法補(bǔ)碼加減法n用補(bǔ)碼表示的數(shù)進(jìn)行加減運(yùn)算,符號(hào)位直接用補(bǔ)碼表示的數(shù)進(jìn)行加減運(yùn)算,符號(hào)位直接參加運(yùn)算。參加運(yùn)算。n簡化了加減運(yùn)算方法,化簡化了加減運(yùn)算方法,化“減減”為為“加加”,實(shí)現(xiàn)硬件簡單。實(shí)現(xiàn)硬件簡單。1. 基本關(guān)系式基本關(guān)系式 ( X

21、+ Y )補(bǔ)補(bǔ) = X補(bǔ)補(bǔ) + Y補(bǔ)補(bǔ) (1) ( X - Y )補(bǔ)補(bǔ) = X補(bǔ)補(bǔ) + (-Y)補(bǔ)補(bǔ) (2)式(式(1):):操作碼為操作碼為“加加”時(shí),兩數(shù)直接相加。時(shí),兩數(shù)直接相加。3) X= 3 Y= 2 X補(bǔ)補(bǔ)=0 0011 Y補(bǔ)補(bǔ)=1 11100 0001(+1補(bǔ)碼)補(bǔ)碼)2) X= 3 Y= 2 X補(bǔ)補(bǔ)=1 1101 Y補(bǔ)補(bǔ)=1 11101 1011 ( 5補(bǔ)碼)補(bǔ)碼)1) X=3 Y=2 X補(bǔ)補(bǔ)=0 0011 Y補(bǔ)補(bǔ)=0 00100 0101(+5補(bǔ)碼)補(bǔ)碼)4) X= 3 Y= 2 X補(bǔ)補(bǔ)=1 1101 Y補(bǔ)補(bǔ)=0 00101 1111 (1補(bǔ)碼)補(bǔ)碼)例例. 求求(X+Y)補(bǔ)

22、補(bǔ) ( X - Y )補(bǔ)補(bǔ) = X補(bǔ)補(bǔ) + (-Y)補(bǔ)補(bǔ) (2)式(式(2):):操作碼為操作碼為“減減”時(shí),將減轉(zhuǎn)換為加。時(shí),將減轉(zhuǎn)換為加。 1) X= 4 Y= 5 X補(bǔ)補(bǔ)=0 0100 Y補(bǔ)補(bǔ)=1 1011(-Y)補(bǔ)補(bǔ)=0 01010 1001(+9補(bǔ)碼)補(bǔ)碼)2) X= 4 Y= 5 X補(bǔ)補(bǔ)=1 1100 Y補(bǔ)補(bǔ)=0 0101(-Y)補(bǔ)補(bǔ)=1 10111 0111 (9補(bǔ)碼)補(bǔ)碼)例例. 求求(X Y)補(bǔ)補(bǔ)Y補(bǔ)補(bǔ) (Y)補(bǔ)補(bǔ):將將Y Y補(bǔ)補(bǔ)變補(bǔ)變補(bǔ)不管不管Y Y補(bǔ)補(bǔ)為正或負(fù),將其符號(hào)連同為正或負(fù),將其符號(hào)連同尾數(shù)一起各位變反,末位加尾數(shù)一起各位變反,末位加1 1。即將減數(shù)變補(bǔ)后與被減數(shù)

23、相加。即將減數(shù)變補(bǔ)后與被減數(shù)相加。 X補(bǔ)補(bǔ)=0 0100 Y補(bǔ)補(bǔ)=1 1011 X補(bǔ)補(bǔ)=1 1100 Y補(bǔ)補(bǔ)=0 0101注意:某數(shù)的注意:某數(shù)的補(bǔ)碼表示補(bǔ)碼表示與某數(shù)與某數(shù)變補(bǔ)變補(bǔ)的區(qū)別。的區(qū)別。例例. 1 0101. 1 0101原原 1 1011 1 1011補(bǔ)碼表示補(bǔ)碼表示1 00111 0011補(bǔ)補(bǔ) 0 1101 0 1101變補(bǔ)變補(bǔ)例例. . 1 1 0101 0101原原 1 1 1011 1011 0 0101 0 0101原原 0 0101 0 0101補(bǔ)碼表示補(bǔ)碼表示符號(hào)位不變;符號(hào)位不變; 0 0 0101 0101原原 0 0 0101 0101 1 01011 010

24、1原原 1 1 10111011 0 01010 0101原原 0 01010 0101負(fù)數(shù)尾數(shù)改變,負(fù)數(shù)尾數(shù)改變,正數(shù)尾數(shù)不變。正數(shù)尾數(shù)不變。0 00110 0011補(bǔ)補(bǔ) 1 1101 1 11011 1 0011 0011補(bǔ)補(bǔ) 0 0 1101 11010 0 0011 0011補(bǔ)補(bǔ) 1 1 1101 11011 00111 0011補(bǔ)補(bǔ) 0 11010 11010 00110 0011補(bǔ)補(bǔ) 1 11011 1101變補(bǔ)變補(bǔ)符號(hào)位改變,符號(hào)位改變,尾數(shù)改變。尾數(shù)改變。補(bǔ)碼的機(jī)器負(fù)數(shù)補(bǔ)碼的機(jī)器負(fù)數(shù)2. 算法流程算法流程操作數(shù)用補(bǔ)碼表示,符操作數(shù)用補(bǔ)碼表示,符號(hào)位參加運(yùn)算號(hào)位參加運(yùn)算結(jié)果為補(bǔ)碼

25、表示,符號(hào)結(jié)果為補(bǔ)碼表示,符號(hào)位指示結(jié)果正負(fù)位指示結(jié)果正負(fù)X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ)X補(bǔ)補(bǔ)+(-Y)補(bǔ)補(bǔ)ADDSUB2.2.2 溢出判斷溢出判斷一、溢出判別一、溢出判別在什么情況下可能產(chǎn)生溢出?在什么情況下可能產(chǎn)生溢出?兩正數(shù)加,變負(fù)數(shù),上溢(大于機(jī)器所能表示的最大數(shù))兩正數(shù)加,變負(fù)數(shù),上溢(大于機(jī)器所能表示的最大數(shù))兩負(fù)數(shù)加,變正數(shù),下溢(小于機(jī)器所能表示的最小數(shù))兩負(fù)數(shù)加,變正數(shù),下溢(小于機(jī)器所能表示的最小數(shù))例例. .數(shù)數(shù)A A有有4 4位尾數(shù),位尾數(shù),1 1位符號(hào)位符號(hào)SASA 數(shù)數(shù)B B有有4 4位尾數(shù),位尾數(shù),1 1位符號(hào)位符號(hào)SB SB 符號(hào)位參加運(yùn)算符號(hào)位參加運(yùn)算 如何判斷運(yùn)算結(jié)果產(chǎn)生了

26、溢出?如何判斷運(yùn)算結(jié)果產(chǎn)生了溢出?判斷溢出將使用到的信息:判斷溢出將使用到的信息:操作數(shù)的符號(hào)位操作數(shù)的符號(hào)位S SA A和和S SB B結(jié)果符號(hào)結(jié)果符號(hào)SfSf符號(hào)位進(jìn)位符號(hào)位進(jìn)位CfCf尾數(shù)最高位進(jìn)位尾數(shù)最高位進(jìn)位C C正確正確0 00110 0010(1)A=3 B=2 3+2:0 0101 (2)A=10 B=7 10+7: 0 10100 01111 0001 正溢正溢正確正確負(fù)溢負(fù)溢正確正確正確正確(3)A= -3 B= -2-3+(-2):1 1011 1 11011 1110(4)A= -10 B= -7 -10+(-7):0 1111 1 01101 1001(5)A=6 B

27、= -4 6+(-4):0 0010 0 01101 1100(6)A= -6 B=4 -6+4:1 1110 1 10100 0100(2)A=10 B=7 10+7 :0 1010 0 01111 0001 (4)A= -10 B= -7 -10+(-7):0 1111 1 01101 10011. 硬件判斷邏輯一(硬件判斷邏輯一(SA、SB與與Sf的關(guān)系)的關(guān)系)溢出溢出= = S SA AS SB BS Sf fS SA AS Sf fS SB B溢出溢出= = C Cf f C C溢出溢出= = S Sf1f1 S Sf2f22. 硬件判斷邏輯二(硬件判斷邏輯二(Cf與與C的關(guān)系)的

28、關(guān)系)3. 硬件判斷邏輯三(雙符號(hào)位硬件判斷邏輯三(雙符號(hào)位)二、二、 舍入方法舍入方法1. 0舍舍1入(原碼、補(bǔ)碼)入(原碼、補(bǔ)碼)0 00100原原 1 00101原原 1 11011補(bǔ)補(bǔ) 2. 末位恒置末位恒置1(原碼、補(bǔ)碼)(原碼、補(bǔ)碼)0 00100原原 1 11011補(bǔ)補(bǔ) 1 00101原原 0 0010原原 1 0011原原 1 1110補(bǔ)補(bǔ) 0 0011原原 1 0011原原 1 1101補(bǔ)補(bǔ) 1 0011原原 1 1101補(bǔ)補(bǔ) 例例. 保留保留4位尾數(shù):位尾數(shù): 例例. 保留保留4位尾數(shù):位尾數(shù): 三、三、 移位操作移位操作1. 移位類型移位類型邏輯移位:數(shù)碼位置變化,數(shù)值邏

29、輯移位:數(shù)碼位置變化,數(shù)值不變不變。算術(shù)移位算術(shù)移位 1 0 0 0 1 1 1 1循環(huán)左移:循環(huán)左移:0 :數(shù)碼位置變化,數(shù)值:數(shù)碼位置變化,數(shù)值變化變化,符號(hào)位不變。符號(hào)位不變。1 0 0 1 1 1 1 算術(shù)左移算術(shù)左移:1 0 0 1 1 1 1 10 1 1 1 1 0 (-15)(-30) 移位寄存器:移位寄存器:2. 移位邏輯移位邏輯在寄存器中移位在寄存器中移位(串行接串行接口中口中)D4 D3 D2 D1D4 D3 D2 右移右移左移左移 D3 D2 D1 移位門:移位門: 斜位傳送(運(yùn)算器中)。斜位傳送(運(yùn)算器中)。左斜左斜 右斜右斜 4 3 1 2門門4 門門3 門門2 門

30、門1移位寄存器移位寄存器移位門移位門加法器加法器2.2.3定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算一、一、 原碼一位乘法原碼一位乘法 每次用一位乘數(shù)去乘被乘數(shù)。每次用一位乘數(shù)去乘被乘數(shù)。 1.1.算法分析算法分析乘法乘法 部分積累加、移位。部分積累加、移位。例例. 0.11011.10111.1011乘積乘積 P = X P = X Y Y積符積符 S SP P= S= SX X S SY YX原原Y原原每次將一位乘數(shù)所對(duì)應(yīng)的部分積與原部每次將一位乘數(shù)所對(duì)應(yīng)的部分積與原部分積的累加和相加,并移位。分積的累加和相加,并移位。設(shè)置寄存器:設(shè)置寄存器: A A:存放存放部分積累加和部分積累加和, ,最后為最后為乘積

31、高乘積高4 4位位 B B:存放存放被乘數(shù)被乘數(shù) C C:存放存放乘數(shù)乘數(shù)、最后為、最后為乘積低乘積低4 4位位 設(shè)置初值:設(shè)置初值: A = 00.0000A = 00.0000 B = X = 00.1101 B = X = 00.1101 C = Y = .1011 C = Y = .1011 步數(shù)步數(shù) 條件條件 操作操作 A C A C 00.0000 .101 00.0000 .1011 1 1 1)C Cn n=1=1+ +B BC Cn n+ 00.1101+ 00.110100.00.11011101 0.1101 0.1101 0.1010.1011 1 1101 1101

32、1101 1101 0000 0000 1101 1101 0.10001111 0.10001111BC 1101 1101 00.00.011001101 1.10.101 1 0.1101 0.1101 0.100.101 11 12 2)C Cn n=1=1+ +B B+ 00.1101+ 00.11010 01 1. .0011001100.00.100110011111.1.10 0 0.1101 0.1101 0.10.10 01111 0.1101 0.1101 0.10110.1011 1101 1101 1101 1101 0000 0000 1101 1101 0.100

33、01111 0.10001111BC3 3)C Cn n=0=0+0+0+ 00.0000+ 00.000000.00.1001100100.00.01000100111111. .1 14 4)C Cn n=1=1+ +B B+ 00.1101+ 00.11010 01 1. .0001000100.00.1000100011111111X X原原Y Y原原 = 1.10001111= 1.10001111 2. .算法流程算法流程0 0 A A、X BX B、Y CY C、0 CR0 CRC Cn n = 1 = 1 ?CR = n CR = n ?1/21/2(A+BA+B) A A,C

34、 C1/21/2(A+0A+0) A A,C C CR + 1 CRCR + 1 CRYYNN Sx + Sy SSx + Sy SA A 3.3.運(yùn)算規(guī)則運(yùn)算規(guī)則(1)(1)操作數(shù)和結(jié)果用原碼表示;操作數(shù)和結(jié)果用原碼表示;(2)(2)絕對(duì)值運(yùn)算,符號(hào)單獨(dú)處理;絕對(duì)值運(yùn)算,符號(hào)單獨(dú)處理;(3)(3)被乘數(shù)被乘數(shù)( (B)B)、累加和累加和( (A)A)取雙符號(hào)位;取雙符號(hào)位;( (4 4) )乘數(shù)末位乘數(shù)末位C Cn n為判斷位為判斷位, ,其其值值決定下步操作;決定下步操作;(5)(5)若若Cn=1,Cn=1,則部分積加則部分積加B B,并右移一位;并右移一位; 若若Cn=0,Cn=0,則部

35、分積加則部分積加0 0,并右移一位;,并右移一位; ( (6 6) )作作n n次循環(huán)(累加、右移)。次循環(huán)(累加、右移)。二、二、 補(bǔ)碼一位乘法補(bǔ)碼一位乘法 1.1.算法分析算法分析 X X補(bǔ)補(bǔ) = = X X0 0.X.X1 1X X2 2X Xn n (XY) (XY)補(bǔ)補(bǔ) = X= X補(bǔ)補(bǔ).Y= X.Y= X補(bǔ)補(bǔ).Y.Y補(bǔ)補(bǔ) (1 1)Y Y為正:為正:Y Y補(bǔ)補(bǔ) = 0.= 0.Y Y1 1Y Y2 2Y Yn n (XY)(XY)補(bǔ)補(bǔ) = = X X補(bǔ)補(bǔ)(0.(0.Y Y1 1Y Y2 2Y Yn n) )(2 2)Y Y為負(fù):為負(fù):Y Y補(bǔ)補(bǔ) = 1. = 1.Y Y1 1Y Y

36、2 2Y Yn n (XY)(XY)補(bǔ)補(bǔ) = = X X補(bǔ)補(bǔ)(0.(0.Y Y1 1Y Y2 2Y Yn n)+(-X)+(-X)補(bǔ)補(bǔ)(3 3)Y Y符號(hào)任意:符號(hào)任意: ( (XY)XY)補(bǔ)補(bǔ) = = X X補(bǔ)補(bǔ)(0.(0.Y Y1 1Y Y2 2Y Yn n)+(-X)+(-X)補(bǔ)補(bǔ)Y Y0 0符號(hào)位符號(hào)位(4 4)展開為部分積的累加和形式:)展開為部分積的累加和形式:( (XY)XY)補(bǔ)補(bǔ) = = X X補(bǔ)補(bǔ)(0.(0.Y Y1 1Y Y2 2Y Yn n)+(-X)+(-X)補(bǔ)補(bǔ)Y Y0 0 = = X X補(bǔ)補(bǔ)(0.(0.Y Y1 1Y Y2 2Y Yn n)-X)-X補(bǔ)補(bǔ)Y Y0 0

37、 = = X X補(bǔ)補(bǔ)(-(-Y Y0 0+ +2 Y2 Y1 1+ +2 Y2 Y2 2+ + +2 Y2 Yn n) )-1-1 -2-2 - -n n = = X X補(bǔ)補(bǔ) - -Y Y0 0+(+(Y Y1 1-2 Y-2 Y1 1)+()+(2 Y2 Y2 2-2 Y-2 Y2 2)+)+-1-1 -1-1 -2-2-(-(n-1) -nn-1) -n +(+(2 2 Y Yn n-2 Y-2 Yn n) ) = = X X補(bǔ)補(bǔ) ( (Y Y1 1-Y-Y0 0)+2 (Y)+2 (Y2 2-Y-Y1 1)+2 (Y)+2 (Y3 3-Y-Y2 2)+)+-1 -2-1 -2 +2 (0

38、 -+2 (0 -Y Yn n) )- -n n +2 (+2 (0 0 - -Y Yn n) )- -n nY Yn+1n+1 = = X X補(bǔ)補(bǔ) ( (Y Y1 1-Y-Y0 0)+2 ()+2 (Y Y2 2-Y-Y1 1)+2 ()+2 (Y Y3 3-Y-Y2 2)+)+-1 -2-1 -2 +2 (+2 (0 0 - -Y Yn n) )- -n nY Yn+1n+1= X X補(bǔ)補(bǔ) . .( Y Yi+1i+1- -Y Yi i)2)2- -i i)ni=0比較法:用相鄰兩位乘數(shù)比較的結(jié)果決定比較法:用相鄰兩位乘數(shù)比較的結(jié)果決定 + +X X補(bǔ)補(bǔ)、- -X X補(bǔ)補(bǔ)或或+0+0。A0

39、補(bǔ)補(bǔ)=0A1補(bǔ)補(bǔ)=2-1A0補(bǔ)補(bǔ)+(Y Yn+1n+1- -Y Yn n)x補(bǔ)補(bǔ)A2補(bǔ)補(bǔ)=2-1A1補(bǔ)補(bǔ)+(Y Yn n- -Y Yn-1n-1)x補(bǔ)補(bǔ).An補(bǔ)補(bǔ)=2-1An-1補(bǔ)補(bǔ)+(Y Y2 2- -Y Y1 1)x補(bǔ)補(bǔ)XY補(bǔ)補(bǔ)= An補(bǔ)補(bǔ)+(Y Y1 1- -Y Y0 0)x補(bǔ)補(bǔ) 2.2.比較法比較法算法算法Y Yn n( (高位高位) ) Y Yn+1n+1( (低位低位) ) 操作操作( (A A補(bǔ)補(bǔ)為部分積累加和為部分積累加和) ) 0 00 00 10 11 01 01 1 1 1 1/21/2A A補(bǔ)補(bǔ) 1/2( 1/2(A A補(bǔ)補(bǔ)+ +X X補(bǔ)補(bǔ)) ) 1/2( 1/2(A

40、A補(bǔ)補(bǔ)- -X X補(bǔ)補(bǔ)) ) 1/2 1/2A A補(bǔ)補(bǔ)( 0 )( 0 )( 1 )( 1 )(-1 )(-1 )( 0 )( 0 )3.3.運(yùn)算實(shí)例運(yùn)算實(shí)例X=-0.1101,Y=-0.1011,X=-0.1101,Y=-0.1011,求求( (XY)XY)補(bǔ)補(bǔ)。初值:初值:A=00.0000,B=XA=00.0000,B=X補(bǔ)補(bǔ)=11.0011,=11.0011, - -B=(-X)B=(-X)補(bǔ)補(bǔ)=00=00.1101,.1101,C =YC =Y補(bǔ)補(bǔ)=1=1.0101.0101步數(shù)步數(shù) 條件條件 操作操作 A C A C 00.0000 1.010 00.0000 1.0101 1 1

41、 1)1 01 0- -B BC Cn n+ 00.1101+ 00.110100.00.1101110100.00.011001101 11.011.0101012 2)0 10 1+ +B B+ 11.0011+ 11.001111.11.1001100111.11.1100110011111.01.010103 3)1 01 0- -B B+ 00.1101+ 00.110100.00.1001100100.00.010001001111111.1.01014 4)0 10 1+ +B B+ 11.0011+ 11.001111.11.0111011111.11.101110111111

42、11111.01.00 0 C Cn+1n+1C Cn nC Cn+1n+15 5)1 01 0- -B B+ 00.1101+ 00.1101( (XY)XY)補(bǔ)補(bǔ) = 0.10001111= 0.1000111100.00.1000100011111111(1)(1)A A、B B取雙符號(hào)位,符號(hào)參加運(yùn)算;取雙符號(hào)位,符號(hào)參加運(yùn)算;(2)(2)C C取單符號(hào)位,符號(hào)參加移位。取單符號(hào)位,符號(hào)參加移位。(3)(3)C C末位設(shè)置附加位末位設(shè)置附加位C Cn+n+1 1,初值為初值為0 0,C Cn nC Cn+n+1 1組成判組成判 斷位,決定運(yùn)算操作斷位,決定運(yùn)算操作;(4)(4)作作n

43、n位運(yùn)算位運(yùn)算, , 需作第需作第n+1n+1步步, ,最后一步不移位。最后一步不移位。 4.4.運(yùn)算規(guī)則運(yùn)算規(guī)則5. .算法流程算法流程0 0 A A、XX補(bǔ)補(bǔ) B B、YY補(bǔ)補(bǔ) C C、0 CR0 CRY Yn n Y Yn+1n+1 = =?CR=n+1 CR=n+1 ?Ai補(bǔ)補(bǔ)不變不變Ai補(bǔ)、補(bǔ)、Y右移一位右移一位,i+1 CRCR00YN1110Ai補(bǔ)補(bǔ) +-X補(bǔ)補(bǔ)Ai補(bǔ)補(bǔ) +X補(bǔ)補(bǔ)01結(jié)束結(jié)束2.3.4 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算手算:除數(shù)右移,夠減商手算:除數(shù)右移,夠減商1,相減相減,不夠減商不夠減商0,不減,不減例:例:-0.1001/0.1011商商-0.1101,余數(shù),余數(shù)0

44、.00000001計(jì)算機(jī)實(shí)現(xiàn)余數(shù)左移,夠減商計(jì)算機(jī)實(shí)現(xiàn)余數(shù)左移,夠減商1,不夠減商,不夠減商0計(jì)算機(jī)要解決的問題:計(jì)算機(jī)要解決的問題:如何判斷夠減?(先判后減和先減后判)如何判斷夠減?(先判后減和先減后判)如何處理符號(hào)位?如何處理符號(hào)位?如何提高運(yùn)算速度?如何提高運(yùn)算速度?一、一、 原碼恢復(fù)余數(shù)法原碼恢復(fù)余數(shù)法1.1.算法算法 比較兩數(shù)大小可用減法試探。比較兩數(shù)大小可用減法試探。2 2余數(shù)余數(shù)- -除數(shù)除數(shù)= =新余數(shù)新余數(shù)為正為正: :夠減夠減, ,商商1 1。下一步。下一步作作r ri+1i+1= =2 2r ri i-Y-Y為負(fù)為負(fù): :不夠減不夠減, ,商商0,0,恢復(fù)恢復(fù)原余數(shù)。原余

45、數(shù)。2.2.實(shí)例實(shí)例X=-0.10110X=-0.10110,Y=0.11111Y=0.11111,求求X/Y,X/Y,給出商給出商Q Q和余數(shù)和余數(shù)R R。設(shè)置:設(shè)置:A A:被除數(shù)、余數(shù),被除數(shù)、余數(shù),B B:除數(shù),除數(shù),C C:商商初值:初值:A= X = 00.10110A= X = 00.10110 B= Y = 00.11111 B= Y = 00.11111 C= Q = 0.00000C= Q = 0.00000 - -B= 11.00001B= 11.00001步數(shù)步數(shù) 條件條件 操作操作 A C A C 00.10110 0.0000000.10110 0.00000 1

46、1)0 0- -B B 01.01100 01.01100+11.00001+11.0000100.0110100.011010.00000.00001 12 2)1 1 - -B B00.1101000.11010+11.00001+11.0000111.1101111.110110.0000.00010103 3)恢復(fù)余數(shù)恢復(fù)余數(shù)+ +B B+00.11111+00.1111100.1101000.1101001.1010001.101000.000.001011014 4)0 0- -B B +11.00001+11.0000100.1010100.10101C Cn nS SA AQ

47、Q1 1 Q Q2 2 Q Q3 3 r r0 02 2r r0 0r r1 12 2r r1 1r r2 2r r2 22 2r r2 2r r3 3步數(shù)步數(shù) 條件條件 操作操作 A C A C 00.10101 0.0000.10101 0.00101 101 5 5)0 0- -B B 01.01010 01.01010+11.00001+11.0000100.0101100.010110.00.0101110116 6)1 1 - -B B00.1011000.10110+11.00001+11.0000111.1011111.101110.0.10110101107 7)恢復(fù)余數(shù)恢復(fù)

48、余數(shù)+ +B B+00.11111+00.1111100.1011000.10110Q= -0.10110Q= -0.10110C Cn nQ Q4 4 Q Q5 5 Q Q3 3 r r3 32 2r r3 3r r4 42 2r r4 4r r5 5r r5 5R= 0.10110R= 0.101102 2-5-5X/Y=-0.10110+X/Y=-0.10110+-0.10110-0.101102 2-5-5 0.11111 0.111113.3.說明說明(1 1)A A、B B雙符號(hào)位,裝雙符號(hào)位,裝X X與與Y Y的絕對(duì)值的絕對(duì)值,|,|X|X|小于小于|Y| |Y| 。(2)(2)

49、若最后一步所得余數(shù)為負(fù),則應(yīng)恢復(fù)余數(shù),以若最后一步所得余數(shù)為負(fù),則應(yīng)恢復(fù)余數(shù),以保證保證r0r0。(3 3)運(yùn)算結(jié)束后,余數(shù)乘以運(yùn)算結(jié)束后,余數(shù)乘以2 2- -n n ,與被除數(shù)同號(hào)。與被除數(shù)同號(hào)。第二步第二步: :2 2r r1 1-B=-B=r r2 200第三步第三步: :r r2 2+B=+B=r r2(2(恢復(fù)余數(shù)恢復(fù)余數(shù)) )第四步第四步: :2 2r r2 2-B=-B=r r3 32 2r r2 2-B=2(-B=2(r r2 2+B)-B+B)-B =2 =2r r2 2+B=+B=r r3 3 第二步第二步: :2 2r r1 1-B=-B=r r2 200第三步第三步:

50、:2 2r r2 2+B=+B=r r3 3 ( (不恢復(fù)余數(shù)不恢復(fù)余數(shù)) )二、二、 原碼不恢復(fù)余數(shù)法原碼不恢復(fù)余數(shù)法(加減交替法加減交替法)1.1.算法分析算法分析恢復(fù)余數(shù)法恢復(fù)余數(shù)法不恢復(fù)余數(shù)法不恢復(fù)余數(shù)法2.2.算法算法取絕對(duì)值相除,符號(hào)位單獨(dú)處理取絕對(duì)值相除,符號(hào)位單獨(dú)處理2 2)| |X|X|小于小于|Y| |Y| 3 3)根據(jù)余數(shù)符號(hào)判斷上商,為正商)根據(jù)余數(shù)符號(hào)判斷上商,為正商1 1,為負(fù)商,為負(fù)商0 04 4)ri+1=2ri+(1-2Qi)Yri+1=2ri+(1-2Qi)Yriri為正,則為正,則QiQi為為1 1,第,第i+1i+1步作步作2 2ri-Yri-Y;rir

51、i為負(fù),則為負(fù),則QiQi為為0 0,第,第i+1i+1步作步作2 2ri+Yri+Y。5 5)求求n n位商,做位商,做n n步操作;若第步操作;若第n n步余數(shù)為負(fù),則做第步余數(shù)為負(fù),則做第n+1n+1步恢復(fù)余步恢復(fù)余數(shù),不移位,最終余數(shù)符號(hào)與被除數(shù)相同。數(shù),不移位,最終余數(shù)符號(hào)與被除數(shù)相同。3.3.實(shí)例實(shí)例X=0.10110,Y=-0.11111X=0.10110,Y=-0.11111,求求X/YX/Y,給出商給出商Q Q和余數(shù)和余數(shù)R R。初值:初值:A= X = 00.10110A= X = 00.10110 B= Y = 00.11111 B= Y = 00.11111 C= Q

52、= 0.00000C= Q = 0.00000 - -B=11.00001B=11.00001步數(shù)步數(shù) 條件條件 操作操作 A C A C 00.10110 0.0000000.10110 0.00000 1 1)為正為正- -B B 01.01100 01.01100+11.00001+11.0000100.0110100.011010.00000.00001 12 2)為負(fù)為負(fù) - -B B00.1101000.11010+11.00001+11.0000111.1101111.110110.0000.00010103 3)+ +B B+00.11111+00.1111111.101101

53、1.101100.000.00101101為正為正00.1010100.10101C Cn n r rf fQ Q1 1 Q Q2 2 Q Q3 3 r r0 02 2r r0 0r r1 12 2r r1 1r r2 22 2r r2 2r r3 34 4)為正為正- -B B 01.01010 01.01010+11.00001+11.0000100.0101100.010110.00.010111011Q Q4 4 2 2r r3 3r r4 4步數(shù)步數(shù) 條件條件 操作操作 A C A C 00.01011 0.000.01011 0.01011 1011 6 6)為負(fù)為負(fù) 恢復(fù)余數(shù)恢復(fù)

54、余數(shù)+ +B B+00.11111+00.1111100.1011000.10110Q= -0.10110Q= -0.10110C Cn nQ Q4 4 r r4 45 5)為正為正- -B B 00.10110 00.10110+11.00001+11.0000111.1011111.101110.0.1011010110Q Q5 5 2 2r r4 4r r5 5r r5 5R= 0.10110R= 0.101102 2-5-5X/Y=-0.10110+X/Y=-0.10110+ 0.10110 0.101102 2-5-5 -0.11111 -0.111114. .算法流程算法流程|X|

55、 A|X| A、|Y| B|Y| B、0 0 C C、0 CR0 CR A0 A0A0?YYNA+BAN三、補(bǔ)碼不恢復(fù)余數(shù)除法三、補(bǔ)碼不恢復(fù)余數(shù)除法1.算法算法X補(bǔ)補(bǔ)Y補(bǔ)補(bǔ)數(shù)符數(shù)符商符商符第一步第一步操作操作r補(bǔ)補(bǔ)Y補(bǔ)數(shù)補(bǔ)數(shù)符符上商上商 下一步操作下一步操作同號(hào)同號(hào)0減減同號(hào)同號(hào)異號(hào)異號(hào)102 2 riri補(bǔ)補(bǔ)- -Y Y補(bǔ)補(bǔ)2 2 riri補(bǔ)補(bǔ)+ +Y Y補(bǔ)補(bǔ)異號(hào)異號(hào)1加加同號(hào)同號(hào)異號(hào)異號(hào)102 2 riri補(bǔ)補(bǔ)- -Y Y補(bǔ)補(bǔ)2 2 riri補(bǔ)補(bǔ)+ +Y Y補(bǔ)補(bǔ)1)第一步操作:被除數(shù)與除數(shù)同號(hào),商)第一步操作:被除數(shù)與除數(shù)同號(hào),商1,2*被除數(shù)減除數(shù),被除數(shù)減除數(shù),被除數(shù)與除數(shù)異號(hào),商被除

56、數(shù)與除數(shù)異號(hào),商0, 2*被除數(shù)加除數(shù)。被除數(shù)加除數(shù)。2)余數(shù)和除數(shù)同號(hào),商)余數(shù)和除數(shù)同號(hào),商1,余數(shù)左移,余數(shù)左移1位,下次減除數(shù);余數(shù)和位,下次減除數(shù);余數(shù)和除數(shù)異號(hào),商除數(shù)異號(hào),商0,余數(shù)左移,余數(shù)左移1位,下次加除數(shù);位,下次加除數(shù);3)商的符號(hào)在第一次試算時(shí)求出,但僅僅是假商,只是為除法)商的符號(hào)在第一次試算時(shí)求出,但僅僅是假商,只是為除法做準(zhǔn)備工作,因此為得到做準(zhǔn)備工作,因此為得到n位商,共作位商,共作n+1步,第一次上的商移步,第一次上的商移出寄存器,但多數(shù)情況下可以得到出寄存器,但多數(shù)情況下可以得到n-1位商即可。位商即可。4)商的修正:在精度要求不高的場合,將商的末尾恒置)

57、商的修正:在精度要求不高的場合,將商的末尾恒置1,同,同時(shí)符號(hào)位加時(shí)符號(hào)位加1,也即是,也即是n-1假商加假商加(1+2-n)。3.實(shí)例實(shí)例X=+0.1000X=+0.1000,Y=-0.1010Y=-0.1010,求求 X/Y=X/Y=?A=XA=X補(bǔ)補(bǔ)=00.1000=00.1000B=YB=Y補(bǔ)補(bǔ)=11.0110=11.0110- -B=00.1010B=00.1010C=QC=Q補(bǔ)補(bǔ)=0.0000=0.00002.3.5浮點(diǎn)四則運(yùn)算浮點(diǎn)四則運(yùn)算1. 浮點(diǎn)加減運(yùn)算浮點(diǎn)加減運(yùn)算步驟:步驟:1 1). .檢查能否簡化操作。檢查能否簡化操作。 判操作數(shù)是否為判操作數(shù)是否為0 0尾數(shù)為尾數(shù)為0

58、0階碼下溢階碼下溢2 2). .對(duì)階對(duì)階例例. .(1)(1)對(duì)階:使兩數(shù)階碼相等對(duì)階:使兩數(shù)階碼相等( (小數(shù)點(diǎn)實(shí)際位置對(duì)齊,小數(shù)點(diǎn)實(shí)際位置對(duì)齊, 尾數(shù)對(duì)應(yīng)權(quán)值相同尾數(shù)對(duì)應(yīng)權(quán)值相同) )。(2)(2)對(duì)階規(guī)則:對(duì)階規(guī)則:小階向大階對(duì)齊小階向大階對(duì)齊。2 2 0.10010.10012 2 0.11010.11012 23 32 2 0.01000.01003 32 2 0.11010.11013 33 3). .尾數(shù)加減尾數(shù)加減. .(1) 1.0001(1) 1.0001 +0.1001 +0.1001(4)(4)階碼比較:比較線路或減法階碼比較:比較線路或減法。(3)(3)對(duì)階操作:對(duì)階

59、操作:小階階碼增大,尾數(shù)右移。小階階碼增大,尾數(shù)右移。例例. .AEBAEBE E,則則B BE E+1 B+1 BE E,B BM M,直到直到B BE E=A=AE E1.10101.1010(2) 0.0101(2) 0.0101 +0.1101 +0.1101A AM M + B+ BM M A AM M4 4). .結(jié)果規(guī)格化結(jié)果規(guī)格化 M 1/2M 1M 1應(yīng)應(yīng)左移規(guī)格化左移規(guī)格化應(yīng)應(yīng)右移規(guī)格化右移規(guī)格化A AE E-1 A-1 AE E若若 A Af1f1A Af2f2=1,=1,則右規(guī):則右規(guī):(1) 11.0001(1) 11.0001 +00.1001 +00.100111

60、.101011.1010(2) 00.0101(2) 00.0101 +00.1101 +00.110101.001001.0010(-1/2(-1/2除外除外) )A Af1f1A Af2 f2 A A1 1A AM M1111. .1 1010010若若 A Af1f1A Af2f2A A1 1+A+Af1f1A Af2f2A A1 1=1,=1,則左規(guī):則左規(guī):0101.0010.0010A Af1f1A Af2 f2 A AM MA AE E+1 A+1 AE EA AE E+B+BE EA AB=2 B=2 ( (A AM MB BM M) ) 2. 浮點(diǎn)乘法運(yùn)算浮點(diǎn)乘法運(yùn)算步驟:步

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論