計(jì)算機(jī)組成原理 No4 數(shù)據(jù)表示和運(yùn)算-2_第1頁(yè)
計(jì)算機(jī)組成原理 No4 數(shù)據(jù)表示和運(yùn)算-2_第2頁(yè)
計(jì)算機(jī)組成原理 No4 數(shù)據(jù)表示和運(yùn)算-2_第3頁(yè)
計(jì)算機(jī)組成原理 No4 數(shù)據(jù)表示和運(yùn)算-2_第4頁(yè)
計(jì)算機(jī)組成原理 No4 數(shù)據(jù)表示和運(yùn)算-2_第5頁(yè)
已閱讀5頁(yè),還剩65頁(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)介

計(jì)算機(jī)組成原理PrinciplesofComputerComposition2第二部分?jǐn)?shù)據(jù)的表示和運(yùn)算

2.1數(shù)制與編碼

2.2定點(diǎn)數(shù)表示和運(yùn)算

2.3浮點(diǎn)數(shù)表示和運(yùn)算

2.4算術(shù)邏輯單元ALU3

2.2定點(diǎn)數(shù)表示和運(yùn)算

2.2.1

定點(diǎn)數(shù)的表示

1、無(wú)符號(hào)數(shù)的表示;

2、有符號(hào)數(shù)的表示。

2.2.2

定點(diǎn)數(shù)的運(yùn)算

1、定點(diǎn)數(shù)的位移運(yùn)算;

2、原碼定點(diǎn)數(shù)的加/減運(yùn)算;

3、補(bǔ)碼定點(diǎn)數(shù)的加/減運(yùn)算;4、定點(diǎn)數(shù)的乘法運(yùn)算42.2.1

定點(diǎn)數(shù)的表示定點(diǎn)數(shù)的表示所有數(shù)據(jù)的小數(shù)點(diǎn)位置固定不變理論上位置可以任意,但實(shí)際上數(shù)據(jù)表示有兩種方法(小數(shù)點(diǎn)位置固定-定點(diǎn)表示法/定點(diǎn)格式):純小數(shù)純整數(shù)定點(diǎn)數(shù)表示:有符號(hào)數(shù)無(wú)符號(hào)數(shù)52.2.1

定點(diǎn)數(shù)的表示1、無(wú)符號(hào)數(shù)的表示在寄存器中的每一位均可用來(lái)存放數(shù)值。8位0~25516位0~6553562.2.1

定點(diǎn)數(shù)的表示2、有符號(hào)數(shù)的表示定點(diǎn)純小數(shù)x0x1x2x3…xn-1xn符號(hào)量值小數(shù)點(diǎn)固定于符號(hào)位之后,不需專門存放位置表示數(shù)的范圍是0≤|x|≤1-2-n72.2.1

定點(diǎn)數(shù)的表示純小數(shù)的表示范圍x=0.00...0

x=1.00...0

x=0正0和負(fù)0都是0x=0.11...1x=1-2-n

最大x=0.00...01x=2-n

最接近0的正數(shù)x=1.00...01

x=-2-n最接近0的負(fù)數(shù)x=1.11...1

x=-(1-2-n

最小82.2.1

定點(diǎn)數(shù)的表示定點(diǎn)純整數(shù)x0x1x2x3…xn-1xn符號(hào)量值小數(shù)點(diǎn)固定于最后一位之后,不需專門存放位置表示數(shù)的范圍是0≤|x|≤2n-192.2.1

定點(diǎn)數(shù)的表示定點(diǎn)表示法的特點(diǎn)定點(diǎn)數(shù)表示數(shù)的范圍受字長(zhǎng)限制,表示數(shù)的范圍有限;定點(diǎn)表示的精度有限機(jī)器中,常用定點(diǎn)純整數(shù)表示;常用的有:原碼、補(bǔ)碼、反碼和移碼102.2.1

定點(diǎn)數(shù)的表示3、原碼表示(1)定義x

為真值n

為整數(shù)的位數(shù)整數(shù)[x]原

=0,x2n

>x≥02n

x0≥x

>2n帶符號(hào)的絕對(duì)值表示如x=+1110[x]原=0,1110[x]原=24+1110=1,1110x=1110用逗號(hào)將符號(hào)位和數(shù)值位隔開(kāi)112.2.1

定點(diǎn)數(shù)的表示小數(shù)x

為真值x1>x≥0[x]原

=1–x0≥x

>1x=+0.1101[x]原=0.1101x=0.1101[x]原=1(0.1101)=1.1101x=0.1000000[x]原=1(0.1000000)=1.1000000x=+0.1000000[x]原=0.1000000用小數(shù)點(diǎn)

將符號(hào)位和數(shù)值位隔開(kāi)用小數(shù)點(diǎn)

將符號(hào)位和數(shù)值位隔開(kāi)122.2.1

定點(diǎn)數(shù)的表示(2)舉例例1已知[x]原

=1.0011求x解:x=1[x]原

=11.0011=0.00110.0011由定義得例2已知[x]原

=1,1100求xx=24[x]原

=100001,1100=1100–1100解:由定義得132.2.1

定點(diǎn)數(shù)的表示例3已知[x]原

=0.1101求x例4求x=0的原碼解:設(shè)x=+0.0000解:∴x=+0.1101同理,對(duì)于整數(shù)[+0]原

=0,0000[+0.0000]原

=0.0000x=0.0000[0.0000]原

=1.0000[0]原

=1,0000∴[+0]原≠[0]原

根據(jù)定義∵[x]原

=0.1101142.2.1

定點(diǎn)數(shù)的表示(3)原碼的表示范圍對(duì)于定點(diǎn)整數(shù):

一個(gè)n+1位原碼能表示的最大正數(shù)為01…11,即2n-1;能表示的最小數(shù)為絕對(duì)值最大的負(fù)數(shù)111…1,即-(2n-1)。所以原碼能表示的數(shù)值范圍為:-(2n-1)≤x≤2n-1。對(duì)于定點(diǎn)小數(shù):

一個(gè)n+1位定點(diǎn)小數(shù)原碼能表示的最大正數(shù)為0.1…11,即1-2-n;能表示的最小數(shù)為絕對(duì)值最大的負(fù)數(shù)為1.11…1,即-(1-2-n)。定點(diǎn)小數(shù)原碼的數(shù)值范圍為:

-(1-2-n)≤x≤1-2-n。152.2.1

定點(diǎn)數(shù)的表示(4)原碼的特點(diǎn):簡(jiǎn)單、直觀但是用原碼做加法時(shí),會(huì)出現(xiàn)如下問(wèn)題:加法正正加加法正負(fù)加法負(fù)正加法負(fù)負(fù)減減加

要求數(shù)1數(shù)2實(shí)際操作結(jié)果符號(hào)正可正可負(fù)可正可負(fù)負(fù)能否只做加法?

找到一個(gè)與負(fù)數(shù)等價(jià)的正數(shù)

來(lái)代替這個(gè)負(fù)數(shù)162.2.1

定點(diǎn)數(shù)的表示(5)原碼的性質(zhì)1)原碼的最高位表示數(shù)的符號(hào),0表示正號(hào),1表示負(fù)號(hào)。假設(shè)小數(shù)X的原碼為:[X]原

=XS.Xn-1Xn-2…X2X1X0,Xs是符號(hào)位,可用下式來(lái)表示一個(gè)數(shù)的原碼:

[X]原

=Xs+|X|2)對(duì)于定點(diǎn)小數(shù),把Xs作為數(shù)值位看待時(shí),其位權(quán)為1,則有:當(dāng)Xs=0時(shí),1>[X]原≥0,故1>X=[X]原≥0;當(dāng)Xs=1時(shí),2>[X]原≥1,故0≥1-[X]原>-1

即2>[X]原≥0,其范圍是:0~2-2-(n-1)

,真值為1>X>-1,其范圍是:-(1-2-(n-1))~+(1-2-(n-1))。

3)0不唯一定點(diǎn)小數(shù)[+0]原=0.0…0[-0]原=1.0…0

整數(shù)[+0]原=00…0[-0]原=10…0172.2.1

定點(diǎn)數(shù)的表示4.補(bǔ)碼表示法(1)補(bǔ)的概念

時(shí)鐘逆時(shí)針-363順時(shí)針+9615-123可見(jiàn)3可用+9代替記作3≡+9(mod12)同理4≡+8(mod12)5≡+7(mod12)

時(shí)鐘以

12為模減法加法稱+9是–3以12為模的補(bǔ)數(shù)182.2.1

定點(diǎn)數(shù)的表示再如:79-38=4179+62=141

如果要求是兩位十進(jìn)制運(yùn)算器,多余的100將自動(dòng)丟棄。所以有79-38=79+62這里的12和100,在數(shù)學(xué)上叫做模。模是指一個(gè)計(jì)量系統(tǒng)的測(cè)量范圍,其大小以計(jì)量進(jìn)制的基數(shù)為底,位數(shù)為指數(shù)的冪。兩位十進(jìn)制數(shù)測(cè)量范圍0~99,溢出量是100,模就是102=100。192.2.1

定點(diǎn)數(shù)的表示結(jié)論一個(gè)負(fù)數(shù)加上“?!奔吹迷撠?fù)數(shù)的補(bǔ)兩個(gè)互為補(bǔ)數(shù)的數(shù)它們絕對(duì)值之和即為模數(shù)計(jì)數(shù)器(模16)10110000?–101110110000+0101101110000自然去掉可見(jiàn)1011可用+0101代替記作1011≡+0101(mod24)同理011≡+101(mod23)0.1001≡+1.0111(mod2)202.2.1

定點(diǎn)數(shù)的表示(2)補(bǔ)碼定義整數(shù)

x

為真值,n

為整數(shù)的位數(shù)例如:x=+1010

則[x]補(bǔ)

=0,1010[x]補(bǔ)

=0,x2n

>x≥02n+1+x0>x≥2n(mod2n+1)x=1011000[x]補(bǔ)

=27+1+(1011000)=10000000010110001,0101000用逗號(hào)

將符號(hào)位和數(shù)值位隔開(kāi)212.2.1

定點(diǎn)數(shù)的表示小數(shù)x

為真值x=+0.1110[x]補(bǔ)

=x1>x≥02+x0>x≥1(mod2)如[x]補(bǔ)

=0.1110x=0.11000001.0100000[x]補(bǔ)

=2+(0.1100000)=10.00000000.1100000用小數(shù)點(diǎn)

將符號(hào)位和數(shù)值位隔開(kāi)222.2.1

定點(diǎn)數(shù)的表示(3)求補(bǔ)碼的快捷方式=100000=1,011010101+1=1,0110

又[x]原

=1,1010則[x]補(bǔ)

=24+11010=11111+11010=1111110101010+1設(shè)x=1010時(shí)當(dāng)真值為負(fù)時(shí),補(bǔ)碼可用原碼除符號(hào)位外,每位取反,末位加1

求得232.2.1

定點(diǎn)數(shù)的表示(4)舉例解:x=+0.0001解:由定義得x=[x]補(bǔ)

–2=1.0001–10.0000[x]原

=1.1111例6已知[x]補(bǔ)

=1.0001求x[x]補(bǔ)

[x]原

?由定義得例5已知[x]補(bǔ)

=0.0001求x∴x=0.1111–=0.1111–242.2.1

定點(diǎn)數(shù)的表示已知[x]補(bǔ)

=1,1110求x由定義:x=[x]補(bǔ)

–24+1

=1,1110–100000=–0010[x]補(bǔ)

[x]原

?∴x=0010[x]原

=1,0010當(dāng)真值為負(fù)時(shí),原碼可用補(bǔ)碼除符號(hào)位外,每位取反,末位加1

求得252.2.1

定點(diǎn)數(shù)的表示“0”的補(bǔ)碼表示法當(dāng)x=0時(shí),

[+0.0000]補(bǔ)=0.0000

[-0.0000]補(bǔ)=2+(-0.0000)=10.0000-0.0000=0.0000顯然[+0]補(bǔ)=[-0]補(bǔ)=0.0000,即補(bǔ)碼中的“零”只有一種表示表示形式。262.2.1

定點(diǎn)數(shù)的表示(5)補(bǔ)碼的表數(shù)范圍。一個(gè)n+1位整數(shù)補(bǔ)碼能表示的最大數(shù)是011…1,即2n-1;能表示的最小數(shù)為100…0,即-2n。所以它能表示的數(shù)值范圍是:-2n≤x≤2n-1

一個(gè)n+1位小數(shù)補(bǔ)碼能表示的最大數(shù)是0.11…1,即1-2-n;能表示的最小數(shù)為1.00…0,即-1。所以它能表示的數(shù)值范圍是:-1≤x≤1-2-n

對(duì)于小數(shù),若x=-1,則根據(jù)小數(shù)補(bǔ)碼定義,有[x]補(bǔ)=2+x=10.0000-1.0000=1.0000??梢?jiàn),-1本不屬于小數(shù)范圍,但卻有[-1]補(bǔ)存在(其實(shí)在小數(shù)補(bǔ)碼定義中已指明),這是由于補(bǔ)碼中的零只有一種表示形式,故它比原碼能多表示一個(gè)“-1”。272.2.1

定點(diǎn)數(shù)的表示(6)補(bǔ)碼的性質(zhì)1)在補(bǔ)碼表示法中,0的補(bǔ)碼是唯一的,即 整數(shù)0[+0]補(bǔ)=00…0 [-0]補(bǔ)=2n+1-00…0=2n+1=00…0(mod2n+1)

小數(shù)0[+0]補(bǔ)=0.00…0 [-0]補(bǔ)=2-0.00…0=2=0.00…0(mod2)2)假設(shè)一整數(shù)X的補(bǔ)碼表示為:[X]補(bǔ)=XSXn-1Xn-2…X1X0,XS是補(bǔ)碼的符號(hào)位,標(biāo)志整數(shù)X的符號(hào),XS=0時(shí),X為正數(shù);XS=1時(shí),X為負(fù)數(shù)。

3)補(bǔ)碼的表示范圍是: 正整數(shù)2n>X≥0

負(fù)整數(shù)0>X≥-2n

負(fù)數(shù)的范圍比正數(shù)范圍大,即多表示一個(gè)數(shù)-2n。當(dāng)X=-2n時(shí),它的補(bǔ)碼為:

[X]補(bǔ)

=[-2n]補(bǔ)

=2n+1-2n=2n=100…0282.2.1

定點(diǎn)數(shù)的表示5、反碼表示法

(1)定義:整數(shù)反碼[x]反

=0,x2n

>x≥0(2n+1–1)+x0≥x

>2n(mod2n+1

1)x

為真值,n

為整數(shù)的位數(shù)如x=+1101[x]反

=0,1101=1,0010x=1101[x]反

=(24+11)1101=111111101292.2.1

定點(diǎn)數(shù)的表示小數(shù)反碼[x]反

=x1>x≥0(2–2-n)+x0≥x

>1(mod22-n)x

為真值x=+0.1101[x]反

=0.1101x=0.1010[x]反

=(22-4)0.1010=1.11110.1010=1.0101如302.2.1

定點(diǎn)數(shù)的表示(2)舉例例:求0的反碼設(shè)x=+0.0000x=–0.0000則:[+0.0000]反=0.0000則:[–0.0000]反=1.1111∴[+0]反≠[–0]反

解:同理,對(duì)于整數(shù)[+0]反=0,0000[–0]反=1,1111例:已知[x]反

=1,1110求x由定義得x=[x]反–(24+1–1)=1,1110–11111=–0001例:已知[x]反

=0,1110求x解:由定義得x=+1110解:312.2.1

定點(diǎn)數(shù)的表示(3)“0”的反碼表示法當(dāng)x=0時(shí),

[+0.0000]反=0.0000

[-0.0000]反=(10.0000-0.0001)-0.0000=1.1111可見(jiàn)[+0]反不等于[-0]反,即反碼中的“零”也有兩種表示形式。(4)反碼的表數(shù)范圍定點(diǎn)整數(shù)反碼的數(shù)值范圍為:-(2n-1)≤x≤2n-1。定點(diǎn)小數(shù)原碼的數(shù)值范圍為:-(1-2-n)≤x≤1-2-n。

實(shí)際上,反碼也可看作是mod(2-2-n)(對(duì)于小數(shù))或mod(2n+1-1)(對(duì)于整數(shù))的補(bǔ)碼。與補(bǔ)碼相比,僅在末位差1,因此有些書上稱小數(shù)的補(bǔ)碼為2的補(bǔ)碼,而稱小數(shù)的反碼為1的補(bǔ)碼。322.2.1

定點(diǎn)數(shù)的表示三種機(jī)器數(shù)的小結(jié)最高位為符號(hào)位,書寫上用“,”(整數(shù))或“.”(小數(shù))將數(shù)值部分和符號(hào)位隔開(kāi)對(duì)于正數(shù),原碼=補(bǔ)碼=反碼對(duì)于負(fù)數(shù),符號(hào)位為1,其數(shù)值部分:原碼除符號(hào)位外每位取反末位加1補(bǔ)碼原碼除符號(hào)位外每位取反反碼332.2.1

定點(diǎn)數(shù)的表示例題:已知[y]補(bǔ)求[y]補(bǔ)解:<Ⅰ>[y]補(bǔ)

=0.y1

y2

yn

y=0.y1

y2…yn

所以

-y=-0.y1

y2…yn[y]補(bǔ)

=1.y1y2

yn+2-n<Ⅱ>[y]補(bǔ)

=1.y1

y2

yn所以

[y]原

=1.y1

y2

yn+2-ny=(0.y1

y2

yn+2-n)所以

y=0.y1y2

yn+2-n……[y]補(bǔ)

=0.y1y2

yn+2-n[y]補(bǔ)連同符號(hào)位在內(nèi),每位取反,末位加1即得[-

y]補(bǔ)342.2.1

定點(diǎn)數(shù)的表示6、移碼表示補(bǔ)碼表示很難直接判斷其真值大小如十進(jìn)制x=+21x=–21x=+31x=–31x+25+10101+100000+11111+10000010101+10000011111+100000大大錯(cuò)錯(cuò)大大正確正確0,101011,010110,111111,00001+10101–10101+11111–11111=110101=001011=111111=000001二進(jìn)制補(bǔ)碼352.2.1

定點(diǎn)數(shù)的表示(1)移碼定義

移碼在數(shù)軸上的表示[x]移

=2n+x(2n>x≥2n)x

為真值,n

為整數(shù)的位數(shù)[x]移碼2n+1–12n2n

–1–2n00真值如x=10100[x]移

=25+10100=1,10100用逗號(hào)將符號(hào)位和數(shù)值位隔開(kāi)x=–10100[x]移

=25–10100=0,0110036練習(xí)題1、一個(gè)C語(yǔ)言程序在一臺(tái)32位機(jī)器上運(yùn)行。程序中定義了三個(gè)變量xyz,其中x和z是int型,y為short型。當(dāng)x=127,y=-9時(shí),執(zhí)行賦值語(yǔ)句z=x+y后,xyz的值分別是

A.X=0000007FH,y=FFF9H,z=00000076H

B.X=0000007FH,y=FFF9H,z=FFFF0076H

C.X=0000007FH,y=FFF7H,z=FFFF0076H

D.X=0000007FH,y=FFF7H,z=00000076H37練習(xí)題2、假定有4個(gè)整數(shù)用8位補(bǔ)碼分別表示r1=FEH,r2=F2H,r3=90H,r4=F8H,若將運(yùn)算結(jié)果存放在一個(gè)8位寄存器中,則下列運(yùn)算會(huì)發(fā)生溢出的是()A.r1xr2B.r2xr3C.r1xr4D.r2xr438練習(xí)題339練習(xí)題

40練習(xí)題(1)R1的內(nèi)容為134,轉(zhuǎn)換為二進(jìn)制10000110B,十六進(jìn)制為86H;R5的值為x-y=-112,-01110000B,補(bǔ)碼表示10010000B=90H;R6的值為x+y=380,101111100B,7CH,溢出。(2)m的內(nèi)容為原x的值,10000110B,為補(bǔ)碼表示,所以原碼為11111010B,即-122。n的內(nèi)容二進(jìn)制11110110B,原碼為10001010B,即-10。所以K1的內(nèi)容為-112。412.2.2

定點(diǎn)數(shù)的運(yùn)算1、定點(diǎn)數(shù)的移位運(yùn)算移位的意義

15米=1500厘米小數(shù)點(diǎn)右移2位機(jī)器中15相對(duì)于小數(shù)點(diǎn)左移2位左移:絕對(duì)值擴(kuò)大右移:絕對(duì)值縮小在計(jì)算機(jī)中,移位與加減配合,能夠?qū)崿F(xiàn)乘除運(yùn)算422.2.2

定點(diǎn)數(shù)的運(yùn)算算術(shù)移位規(guī)則對(duì)有符號(hào)數(shù)的移位運(yùn)算成為算術(shù)移位。不論是正數(shù)還是負(fù)數(shù),移位后其符號(hào)位均不變,這是算術(shù)移位的重要特點(diǎn)。1右移添1左移添00反碼補(bǔ)碼原碼負(fù)數(shù)0原碼、補(bǔ)碼、反碼正數(shù)添補(bǔ)代碼碼制432.2.2

定點(diǎn)數(shù)的運(yùn)算(1)機(jī)器數(shù)為正時(shí),不論左移或右移,添補(bǔ)代碼均為0。(2)由于負(fù)數(shù)的原碼其數(shù)值部分與真值相同,故在移位時(shí)只要使符號(hào)位不變,其空位均添0。(3)由于負(fù)數(shù)的反碼其各位除符號(hào)位外與負(fù)數(shù)的原碼正好相反,故移位后所添的代碼應(yīng)與原碼相反,即全部添1。(4)分析任意負(fù)數(shù)的補(bǔ)碼可發(fā)現(xiàn),當(dāng)對(duì)其由低位向高位找到第一個(gè)“1”時(shí),在此“1”左邊的各位均與對(duì)應(yīng)的反碼相同,而在此“1”右邊的各位(包括此“1”在內(nèi))均與對(duì)應(yīng)的原碼相同,即添0;右移時(shí)空位出現(xiàn)在高位,則添補(bǔ)的代碼應(yīng)與反碼相同,即添1。442.2.2

定點(diǎn)數(shù)的運(yùn)算算術(shù)移位的特點(diǎn):對(duì)于正數(shù),三種機(jī)器數(shù)算術(shù)移位后符號(hào)位均不變,左移最高位丟1,結(jié)果錯(cuò)誤;右移最低位丟1,影響精度。對(duì)于負(fù)數(shù),三種機(jī)器數(shù)算術(shù)移位后符號(hào)位不變。原碼左移,高位丟1,結(jié)果出錯(cuò);原碼右移低位丟1,影響精度。補(bǔ)碼左移,高位丟0,結(jié)果出錯(cuò);補(bǔ)碼右移低位丟1,影響精度。反碼左移,高位丟0,結(jié)果出錯(cuò);反碼右移低位丟0,影響精度。452.2.2

定點(diǎn)數(shù)的運(yùn)算算術(shù)移位的硬件實(shí)現(xiàn)(a)真值為正(b)負(fù)數(shù)的原碼(c)負(fù)數(shù)的補(bǔ)碼(d)負(fù)數(shù)的反碼000100丟1丟1出錯(cuò)影響精度出錯(cuò)影響精度正確影響精度正確正確462.2.2

定點(diǎn)數(shù)的運(yùn)算邏輯移位對(duì)無(wú)符號(hào)數(shù)的移位運(yùn)算成為邏輯移位。邏輯移位的規(guī)則:

邏輯左移,高位丟失,低位補(bǔ)0

邏輯右移,低位丟失,高位補(bǔ)0472.2.2

定點(diǎn)數(shù)的運(yùn)算2、原碼定點(diǎn)數(shù)的加/減運(yùn)算

兩個(gè)原碼表示的數(shù)相加,首先要判斷符號(hào)位:如果符號(hào)位相同,就把兩個(gè)數(shù)的絕對(duì)值相加,結(jié)果符號(hào)不變;如果符號(hào)位不相同,則做減法,將絕對(duì)值大的減去絕對(duì)值小的,結(jié)果的符號(hào)與絕對(duì)值大的數(shù)的符號(hào)相同。兩個(gè)原碼表示的數(shù)相減,首先將減數(shù)的符號(hào)取反,在按加法進(jìn)行運(yùn)算。482.2.2

定點(diǎn)數(shù)的運(yùn)算3、補(bǔ)碼定點(diǎn)數(shù)的加/減運(yùn)算(1)補(bǔ)碼加法補(bǔ)碼加法的特點(diǎn):符號(hào)位作為數(shù)的一部分參加運(yùn)算,符號(hào)位的進(jìn)位丟掉。運(yùn)算結(jié)果為補(bǔ)碼形式整數(shù)[A]補(bǔ)

+[B]補(bǔ)=[A+B]補(bǔ)(mod2n+1)小數(shù)[A]補(bǔ)

+[B]補(bǔ)=[A+B]補(bǔ)(mod2)

證明:任意兩個(gè)數(shù)的補(bǔ)碼之和,等于該兩個(gè)數(shù)的和的補(bǔ)碼分四種情況:(|x|<1,|y|<1,|x+y|<1)492.2.2

定點(diǎn)數(shù)的運(yùn)算證明[x]補(bǔ)+[y]補(bǔ)=[x+y]補(bǔ)假設(shè)︱x︱﹤1,︱y︱﹤1,︱x+y︱﹤1現(xiàn)分四種情況來(lái)證明(1)x﹥0,y﹥0,則x+y﹥0[x]補(bǔ)=x,[y]補(bǔ)=y,[x+y]補(bǔ)=x+y

等式成立.(2)x﹥0,y﹤0,則x+y>0或x+y<0[x]補(bǔ)=x,[y]補(bǔ)=2+y,[x]補(bǔ)+[y]補(bǔ)=x+2+y當(dāng)x+y>0時(shí),2+(x+y)>2,進(jìn)位2必丟失,又因(x+y)>0,故[x]補(bǔ)+[y]補(bǔ)=x+y=[x+y]補(bǔ)

當(dāng)x+y<0時(shí),2+(x+y)<2,又因(x+y)<0,故[x]補(bǔ)+[y]補(bǔ)=2+(x+y)=[x+y]補(bǔ)

所以上式成立502.2.2

定點(diǎn)數(shù)的運(yùn)算(3)x<0,y>0,則x+y>0或x+y<0

這種情況和第2種情況一樣,把x和y的位置對(duì)調(diào)即得證。(4)x<0,y<0,則x+y<0相加兩數(shù)都是負(fù)數(shù),則其和也一定是負(fù)數(shù)?!遊x]補(bǔ)=2+x,

[y]補(bǔ)=2+y∴[x]補(bǔ)+[y]補(bǔ)=2+x+2+y=2+(2+x+y)上式右邊分為“2”和(2+x+y)兩部分.既然(x+y)是負(fù)數(shù),而其絕對(duì)值又小于1,那么(2+x+y)就一定是小于2而大于1的數(shù),進(jìn)位“2”必丟失.又因(x+y)<0,

所以[x]補(bǔ)+[y]補(bǔ)=2+(x+y)=[x+y]補(bǔ)

512.2.2

定點(diǎn)數(shù)的運(yùn)算例如:x=0.1001,y=0.0101,求x+y=?[X]補(bǔ)=0.1001[Y]補(bǔ)=0.0101[X]補(bǔ)

0.1001+[Y]補(bǔ)

0.0101所以,x+y=0.1110

[X+Y]補(bǔ)

0.1110例如:X=+0.1011Y=-0.0101,求X+Y解:[X]補(bǔ)=0.1011[Y]補(bǔ)=1.1011[X]補(bǔ)

0.1011+[Y]補(bǔ)

1.1011[X+Y]補(bǔ)

10.0110

所以X+Y=+0.0110522.2.2

定點(diǎn)數(shù)的運(yùn)算例:設(shè)A=–9,B=–5,求[A+B]補(bǔ)解:[A]補(bǔ)=1,0111[B]補(bǔ)=1,10111,0111+1,1011∴[A]補(bǔ)

+[B]補(bǔ)=1,001011,0010A+B=–1110532.2.2

定點(diǎn)數(shù)的運(yùn)算(2)補(bǔ)碼減法因?yàn)锳–B=A+(–B),所以有補(bǔ)碼減法:整數(shù)[A–B]補(bǔ)=[A+(–B)]補(bǔ)=[A]補(bǔ)

+[–B]補(bǔ)(mod2n+1)小數(shù)[A–B]補(bǔ)=[A+(–B)]補(bǔ)=[A]補(bǔ)

+[–B]補(bǔ)(mod2)

連同符號(hào)位一起相加,符號(hào)位產(chǎn)生的進(jìn)位自然丟掉542.2.2

定點(diǎn)數(shù)的運(yùn)算證明:(|x|<1,|y|<1,|x+y|<1)[X–Y]補(bǔ)=[X]補(bǔ)

–[Y]補(bǔ)

=[X]補(bǔ)

+[–Y]補(bǔ)(mod2)

只要證明[–Y]補(bǔ)

=–[Y]補(bǔ)則上式成立(可見(jiàn)教材P253)因?yàn)閇X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)(mod2)

所以[Y]補(bǔ)=[X+Y]補(bǔ)-[X]補(bǔ)(1)

又[X–Y]補(bǔ)=[X+(–Y)]補(bǔ)

=[X]補(bǔ)

+[–Y]補(bǔ)所以

[

–Y]補(bǔ)=[X–Y

]補(bǔ)-[X]補(bǔ)

(2)

將(1)(2)相加,得

[Y]補(bǔ)+[

–Y]補(bǔ)=[X+Y]補(bǔ)-[X]補(bǔ)+[X–Y

]補(bǔ)-[X]補(bǔ)

=[X+Y+X-Y]補(bǔ)-[X]補(bǔ)-[X]補(bǔ)

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

=0證畢552.2.2

定點(diǎn)數(shù)的運(yùn)算從[Y]補(bǔ)求[-Y]補(bǔ)的法則是:對(duì)[Y]補(bǔ)包括符號(hào)位“求反且最末位加1”例:設(shè)機(jī)器數(shù)字長(zhǎng)為8位(含1位符號(hào)位)且A=15,B=24,用補(bǔ)碼求A–B。562.2.2

定點(diǎn)數(shù)的運(yùn)算練習(xí)1:設(shè)x=+0.1001,y=+0.1011用補(bǔ)碼求x+y練習(xí)2:設(shè)機(jī)器數(shù)字長(zhǎng)為8位(含1位符號(hào)位)且A=–97,B=+41,用補(bǔ)碼求A–B[x+y]補(bǔ)=1.0100所以:X+Y=–0.1100[A–B]補(bǔ)

=01110110所以A-B=+118572.2.2

定點(diǎn)數(shù)的運(yùn)算4.溢出的檢測(cè)溢出:運(yùn)算結(jié)果超出機(jī)器的表數(shù)范圍定點(diǎn)加減法溢出條件:★同號(hào)數(shù)相加或異號(hào)數(shù)相減。★運(yùn)算結(jié)果超載。1)溢出的檢測(cè)可能產(chǎn)生溢出的情況兩正數(shù)加,變負(fù)數(shù),上溢(大于機(jī)器所能表示的最大數(shù))兩負(fù)數(shù)加,變正數(shù),下溢(小于機(jī)器所能表示的最小數(shù))582.2.2

定點(diǎn)數(shù)的運(yùn)算2)溢出的檢測(cè)方法◆雙符號(hào)位法(參與加減運(yùn)算的數(shù)采用變形補(bǔ)碼表示)

x2>x≥0[x]’補(bǔ)=4+x0≥x>-2Sf1SF200 正確(正數(shù))

01 上溢

10 下溢

11 正確(負(fù)數(shù))

Sf1表示正確的符號(hào),邏輯表達(dá)式為V=Sf1⊕Sf2,可以用異或門來(lái)實(shí)現(xiàn)592.2.2

定點(diǎn)數(shù)的運(yùn)算例如:X=+0.

溫馨提示

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