計(jì)算機(jī)的運(yùn)算方法_第1頁(yè)
計(jì)算機(jī)的運(yùn)算方法_第2頁(yè)
計(jì)算機(jī)的運(yùn)算方法_第3頁(yè)
計(jì)算機(jī)的運(yùn)算方法_第4頁(yè)
計(jì)算機(jī)的運(yùn)算方法_第5頁(yè)
已閱讀5頁(yè),還剩122頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第6章

計(jì)算機(jī)的運(yùn)算方法

第6章計(jì)算機(jī)的運(yùn)算方法■臼司

6」無(wú)符號(hào)數(shù)和有符號(hào)數(shù)

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

6.3定點(diǎn)運(yùn)算

6.4浮點(diǎn)四則運(yùn)算

6.5算術(shù)邏輯單元

:悔一

8位0?255

16位0?65535

二、有符號(hào)數(shù)

L機(jī)器數(shù)與真值

真值機(jī)器數(shù)

帶符號(hào)的數(shù)符號(hào)數(shù)字化的數(shù)

+0.10110II1011

!一小數(shù)點(diǎn)的位置

-0.10111II1011

!一小數(shù)點(diǎn)的位置

+1011

一小數(shù)點(diǎn)的位置

-101111|1011

——小數(shù)點(diǎn)的位置

2.原碼表示法11RI

(1)定義整數(shù)

J0,x2n>x>0

[x]原一J、5

I2-x0>x>

x為真值〃為整數(shù)的位數(shù)

如x=+U10M?=0,1110用逗號(hào)將符號(hào)位

和數(shù)值部分隔開(kāi)

X=-1110[汨原=24+1110=1,1110

帶符號(hào)的絕對(duì)值表示1---------.

小數(shù)

x1>x>0

[x]原=

1-x0>x>1

x為真值

如x=+0.1101[x]原=0.1101用小數(shù)點(diǎn)將符號(hào)

Jt---------------位和數(shù)值部分隔開(kāi)

x=-0.1101[汨原=1-(-0.1101)=1.1101

x=+0.1000000[xK=0.1000000用小數(shù)門(mén)將符號(hào)

t---------------位和數(shù)值部分隔開(kāi)

X=-0.1000000[汨原=1-(-0.1000000)=1.1000000

例6.1已知[刈原=1.0011求x0.0011

解:由定義得L--------------------

x=1一R]原=1-L00U=-0.0011

I1

例6.2已知田原=1,1100求x-1100

解:由定義得--------------

x=24-兇原=10000-1,1100=-1100

例6.3已知[x|原=0.1101求x

解:根據(jù)定義V[x]&=0.1101

,x=+0.1101

例6?4求x=0的原碼

解:設(shè)x=+0.0000[+0.0000]原=0.0000

X=-0.0000卜0.0000]原=1.0000

同理,對(duì)于整數(shù)[+0]原=0,0000

???[+01原原[-0]原=1,0000

原碼的特點(diǎn):簡(jiǎn)單、直觀

但是用原碼作加法時(shí),會(huì)出現(xiàn)如下問(wèn)題

要求數(shù)1數(shù)2實(shí)際操作結(jié)果符號(hào)

加法正正加正

加法正負(fù)減可正可負(fù)

加法負(fù)正減可正可負(fù)

加法負(fù)負(fù)加負(fù)

能否只作加法?

找到一個(gè)與負(fù)數(shù)等價(jià)的正數(shù)來(lái)代替這個(gè)負(fù)數(shù)

就可使減——>力口

3.補(bǔ)碼表示法

⑴補(bǔ)的概念[時(shí)鐘以12贏1

?時(shí)鐘逆時(shí)針順時(shí)針

+

315

可見(jiàn)-3可用+9代替減法一功口法渺

稱(chēng)+9是-3以12為模的補(bǔ)數(shù)

記作一3三+9(mod12)時(shí)鐘以

為模

同理-4三+8(mod12)12

一5三+7(mod12)

結(jié)論

?一個(gè)負(fù)數(shù)加上“?!奔吹迷撠?fù)數(shù)的補(bǔ)數(shù)

>一個(gè)正數(shù)和一個(gè)負(fù)數(shù)互為補(bǔ)數(shù)時(shí)

它們絕對(duì)值之和即為模數(shù)

?計(jì)數(shù)器(模16)1011—0000?

10111011

—1011+0101

000010000

可見(jiàn)-1011可用+0101代替\

記作一1011三+0101(mod24)自然去掉

同理-011=+101(mod23)

-0.1001=+1.0111(mod2)

(2)正數(shù)的補(bǔ)數(shù)即為其本身

兩個(gè)互為補(bǔ)數(shù)的數(shù)二ion弓"+

分別加上模+10000+10000

結(jié)果仍互為補(bǔ)數(shù)+0101=+[10101

,+0101=+0101(mod24)7丟掉

可見(jiàn)+0101亍+0101

I——L-ion

?叵0101—0101

?1,0101—71011

24+1-1011=100000(mod24+1)

一1011用逗號(hào)將符號(hào)位

1.0101I—和數(shù)值部分隔開(kāi)

(3)補(bǔ)碼定義

ro,x2n>x>o

區(qū)補(bǔ)={

I2n+1+x0>x>(mod2n+1)

x為真值〃為整數(shù)的位數(shù)

如x=+1010x=-1011000

7+1

區(qū)補(bǔ)=[x]=2+(-1011000)

o5ioio#

=100000000

-1011000

用逗號(hào)將符號(hào)位

和數(shù)值部分隔開(kāi)」1,0101000

]—

小數(shù)

rx1>x>0

兇補(bǔ)=

I2+x0>x>4(mod2)

'為真值

如x=+0.1110x=-0.1100000

可補(bǔ)=0.1110區(qū)補(bǔ)=2+(-0.1100000)

iI

=10.0000000

-0.1100000

用小數(shù)點(diǎn)將符號(hào)位~~1.0100000

和數(shù)值部分隔開(kāi)一

(4)求補(bǔ)碼的快捷方式

設(shè)x=_1010時(shí)

貝底]補(bǔ)=24+1-1010=11111+1-1010

=100000=11111+1

-1010-1010

=1,011010101+1

=

又團(tuán)原=1J010

當(dāng)真值為負(fù)時(shí),補(bǔ)碼可用原碼除符號(hào)位外

每位取反,末位加1求得好“樹(shù)二一節(jié)

⑸舉例

例6.5已知⑶補(bǔ)=0.0001

求X

解:由定義得x=+0.0001

?

例6.6已知[刈補(bǔ)=1.0001國(guó)補(bǔ)一國(guó)原

求X國(guó)原=1.1111

解:由定義得???X=-0.1111

X=兇補(bǔ)_21

=1.0001-10.0000

_=-0.1111

例6.7已知[汨補(bǔ)=1,1110

求*?

解:由定義得國(guó)補(bǔ)工團(tuán)原

4+1

X=[X]#-2區(qū)原=1,0010

=14110-100000x=-0010

="0010

當(dāng)真值為負(fù)時(shí),原碼可用補(bǔ)碼除符號(hào)位外

每位取反,末位加1求得

練習(xí)求下列真值的補(bǔ)碼

⑶補(bǔ)

真值原

x=+70=10001100,100011004000110

x=-70=-10001101,01110101,1000110

x=0.11100.11100.1110

x=-0.11101.00101.1110

X=[0,0000][+0]補(bǔ)=[-0]補(bǔ)[0.0000)0.0000

X=[-0,0000][0?QQ00)1.0000

x=-1.00001.0000不能表示

‘%1>x>0

由小數(shù)補(bǔ)碼定義區(qū)補(bǔ)=1■

[2+x0>x>4(mod2)

|-1|=2+x=10.0000-1.0000=1.0000

4.反碼表示法

(1)定義整數(shù)

f0,x2M>X>0

[刈反=V

、(2/i—1)+工0>x>?(mod2n+1i)

x為真值〃為整數(shù)的位數(shù)

如x=+1101x=-1101

國(guó)反=0,1101國(guó)反=(24+1-1)-1101

=11111-1101

用逗號(hào)將符號(hào)位

=1,0010

和數(shù)值部分隔開(kāi)

小數(shù)

X1>x>0

[刈反=

(2-2'n)+x0>x>1(mod2£”)

x為真值n為小數(shù)的位數(shù)

x=+0.1101x=-0.1010

國(guó)反=01101國(guó)反=(2-2-4)-0.1010

=1.1111-0.1010

用小數(shù)點(diǎn)將符號(hào)位=1.0101

J口數(shù)值部分隔開(kāi)一_________t

⑵舉例

例6.8已知[刈反=0,1110求,

解:由定義得x=+1110

例已知求了

6解.9:由定攵hc椎k=1x41=1[0xk-(242+1-l)

=191110-11111

例6.10求0的反碼=-0001

角軋?jiān)O(shè)%=+0.0000[+0.0000]反=0.0000

x=-0.0000[-0.0000]反=1.1111

同理,對(duì)于整數(shù)[+0]反=0,0000[-0]H=14m

&[+0]反r[劃反沼然漏

三種機(jī)器數(shù)的小結(jié)

?最高位為符號(hào)位,書(shū)寫(xiě)上用“丁(整數(shù))

或(小數(shù))將數(shù)值部分和符號(hào)位隔開(kāi)

A對(duì)于正數(shù),原碼=補(bǔ)碼=反碼

?對(duì)于負(fù)數(shù),符號(hào)位為1,其數(shù)值部分

原碼除符號(hào)位外每位取反末位加1一補(bǔ)碼

原碼除符號(hào)位外每位取反一反碼

例」

61__

設(shè)機(jī)器數(shù)字長(zhǎng)為8位(其中1位為符號(hào)位)

對(duì)于整數(shù),當(dāng)其分別代表無(wú)符號(hào)數(shù)、原碼、補(bǔ)碼和

反碼時(shí),對(duì)應(yīng)的真值范圍各為多少?

例6.11

無(wú)符號(hào)數(shù)原碼對(duì)應(yīng)補(bǔ)碼對(duì)應(yīng)反碼對(duì)應(yīng)

二進(jìn)制代碼

對(duì)應(yīng)的真值的真值的真值的真值

000000000+0±0+0

000000011+1+1+1

000000102+2+2+2

?■??

??■■■

*????

01111111127+127+127+127

10000000128-0-128-127

10000001129-1-127-126

?????

?■■?■

*■???

11111101253-125-3-2

11111110254-126-2-1

11111111255-127-1-0

例6.12已知m補(bǔ)求Rii補(bǔ)

解:設(shè)。]補(bǔ)=%?必必…穌

vI>補(bǔ)=0?乃以???穌]______________

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

艮口得[切補(bǔ)______________________________

彳一一補(bǔ)=1比無(wú)…工+2〃

1

vII>pk=-JiJ2~yn

m補(bǔ)連同符號(hào)位在內(nèi),每位取反,末位加1

即得[川補(bǔ)

5.移碼表示法

補(bǔ)碼表示很難直接判斷其真值大小

如十進(jìn)制二進(jìn)制補(bǔ)碼

x=+21+101010,101010錯(cuò)

1,01011.大

x=-21-10101

x=+31+11111041111錯(cuò)

x=-31-111111,00001大

x+

+10101+100000=110101大正確

-10101+100000=001011

+11111+100000=111111大

正確

J1111+100000

(1)移碼定義

移=2〃+xC2n>x>2")

*為真值,〃為整數(shù)的位數(shù)

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

移碼

區(qū)移=25+10100=1,10100

x=-101001--------用逗號(hào)將符號(hào)位

和數(shù)值部分隔開(kāi)

5

fxU=2-10100=0901100

⑵移碼和補(bǔ)碼的比較HEI

設(shè)x=+1100100

國(guó)移=27+1100100=1J100100

國(guó)補(bǔ)=0,1100100

設(shè)x=-1100100

國(guó)移=27—1100100=0,0011100

國(guó)補(bǔ)=1,0011100

補(bǔ)碼與移碼只差一個(gè)符號(hào)位本£

⑶真值、補(bǔ)碼和移碼的對(duì)照表11RI

M移對(duì)應(yīng)的

真值x(〃=5)[x]補(bǔ)[x]移十進(jìn)制整數(shù)

=1000001000000000000

-111111000010000011

-111101000100000102

???*

*??

-0000111111101111131

±0000000000010000032

+0000100000110000133

+0001000001010001034

????

**

+1111001111011111062

+1111101111111111163

(4)移碼的特點(diǎn)

A當(dāng)*=0時(shí)[+0]移=25+0=1,00000

[-0]移=25-0=1,00000

,[+0]移=卜0]移

A當(dāng)〃=5時(shí)最小的真值為-25=-100000

[-100000]移=25-100000=000000

可見(jiàn),最小真值的移碼為全0

用移碼表示浮點(diǎn)數(shù)的階碼

能方便地判斷浮點(diǎn)數(shù)的階碼大小

練習(xí)

1.8位二進(jìn)制原碼

表示整數(shù)的最小值為1111111(727)最大值為01H1111(127)

表示小數(shù)的最小間為111111⑺最大徜為⑺

2.8位二進(jìn)制反碼10000000(-127)01111111(127)

表示整數(shù)的最小值為1.0000000(?)最大值為。?liiiiii⑺

表示小數(shù)的最小值為最大值為一

10000000(-128)01111111(127)

3.8位二進(jìn)制補(bǔ)碼L0000001⑺o.limn⑺

表示整教的最小值為_(kāi)____________最大值為.

表示小數(shù)的最小值曲(―1?父)最大值為1111(127)

0.0000001(?)1.1111111(?)

4.8位二進(jìn)制移碼

表面瀚數(shù)的最小值為最大值為一

最大值為

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

小數(shù)點(diǎn)按約定方式標(biāo)出

、定點(diǎn)表示

5/5£二5|或SfS1S尸0

~J」

|數(shù)值部分

I數(shù)值部分

小數(shù)點(diǎn)位置小數(shù)點(diǎn)位置

定點(diǎn)機(jī)小數(shù)定點(diǎn)機(jī)整數(shù)定點(diǎn)機(jī)

原碼—(1—2-〃)?+(1—2?”)-(2n-1)^+(2n-l)

補(bǔ)碼一1?+(1—2'n)-2n^+(2W-1)

反碼—(1-?+(1-2?”)-(2W-1)^+(2n-l)

八浮點(diǎn)表示

N=S乂/j浮點(diǎn)數(shù)的一般形式

S尾數(shù)j階碼,基數(shù)(基值)

計(jì)算機(jī)中(取2、4、8、16等一

當(dāng)/=2N=11.0101一二進(jìn)制表示

,=0.110101X2回了規(guī)格化數(shù)

=1.10101X21

=1101.01X210

0.00110101X2100

計(jì)算機(jī)中s小數(shù)、可正可負(fù)

_____/整數(shù)、可正可舔―

1.浮點(diǎn)數(shù)的表示形式

------j階碼——---------S尾數(shù)—

I需露i|尾數(shù)的數(shù)值部分

小數(shù)點(diǎn)位置

耳代表浮點(diǎn)數(shù)的符號(hào)

n其位數(shù)反映浮點(diǎn)數(shù)的精度

m其位數(shù)反映浮點(diǎn)數(shù)的表示范圍

不和加共同表示小數(shù)點(diǎn)的實(shí)際位置

2.浮點(diǎn)數(shù)的表示范圍

上溢階碼,最大階碼

下溢階碼〈最小階碼按機(jī)器零處理.

上溢工溢

負(fù)數(shù)區(qū)、下溢正數(shù)區(qū)

0

最小負(fù)數(shù)最大正數(shù)

—2(2J)X(1—2-〃)2(2,M-DX(1-2-W)

最小正數(shù)

-215X(1-2-10)215X(1-2'10)

2-(2J)X2~n

2T5xr10

最大負(fù)數(shù)設(shè)帆=4

一2一(2"J)X2~n

Jn=10

-r15x2-10

練習(xí)

設(shè)機(jī)器數(shù)字長(zhǎng)為24位,欲表示±3萬(wàn)的工挺制數(shù),

試問(wèn)在保證數(shù)的最大精度的前提下,除階符、數(shù)符各

取1位外,階碼、尾數(shù)各取幾位?

解:???214=16384215=32768

,15位二進(jìn)制數(shù)可反映±3萬(wàn)之間的十進(jìn)制數(shù)

i5X0.xXX???XXX

I'~樂(lè)'

m=4,5,6,…

滿(mǎn)足最大精度可取/w=4,匕=蠅^0工3^^

3.浮點(diǎn)數(shù)的規(guī)格化形式

r=2尾數(shù)最高位為1

r=4尾數(shù)最高2位不全為0基數(shù)不同,浮點(diǎn)數(shù)的

r=8尾數(shù)最高3位不全為0規(guī)格化形式不同

4.浮點(diǎn)數(shù)的規(guī)格化

F=2左規(guī)尾數(shù)左移1位,階碼減1

右規(guī)尾數(shù)右移1位,階碼加1

r=4左規(guī)尾數(shù)左移2位,階碼減1

右規(guī)尾數(shù)右移2位,階碼加1

r=8左規(guī)尾數(shù)左移3位,階碼減1

右規(guī)尾數(shù)右移3位,階碼加1

基數(shù)J『越大,可表示的浮點(diǎn)數(shù)的范圍越大

基數(shù)與越大,浮點(diǎn)數(shù)的精度降低

例如:

設(shè)膽=4,n=10,r=2

尾數(shù)規(guī)格化后的浮點(diǎn)數(shù)表示范圍

最大正數(shù)2+i1nX0.1111111111=215X(l-2-10)

10個(gè)1

最小正數(shù)21111X0.1000000000=2-15*2-1=2-16

v-----V-----z

9個(gè)0

最大負(fù)數(shù)2-uiiX(-0.1000000000)=—2一15*2一1=-2-16

9個(gè)0

最小負(fù)數(shù)2+11"X(-041111111111=-215X(l-2-10)

YJ.1

___________10個(gè)]

例6?13將+尚寫(xiě)成二進(jìn)制定點(diǎn)數(shù)、浮點(diǎn)數(shù)及在定點(diǎn)

機(jī)和浮點(diǎn)機(jī)中的機(jī)器數(shù)形式。其中數(shù)值部分均取10位,

數(shù)符取1位,浮點(diǎn)數(shù)階碼取5位(含1位階符)。

解:設(shè)*=+行

二進(jìn)制形式x=0.0010011

定點(diǎn)表示x=0.0010011000

浮點(diǎn)規(guī)格化形式X=0.1001100000X210

定點(diǎn)機(jī)中[刈原=[刈補(bǔ)=兇反=0.0010011000

浮點(diǎn)機(jī)中區(qū)原=1,0010;0.1001100000

以]補(bǔ)=1,1110;0.1001100000

國(guó)反=1,1101;0.1001100000

例6」4

將-58表示成二進(jìn)制定點(diǎn)數(shù)和浮點(diǎn)數(shù),并寫(xiě)出它在定點(diǎn)機(jī)

和浮點(diǎn)機(jī)中的三種機(jī)器數(shù)及階碼為移碼、尾數(shù)為補(bǔ)碼的形式

(其他要求同上例)。

解:設(shè)x=-58

二進(jìn)制形式x=-111010

定點(diǎn)表示x=-0000111010

no

浮點(diǎn)規(guī)格化形式x=-(0.1110100000)x2

定點(diǎn)機(jī)中浮點(diǎn)機(jī)中

區(qū)原=1,0000111010[x]原=0,0110;1.1110100000

[x]補(bǔ)=1,1111000110[x]補(bǔ)=0,0110;1.0001100000

國(guó)反=1,1111000101區(qū)反=0,0110;1.0001011111

兇階移、尾補(bǔ)=1,0110;1.0001100000

機(jī)器零

>當(dāng)浮點(diǎn)數(shù)尾數(shù)為0時(shí),不論其階碼為何值

按機(jī)器零處理

>當(dāng)浮點(diǎn)數(shù)階碼等于或小于它所表示的最小

數(shù)時(shí),不論尾數(shù)為何值,按機(jī)器零處理

如a=4n=10

當(dāng)階碼和尾數(shù)都用補(bǔ)碼表示時(shí),機(jī)器零為

x,xxxx;0.00???0

(階碼=T6)1,0000;x.xx…x

當(dāng)階碼用移碼,尾數(shù)用補(bǔ)碼表示時(shí),機(jī)器零為

0,0000;0.00…0

有利于機(jī)器中“判0”電路的實(shí)現(xiàn)

四、IEEE754標(biāo)準(zhǔn)11RI

s階碼(含階符)尾數(shù)

且符小H點(diǎn)位置

尾數(shù)為規(guī)格化表示

非“0”的有效位最高位為“1"(隱含)

符號(hào)位S階碼尾數(shù)總位數(shù)

短實(shí)數(shù)182332

長(zhǎng)實(shí)數(shù)1115264

臨時(shí)實(shí)數(shù)1156480

6.3定點(diǎn)運(yùn)算

\、移位運(yùn)算

1.移位的意義

15m=1500cm

示數(shù)點(diǎn)右城2位

機(jī)器用語(yǔ)15相對(duì)于小數(shù)點(diǎn)左移2位

(小數(shù)點(diǎn)不動(dòng))

左移絕對(duì)值擴(kuò)大

右移絕對(duì)值縮小

在計(jì)算機(jī)中,移位與加減配合,能夠?qū)崿F(xiàn)乘除運(yùn)算

2.算術(shù)移位規(guī)則

符號(hào)位不變

碼制添補(bǔ)代碼

正數(shù)原碼、補(bǔ)碼、反碼0

原碼0

左移添0

負(fù)數(shù)補(bǔ)碼

右移添1

反碼1

例6J6U3|RI

設(shè)機(jī)器數(shù)字長(zhǎng)為8位(含1位符號(hào)位),寫(xiě)出

力=+26時(shí),三種機(jī)器數(shù)左、右移一位和兩位后的表示形式

及對(duì)應(yīng)的真值,并分析結(jié)果的正確性。

解:A=+26=+11010

則⑷原=⑷補(bǔ)=網(wǎng)反=0,0011010

機(jī)器數(shù)

移位操作對(duì)應(yīng)的真值

原=[勾補(bǔ)=3]反

移位前0,0011010+26

左移一位0,0110100+52

左移兩位0,1101000+104

右移一位0,0001101+13

右移兩位0,0000110卜6

mm

例6J7

設(shè)機(jī)器數(shù)字長(zhǎng)為8位(含1位符號(hào)位),寫(xiě)出

4=-26時(shí),三種機(jī)器數(shù)左、右移一位和兩位后的表

示形式及對(duì)應(yīng)的真值,并分析結(jié)果的正確性。

解:Z=—26=—11010

原碼移位操作機(jī)器數(shù)對(duì)應(yīng)的真值

移位前1,0011010-26

左移一位1,0110100-52

左移兩位1,1101000-104

右移一位1,0001101-13

右移兩位1,0000110—6

補(bǔ)碼移位操作機(jī)器數(shù)對(duì)墳的真值

移位前1,1100110-26

左移一位1,1001100-52

左移兩位1,0011000-104

右移一位1,1110011-13

右移兩位1,1111001—7

反碼移位操作機(jī)器數(shù)對(duì)應(yīng)的真值

移位前1,1100101-26

左移一位1,1001011-52

左移兩位1,0010111-104

右移一位1,1110010-13

一二

6

3.算術(shù)移位的硬件實(shí)現(xiàn)

0

(a)真值為正(b)負(fù)數(shù)的原碼(c)負(fù)數(shù)的補(bǔ)碼(d)負(fù)數(shù)的反碼

一丟1出錯(cuò)出錯(cuò)正確正確

一丟1影響精度影響精度影響精度正確

4.算術(shù)移位和邏輯移位的區(qū)別

算術(shù)移位有符號(hào)數(shù)的移位

邏輯移位無(wú)符號(hào)數(shù)的移位

邏輯左移低位添0,高位移丟r^o

邏輯右移高位添0,低位移丟0^1

例如0101001110110010

邏輯左移10100110邏輯右移01011001

算術(shù)左移00100110算術(shù)右移11011001(補(bǔ)碼)

高位1移丟

c}-|oioiooii回|1010011可:

二、加減法運(yùn)算

L補(bǔ)碼加減運(yùn)算公式

(1)加法

整數(shù)⑷補(bǔ)+田]補(bǔ)=】+司補(bǔ)(mod2"i)

小數(shù)⑷補(bǔ)+田]補(bǔ)=】+司補(bǔ)(mod2)

(2)減法

A-B=A+(-B)

整數(shù)[/_£]補(bǔ)=[4+(—£)]補(bǔ)=[/]補(bǔ)+[_萬(wàn)]補(bǔ)(mod2W+1)

/卜數(shù)[A-均補(bǔ)=3+(—£)]補(bǔ)=[4]補(bǔ)+[―萬(wàn)]補(bǔ)(mod2)

連同符號(hào)位一起相加,符號(hào)位產(chǎn)生的遴宦睇丟摸畤

2.舉例

例6?18設(shè)4=0.1011,B=-0.0101求[/+£]補(bǔ)

解:⑷補(bǔ)=0.1011驗(yàn)證01011

+[-]補(bǔ)=1.1011一0:0101

⑷補(bǔ)+㈤補(bǔ)尹.0110=[4+/補(bǔ)00110

:.A+B=0.0110

例6.19設(shè)Z=—9,B=-5

求[力+/補(bǔ)

解:⑷補(bǔ)=1,0111驗(yàn)證

-1001

+四補(bǔ)=1,1011+-0101

網(wǎng)補(bǔ)+㈤補(bǔ)=11,0010=3+切補(bǔ)-1110

A+B=^1110杵T-r

例6.20

設(shè)機(jī)器數(shù)字長(zhǎng)為8位(含1位符號(hào)位)

且/=15,5=24,用補(bǔ)碼求

解:A=15=0001111B=24=0011000

[4]補(bǔ)=0,0001111田]補(bǔ)=0,0011000

+[-切補(bǔ)=1,1101000________________

[同補(bǔ)+[-切補(bǔ)=1,1110111=[A-切補(bǔ)

:.A-B=-1001=-9

練習(xí)1設(shè)*=7%=+/用補(bǔ)碼求*打

x+y=-0.1100=—錯(cuò)

練習(xí)2設(shè)機(jī)器數(shù)字長(zhǎng)為8位(含1位符號(hào)位)

且/=-97,5=+41,用補(bǔ)碼求

__________A-B=+mono=+ns

3.溢出判斷

(1)一位符號(hào)位判溢出

參加操作的兩個(gè)數(shù)(減法時(shí)即為被減數(shù)和“求補(bǔ)”

以后的減數(shù))符號(hào)相同,其結(jié)果的符號(hào)與原操作

數(shù)的符號(hào)不同,即為溢出

硬件實(shí)現(xiàn)

最高有效位的進(jìn)位十符號(hào)位的進(jìn)位=1溢出

如1十0=1]

A有溢出

0十1=1.

0^0=0]

A無(wú)溢出

1十1=0.

(2)兩位符號(hào)位判溢出

X1>x>0

4+x0>x>-l(mod4)

團(tuán)補(bǔ),+m補(bǔ),=[%+y]補(bǔ),(mod4)

戊^]補(bǔ),=[刈補(bǔ),+[-“補(bǔ),(mod4)

結(jié)果的雙符號(hào)位相同未溢出00,xxxxx

11,xxxxx

結(jié)果的雙符號(hào)位不同溢出10夕xxxxx

1夕XXXXX

最高符號(hào)位代表其真正的符號(hào)

雙符號(hào)位法

?正數(shù)的符號(hào)——“00”

-負(fù)數(shù)的符號(hào)——“11”

例x=0.1011,y=0.1101,求[x+y]補(bǔ)=?

解:[x]補(bǔ)=00.1011[y]補(bǔ)=00.1101

[x]補(bǔ)00.1011

[y]補(bǔ)00.1101

[x+y]#01.1000

“01——結(jié)果錯(cuò)誤,產(chǎn)生溢出(上溢),符號(hào)為正

雙符號(hào)位法

?正數(shù)的符號(hào)——“00”

?負(fù)數(shù)的符號(hào)——“11”

例x=-0.1011,y=-0,1101,求[x+y]補(bǔ)=?

解:[x]補(bǔ)=11.0101[y]補(bǔ)=11.0011

:x]補(bǔ)11.0101

[y]訃11.0011

[x+y]補(bǔ)110.1000

今10——結(jié)果錯(cuò)誤,產(chǎn)生溢出(下溢),符號(hào)為負(fù)

雙符號(hào)位法

?正數(shù)的符號(hào)—“00”

?負(fù)數(shù)的符號(hào)一“11”

?可以看出

召兩個(gè)符號(hào)位都應(yīng)像數(shù)據(jù)位一樣參加運(yùn)算。

私運(yùn)算結(jié)果符號(hào)位相同,結(jié)果正確,無(wú)溢出。

設(shè)運(yùn)算結(jié)果符號(hào)位不相同,結(jié)果溢出,最高位的

符號(hào)位代表正確的符號(hào)性質(zhì)。

A、X均%+1位

用減法標(biāo)記Gs控制求補(bǔ)邏輯

1.分析筆算乘法

T4=-0.11015=0.1011

^XB=-0.10001111乘積的符號(hào)心算求得

0.1101

X0.1011符號(hào)位單獨(dú)處理

1101乘數(shù)的某一位決定是否加被乘數(shù)

1101

?

00004個(gè)位積一起相加

1101/乘積的位數(shù)擴(kuò)大一倍

0.10001111

2.筆算乘法改進(jìn)

Zi?U.1U11

=0.L4+0.004+0.00L4+0.000L4

=0.L4+O.OOZ+0.001(4+0.L4)

=Q.1A+0.01[0-^+0.1(^+0.14)]

右移位=0.1M+0.1[0.A+0.1(A+0.1A)]]

+2/[0?A+2A(A+2力+0))]}

第一步被乘數(shù)z+o

第二步右移一位,得新的部分積

第三步部分積+被乘數(shù)

移一位,得結(jié)果

3.改進(jìn)后的筆算乘法過(guò)程(豎式廠[

部分積乘數(shù)說(shuō)明-----------

0.00001011初態(tài),部分積=0

+0.1101乘數(shù)為1,加被乘數(shù)

0.1101

0.0110110^一1,形成新的部分積

+0.1101乘數(shù)為1,加被乘數(shù)

1.00111

0.10011110一1,形成新的部分積

+0.0000乘數(shù)為0,加0

0.100111

0.0100111L一1,形成新的部分積

+0.1101乘數(shù)為1,加被乘數(shù)

1.0001111

1111一L得結(jié)果

>乘法運(yùn)算可用加和移位實(shí)現(xiàn)

〃=4,加4次,移4次

>由乘數(shù)的末位決定被乘數(shù)是否與原部分積相加,

然后一1位形成新的部分積,同時(shí)乘數(shù)一1位

(末位移丟),空出高位存放部分積的低位。

>被乘數(shù)只與部分積的高位相加

硬件3個(gè)寄存器,具有移位功能

1個(gè)全加器

4.原碼乘法

(1)原碼一位來(lái)運(yùn)算規(guī)則

以小數(shù)為例

設(shè)[劃原='0?*春2?X"

口]原=")?7^2?

yn

比?川原=6。十伊0)?(0?匕*2…%)(0…穌)

=(/十%).x*y*

式中x^=0.xrx2???xw為x的絕對(duì)值

丁*=。?幾F2…yn為y的絕對(duì)值

乘積的符號(hào)位單獨(dú)處理/十刈

也&分為絕對(duì)值相乘x女?儼布席再

(2)原碼一位乘遞推公式

%*?y*=**(0?[42???盟)

n

="52”+%2.2+...+yn2-)

=2%亡*+2%**+…2十/*+0)...))

???Z\

丫---------------

Zo=O

Z1=2/(F/*+NO)

1

0=2-(FW.1X*+Z1)

例6.21已知x=—o.uioj=0.1101

0.00001101部分積初態(tài)Zo=O

+0.1110+x*

.1110

邏輯右移

.01110110一L得的

+0,0000+0

0.01110

邏輯右移

0.00111011一1,得向

+0.1110+x*

---------1.000110

邏輯右移bo.iooo

1101,得Q

+0.1110十廿

110

K

.jjll.CClH.LH011。1,得心

例6.21結(jié)果

1e0=1

②數(shù)值部分按絕對(duì)值相乘

X^.J*=0.10110110

貝I」以?川原=1.10110110

特點(diǎn)絕對(duì)值運(yùn)算

用移位的次數(shù)判斷乘法是否結(jié)束

邏輯移位3公

A、X、Q均〃+1位

移位和加受末位乘數(shù)控制

.

1

(4)原碼兩位乘

原碼乘符號(hào)位和數(shù)值位部分)

兩位乘每次用乘數(shù)的2位判斷原部分積

是否加和如何加被乘數(shù)

乘數(shù)力」yn新的部分積

00力口“0”一2

01加1倍的被乘數(shù)一2

10加2倍的被乘數(shù)一2

11加3倍的被乘數(shù)一2

4100

先減1倍的被乘數(shù)

J^01

、再加4倍的被乘數(shù)

、311

⑸原碼兩位乘運(yùn)算規(guī)則

乘數(shù)判斷位y加

標(biāo)志位Cj操作內(nèi)容

1為00

0z-2,y*-2,0保持“0”

010z+x*-2,y*-2,0保持“0”

100;r+2x*-2,y*-2,0保持“0”

110z-x*-2,y*-2,Cj置“1”

001z+x*-2,jA2,Cj置“0”

011z+2x^2,jA2,0置“0”

101z-x*N,y*N,Cj保持“1”

111z-2,y*2Cj保持"1”

共有操作+2x*-x*―>2

出x*]補(bǔ)+[2B]補(bǔ)+[-x*/補(bǔ)2補(bǔ)碼移

補(bǔ)

000.00000000.111001

初態(tài)Zo=0

+000.111111

右+x*,Cj=O

000.111111

一2

000.001111

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論