第1章-2計(jì)算機(jī)運(yùn)算基礎(chǔ)_第1頁
第1章-2計(jì)算機(jī)運(yùn)算基礎(chǔ)_第2頁
第1章-2計(jì)算機(jī)運(yùn)算基礎(chǔ)_第3頁
第1章-2計(jì)算機(jī)運(yùn)算基礎(chǔ)_第4頁
第1章-2計(jì)算機(jī)運(yùn)算基礎(chǔ)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

一、計(jì)算機(jī)中的數(shù)制

在計(jì)算機(jī)內(nèi)一切信息必須進(jìn)行數(shù)字化編碼(即用二進(jìn)制代碼形式),才能在機(jī)內(nèi)傳送、存儲和處理。輸入電路10110101計(jì)算機(jī)主機(jī)10100010輸出電路二進(jìn)制:只有0和1,記數(shù)按“逢二進(jìn)一”規(guī)律,第k位權(quán)是2k。二進(jìn)制十進(jìn)制

bnbn-1bn-2

……b0=

dndn-1dn-2…...d0=

ΣbkX2kk=0nΣdkX10kk=0n1011=1X23+0X22+1X21+1X20325=3X102+2X101+5X100=1X8+0X4+1X2+1X1=3X100+2X10+5X11.4計(jì)算機(jī)運(yùn)算基礎(chǔ)1二進(jìn)制二進(jìn)制數(shù)是計(jì)算機(jī)中常用的一種記數(shù)方法,它使用“0”,“1”這兩個(gè)數(shù)碼構(gòu)成以2為基數(shù)的進(jìn)制表達(dá)方式。其基本運(yùn)算規(guī)則為“逢二進(jìn)一,借一當(dāng)二”。

二進(jìn)制:b7b6b5b4b3b2b1b0

權(quán)值:12864321684212726252423222120二進(jìn)制小數(shù):小數(shù)點(diǎn)后第k位權(quán)值位2-k=1/2k。二進(jìn)制:0.B-1b-2b-3b-4

權(quán)值:

0.50.250.1250.06252-12-22-32-41/21/41/81/1621101.1001(二進(jìn)制)=1X8+1X4+0X2+1X1+1X0.5+0X0.25+0X0.125+1X0.0625=13.5625(十進(jìn)制)

10101010+1010101010101010010101010-01010101

010101013八進(jìn)制使用二進(jìn)制表達(dá)一個(gè)數(shù)值需要較長的編碼。為了便于記憶和使用,人們將三位二進(jìn)制數(shù)作一組用一個(gè)符號表示,構(gòu)成八了進(jìn)制,這樣可以把數(shù)碼的長度縮短三分之二。把二進(jìn)制數(shù)按三個(gè)一組的方式進(jìn)行分組,每一組將產(chǎn)生23種組合,因此需要8個(gè)數(shù)碼來表示每一位數(shù)值,這樣就構(gòu)成了八進(jìn)制。八進(jìn)制使用0,1,2,3,4,5,6,7,共八種符號來表示數(shù)碼。二進(jìn)制數(shù)和八進(jìn)制數(shù)之間的關(guān)系如下:二進(jìn)制

000

001

010

011

100

101

110

111八進(jìn)制

0

1

2

345674二八進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)轉(zhuǎn)換為對應(yīng)的八進(jìn)制數(shù)十分方便,具體分為兩步:

1)以小數(shù)點(diǎn)為中心將二進(jìn)制數(shù)三位一組進(jìn)行分組;

2)將每一組用對應(yīng)的八進(jìn)制符號進(jìn)行代換,這樣就將二進(jìn)制數(shù)轉(zhuǎn)換成了對應(yīng)的八進(jìn)制數(shù)。八進(jìn)制轉(zhuǎn)換為對應(yīng)的二進(jìn)制數(shù),只需要將每一個(gè)八進(jìn)制數(shù)碼直接用對應(yīng)的三位二進(jìn)制數(shù)代換即可。例:設(shè)有兩個(gè)二進(jìn)制數(shù)011110101000,0.10101011,試將它們轉(zhuǎn)換成對應(yīng)的八進(jìn)制數(shù)。

011,110,101,0000.101,010,110八進(jìn)制數(shù)3650

0.5265十六進(jìn)制在計(jì)算機(jī)中常以字節(jié)為基本單位來表達(dá)和記錄信息,一個(gè)字節(jié)由八位二進(jìn)制數(shù)組成。八位二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)并不方便,而且一個(gè)字節(jié)需要使用三個(gè)八進(jìn)制符號表示。如果將八位二進(jìn)制數(shù)分為兩組,每組四位,就可以兩個(gè)符號表示一個(gè)字節(jié)的數(shù)據(jù),十分便于記憶和表達(dá)。由于四位二進(jìn)制數(shù)可以產(chǎn)生24種組合,因此需要16種數(shù)碼來表示一個(gè)四位二進(jìn)制數(shù),這樣就產(chǎn)生了十六進(jìn)制。在十六進(jìn)制中使用的數(shù)碼分別為:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(xiàn)。二進(jìn)制與十六進(jìn)制之間的對應(yīng)關(guān)系如下:二進(jìn)制

00000001001000110100010101100111十六進(jìn)制

01234567二進(jìn)制

10001001101010111100110111101111十六進(jìn)制

89 A

BCDEF6二進(jìn)制數(shù)與十六進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)轉(zhuǎn)換為對應(yīng)的十六進(jìn)制數(shù)也分為兩步:

1)以小數(shù)點(diǎn)為中心將二進(jìn)制數(shù)四位一組進(jìn)行分組;

2)將每一組用對應(yīng)的十六進(jìn)制符號進(jìn)行代換,這樣就將二進(jìn)制數(shù)轉(zhuǎn)換成了對應(yīng)的十六進(jìn)制數(shù)。十六進(jìn)制轉(zhuǎn)換為對應(yīng)的二進(jìn)制數(shù),只需要將每一個(gè)十六進(jìn)制數(shù)碼直接用對應(yīng)的四位二進(jìn)制數(shù)代換即可。例:設(shè)有兩個(gè)二進(jìn)制數(shù)11110101000,0.101010111

,試將它們轉(zhuǎn)換成對應(yīng)的十六進(jìn)制數(shù)。

0111,1010,10000.1010,1011

十六進(jìn)制數(shù)7A8

0.AB

7二進(jìn)制數(shù)與十進(jìn)制數(shù)轉(zhuǎn)換十進(jìn)制數(shù)是人們最常使用的一種數(shù)的表達(dá)和運(yùn)算方式,每一個(gè)十進(jìn)制數(shù)由0,1,2,3,4,5,6,7,8,9十種符號組成。十進(jìn)制數(shù)與二進(jìn)制數(shù)之間無法直接進(jìn)行代換,需要使用一定的計(jì)算方法。可以從它們的數(shù)學(xué)表達(dá)中來描述這種轉(zhuǎn)換關(guān)系,假設(shè)有十進(jìn)制整數(shù)X,若其對應(yīng)的二進(jìn)制數(shù)可表示為an-1an-2…a1a0,則有如下等式成立:

X=an-12n-1+an-22n-2+…+a121+a020

該等式兩邊同時(shí)除以2,得

X/2=an-12n-2+an-22n-3+…+a120

………

余數(shù)為a0再同時(shí)除以2,得

(X/2)/2=an-12n-3+an-22n-4+…+a220....……

余數(shù)為a18反復(fù)除以2 ......最后得X/2n=0………

余數(shù)為an-1

將所得余數(shù)從下往上依次排列就是十進(jìn)制數(shù)X對應(yīng)的二進(jìn)制數(shù)an-1an-2…a1a0,這種方式稱為“除留余數(shù)法”或“除2法”。例:將十進(jìn)制數(shù)123,用除2法轉(zhuǎn)換成對應(yīng)的二進(jìn)制數(shù)。1111011B即為123D對應(yīng)的二進(jìn)制數(shù)9設(shè)如果有十進(jìn)制純小數(shù)0.Y,其對應(yīng)的二進(jìn)制數(shù)為0.a-1a-2…a-m則有等式:0.Y=a-12-1+a-22-2+…+a-m2-m

如果將等式兩邊乘以2,則有

(0.Y)×2=(a-12-1+a-22-2+…+a-m2-m)×2=a

-1+a-22-1+…+a-m2-m+1

取等式兩邊的整數(shù)部分,則有(0.Y)×2取整=a-1將兩邊小數(shù)部分再乘以2

(0.Y×2-a-1)×2=(a-22-1+…+a-m2-m+1)×2=a-2+a-32-1…+a-m2-m+2取等式兩邊的整數(shù)部分,則有(0.Y×2-a-1)×2取整=a-2依此類推則可得到二進(jìn)制數(shù)的各位數(shù)值。然后排列成0.a-1a-2…a-m即可,這種方法稱為“乘2取整法”或“乘2法”。10例:將十進(jìn)制數(shù)0.625,采用乘2法轉(zhuǎn)換成對應(yīng)的二進(jìn)制數(shù)。注意:有些數(shù)可能永遠(yuǎn)也無法通過乘2的方式變成整數(shù),一直會有小數(shù)部分,當(dāng)所需要的精度達(dá)到后就不用再進(jìn)行乘法操作了。如:0.725,0.225……11從以上的計(jì)算過程可以看出,十進(jìn)制數(shù)轉(zhuǎn)換成對應(yīng)的二進(jìn)制數(shù)需要分為兩步進(jìn)行:

1)將十進(jìn)制數(shù)的整數(shù)部分采用除2法轉(zhuǎn)換成對應(yīng)的二進(jìn)制整數(shù);

2)將十進(jìn)制數(shù)的小數(shù)部分采用乘2法轉(zhuǎn)換成對應(yīng)的二進(jìn)制小數(shù)。最后將轉(zhuǎn)換的整數(shù)部分和小數(shù)部分合并即可得到十進(jìn)制數(shù)轉(zhuǎn)換成的二進(jìn)制數(shù)。12不同進(jìn)制數(shù)據(jù),相同的表示會有不同的數(shù)值大小,為了在表示數(shù)據(jù)時(shí)不產(chǎn)生歧義,通常在數(shù)據(jù)最后加一個(gè)字母來區(qū)別不同的進(jìn)制。十進(jìn)制數(shù)使用D表示(可以省略),二進(jìn)制數(shù)使用B表示,八進(jìn)制數(shù)使用Q表示,十六進(jìn)制使用H表示。其對照關(guān)系如右表所示。十進(jìn)制二進(jìn)制八進(jìn)制十六進(jìn)制00000B0Q0H10001B1Q1H20010B2Q2H30011B3Q3H40100B4Q4H50101B5Q5H60110B6Q6H70111B7Q7H81000B10Q8H91001B11Q9H13二、計(jì)算機(jī)中數(shù)的表示和運(yùn)算在計(jì)算機(jī)中無論是數(shù)據(jù)還是其它信息都是采用一定長度的二進(jìn)制數(shù)表達(dá)。對于不同的信息,所需要的二進(jìn)制數(shù)長度也不同。人們規(guī)定:在微型計(jì)算機(jī)中以八位二進(jìn)制數(shù)為一個(gè)基本單位來分配存儲地址,稱為字節(jié)(Byte)。任何一個(gè)信息最少要用一個(gè)八位二進(jìn)制數(shù)來表達(dá),如果需要更長的二進(jìn)制數(shù)表達(dá)某些信息則需要使用八的整數(shù)倍二進(jìn)制數(shù),如16位,32位等。X86系統(tǒng)中常用的數(shù)據(jù)長度單位有:

字節(jié):8個(gè)二進(jìn)制位(Byte)1Byte=8bit

字:2個(gè)字節(jié)(Word)1Word=2Byte=16bit

雙字:4個(gè)字節(jié)(DoubleWords),1DoubleWords=4Byte=32bit

四字:4個(gè)字(QuadWords),1QuadWords=4W=8Byte=64bit

十字節(jié):10字節(jié)(TenBytes),1TenBytes=10Byte=80bit14計(jì)算機(jī)中多字節(jié)數(shù)據(jù)的存儲在計(jì)算機(jī)中每一個(gè)字節(jié)存儲空間分配一個(gè)地址,多字節(jié)數(shù)據(jù)需要多個(gè)存儲地址。用哪一個(gè)地址來表示多個(gè)字節(jié)組成的數(shù)據(jù)呢?計(jì)算機(jī)中多字節(jié)數(shù)據(jù)有兩種數(shù)據(jù)存儲方式,一種稱為大端存儲法,另一種稱為小端存儲法。所謂大端存儲就是將多個(gè)字節(jié)數(shù)據(jù)依次存放,將高字節(jié)數(shù)據(jù)存放到低地址,將低字節(jié)數(shù)據(jù)存放到高地址。所謂小端存儲就是將多個(gè)字節(jié)數(shù)據(jù)依次存放,高字節(jié)數(shù)據(jù)存放到高地址,低字節(jié)數(shù)據(jù)存放到低地址。如32位數(shù)據(jù)12345678H存放到起始地址為100H的存儲器中。兩種不同的存儲方式下數(shù)據(jù)在內(nèi)存中的示意如圖:15地址數(shù)據(jù)地址數(shù)據(jù)100H12H100H78H101H34H101H56H102H56H102H34H103H78H103H12H104H……104H……(a)大端存儲

(b)小端存儲

X86系列CPU采用小端存儲16BCD碼如果使用二進(jìn)制數(shù)對十進(jìn)制的數(shù)碼進(jìn)行編碼,并利用編碼的位置關(guān)系來表達(dá)十進(jìn)制數(shù)的位權(quán)關(guān)系,則可以更方便地在計(jì)算機(jī)中對十進(jìn)制數(shù)進(jìn)行表示和運(yùn)算。常用的編碼稱為二~十進(jìn)制碼或稱BCD碼(BinaryCodedDecimal)。如:十進(jìn)制數(shù)100如果直接進(jìn)行數(shù)值轉(zhuǎn)換,用二進(jìn)制數(shù)表示就應(yīng)該是0110,0100B(64H),需要進(jìn)行7次除2取余計(jì)算得到。而使用BCD編碼,就可以直接表示為0001,0000,0000B,

1

0

0也就是直接將十進(jìn)制數(shù)的每一位數(shù)碼轉(zhuǎn)換成一個(gè)對應(yīng)編號,然后按其位置進(jìn)行排列來表示該數(shù)。這極大地方便了十進(jìn)制數(shù)的表達(dá)和轉(zhuǎn)換。17由于計(jì)算機(jī)中數(shù)據(jù)地址分配的基本單位是字節(jié),因此,對每一個(gè)數(shù)碼進(jìn)行編號通常是以字節(jié)為單位進(jìn)行的,也就是說每一個(gè)數(shù)碼將由八位二進(jìn)制編碼。這種BCD碼稱為非壓縮BCD碼。顯然非壓縮BCD碼的浪費(fèi)很大。如果每一個(gè)十進(jìn)制數(shù)碼用四位二進(jìn)制編碼,則可以減少一半存儲空間。這種BCD碼稱為壓縮BCD碼。其對照表如右圖。十進(jìn)制非壓縮BCD碼壓縮BCD碼000000000000010000000100012000000100010300000011001140000010001005000001010101600000110011070000011101118000010001000900001001100118二進(jìn)制:逢二進(jìn)一,借一當(dāng)二

加法規(guī)則

減法規(guī)則

0+0=0

0-0=00+1=1

0-1=1(借1)

1+0=1

1-0=1

1+1=0(進(jìn)1)

1-1=0十六進(jìn)制:逢十六進(jìn)一,借一當(dāng)十六

C3H

35H

85H

-2CH————— —————

148H 09H算術(shù)運(yùn)算的基本規(guī)則19邏輯運(yùn)算的基本規(guī)則“或”運(yùn)算(OR)

ABA∨B000011101111“與”運(yùn)算(AND)

ABA∧B000010100111“非”運(yùn)算(NOT)

A-A0110“異或”運(yùn)算(XOR)

ABAB00001110111020例:X=00FFHY=5555H,求Z=XY=?

X

=0000000011111111B

Y

=0101010101010101B

—————————————

Z

=

0101010110101010BZ=55AAH21有符號數(shù)表示和運(yùn)算有符號數(shù)在計(jì)算機(jī)中表示時(shí),除了數(shù)值大小外,還有相應(yīng)的正負(fù)號,通常正負(fù)號以二進(jìn)制數(shù)據(jù)最高位來表示。不同計(jì)算機(jī)處理能力和表示范圍有所不同,表示一個(gè)數(shù)據(jù)所使用的二進(jìn)制位數(shù)也不相同,通常是字節(jié)的整數(shù)倍,如:8位、16位、32位等。假設(shè)機(jī)器字長為8位:

76543210符號位數(shù)值位假設(shè)機(jī)器字長為16位:符號位數(shù)值位1514131211109876543210符號位=0表示正數(shù)符號位=1表示負(fù)數(shù)22常用表示法——原碼、反碼、補(bǔ)碼原碼表示法:符號+絕對值例:n=8bit

[+3]原碼

=0000,0011=03H

[-3]原碼

=1000,0011=83H

[+0]原碼

=0000,0000=00H

[-0]原碼

=1000,0000=80H0的表示不唯一反碼表示法:正數(shù)的反碼同原碼,負(fù)數(shù)的反碼數(shù)值位與原碼相反例:n=8bit

[+5]反碼

=0000,0101=05H

[-5]反碼

=1111,1010=FAH[+0]反碼

=0000,0000=00H

[-0]反碼

=1111,1111=FFH0的表示不唯一23補(bǔ)碼表示法:正數(shù)的補(bǔ)碼:同原碼[+1]補(bǔ)碼=00000001=01H[+127]補(bǔ)碼=01111111=7FH[+0]補(bǔ)碼=00000000=00H按位求反末位加一例:機(jī)器字長8位,[-46]補(bǔ)碼=?

[46]補(bǔ)碼=001011101101000111010010=D2H

機(jī)器字長16位,[-46]補(bǔ)碼=FFD2H

負(fù)數(shù)的補(bǔ)碼:(1)寫出與該負(fù)數(shù)相對應(yīng)的正數(shù)的補(bǔ)碼(2)按位求反(3)末位加一取反加一24 [-1]補(bǔ)碼=11111111=FFH [-127]補(bǔ)碼=10000001=81H [-128]補(bǔ)碼=10000000=80H [-0]補(bǔ)碼=00000000=00H(+0、-0相同)n位補(bǔ)碼的表數(shù)范圍:-2n-1N2n-1-1n=8-128N127n=16-32768N3276725移碼表示法:在數(shù)的真值上加一個(gè)偏移量形成。

[X]移=2n-1-1+X其中-2n-1<X<2n-1,n為包括符號位在內(nèi)的二進(jìn)制碼長度,X為待轉(zhuǎn)換的實(shí)際數(shù)值,即X用加/減號表示符號,絕對值表示數(shù)值,相當(dāng)于將所有X的原碼加上2n-1-1。例:如X=100,Y=-100,用八位二進(jìn)制數(shù)表示它們的移碼為:X=+01100100,Y=-01100100,28-1-1=01111111則[X]移=01111111+01100100=11100011[Y]移=01111111-01100100=00011011數(shù)值0的移碼表示為[+0]移=01111111+00000000=01111111[-0]移=01111111-00000000=01111111相當(dāng)于將所有數(shù)值都向正向移動(dòng)了2n-1-126有符號數(shù)的加減運(yùn)算計(jì)算機(jī)中數(shù)據(jù)的加/減運(yùn)算,通常以補(bǔ)碼方式進(jìn)行:加法規(guī)則:[X+Y]補(bǔ)碼=[X]補(bǔ)碼+[Y]補(bǔ)碼減法規(guī)則:[X-Y]補(bǔ)碼=[X]補(bǔ)碼+

[-Y]補(bǔ)碼補(bǔ)碼進(jìn)行減法運(yùn)算可轉(zhuǎn)換為對應(yīng)的加法運(yùn)算,計(jì)算中符號位參與運(yùn)算,并能得到正確結(jié)果。27溢出問題及判斷:由于補(bǔ)碼中最高位為符號位,當(dāng)計(jì)算結(jié)果超過補(bǔ)碼表示范圍時(shí),可能導(dǎo)致不正確的進(jìn)位,從而產(chǎn)生錯(cuò)誤結(jié)果,這時(shí)稱為溢出。溢出是超出補(bǔ)碼表示范圍,即計(jì)算結(jié)果絕對值過大引起。因此,計(jì)算結(jié)果溢出的基本條件是計(jì)算結(jié)果的絕對值大于參與計(jì)算的兩個(gè)數(shù)的絕對值。很顯然,只有當(dāng)兩個(gè)參與計(jì)算的數(shù)為同號相加,或異號相減時(shí)才可能出現(xiàn)溢出問題。當(dāng)同號相加,或異號相減時(shí),計(jì)算結(jié)果的絕對值超過補(bǔ)碼表示范圍(-2n-1N2n-1-1)時(shí),才產(chǎn)生溢出。如:計(jì)算機(jī)字長為8時(shí)(+120)+(+30),(-50)+(-80)同號相加產(chǎn)生生溢出(+34)-(-95)和(-45)-(+123)異號相減產(chǎn)生溢出28使用二進(jìn)制表示時(shí),判斷溢出的基本方法:1)根據(jù)參與運(yùn)算的兩個(gè)數(shù)最高位,判斷是否為同符號數(shù)相加或異符號數(shù)相減運(yùn)算。2)如果有減法則將減法轉(zhuǎn)換為對應(yīng)的補(bǔ)碼加法運(yùn)算,作加法運(yùn)算后,若計(jì)算結(jié)果的符號位與被加數(shù)(被減數(shù))符號不相同,則可判斷有溢出發(fā)生。29(-120)+(-30)=[10001000]補(bǔ)+[11100010]補(bǔ)

[10001000]補(bǔ) +[11100010]補(bǔ)進(jìn)1 [01101010] 符號位與被加數(shù)不同,溢出。兩個(gè)負(fù)數(shù)相加,結(jié)果為正數(shù),結(jié)果錯(cuò)誤。

(+34)-(-95)=[00100010]補(bǔ)+[01011111]補(bǔ)

[00100010]補(bǔ)+[01011111]補(bǔ)

[100

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論