新第2章微型計(jì)算機(jī)的數(shù)制和編碼_第1頁
新第2章微型計(jì)算機(jī)的數(shù)制和編碼_第2頁
新第2章微型計(jì)算機(jī)的數(shù)制和編碼_第3頁
新第2章微型計(jì)算機(jī)的數(shù)制和編碼_第4頁
新第2章微型計(jì)算機(jī)的數(shù)制和編碼_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

二、十進(jìn)制數(shù)間的相互轉(zhuǎn)換數(shù)的補(bǔ)碼表示及求補(bǔ)運(yùn)算溢出判斷本章內(nèi)容數(shù)制的基本概念數(shù)字與字符的編碼學(xué)習(xí)數(shù)的不同表示方法掌握不同進(jìn)制數(shù)之間的相互轉(zhuǎn)換掌握計(jì)算機(jī)中數(shù)的表示方法—補(bǔ)碼表示法學(xué)習(xí)目的掌握數(shù)字與字符編碼的方法2.1數(shù)制及其轉(zhuǎn)換一個數(shù)值,可以用不同進(jìn)制的數(shù)表示。通常用數(shù)字后面跟一個英文字母來表示該數(shù)的數(shù)制。十進(jìn)制數(shù):DDecimalD可以省略不用.二進(jìn)制數(shù):BBinary八進(jìn)制數(shù):QOctal十六進(jìn)制數(shù):HHexadecimal.例:1001B=09H=9D一般地,任意一個十進(jìn)制數(shù)N都可以表示為:N=Kn-1×10n-1+Kn-2×10n-2+······+K1×101+K0×100

+

K-1×10-1+K-2×10-2+······+K-m×10-m=

2.1.1二、八、十、十六進(jìn)制數(shù)*基數(shù):數(shù)制所使用的數(shù)碼的個數(shù)*權(quán):數(shù)制中每一位所具有的值.

式中,10稱為十進(jìn)制數(shù)的基數(shù),i表示數(shù)的某一位,10i稱該位的權(quán),Ki表示第I位的數(shù)碼。Ki的范圍為0~9中的任意一個數(shù)1.有十個不同的數(shù)字符號:0,1,2,…9。2.遵循“逢十進(jìn)一”原則。十進(jìn)制數(shù)的兩個主要特點(diǎn)整數(shù)部分小數(shù)部分

設(shè)基數(shù)用R表示,則對于二進(jìn)制,R=2,Ki為0或1,逢二進(jìn)一。N=

對于八進(jìn)制,R=8,Ki為0~7中的任意一個,逢八進(jìn)一。N=對于十六進(jìn)制,R=16,Ki為0~9、A、B、C、D、E、F共16個數(shù)碼中的任意一個,逢十六進(jìn)一。N=例1101.001B=1×23+1×22+0×21+1×20+0×2-1+0×2-2+1×2-3=13.125綜上可見,上述幾種進(jìn)位制有以下共同點(diǎn):①每種進(jìn)位制都有一個確定的基數(shù)R,每一位的系數(shù)Ki有R種

可能的取值。

②按“逢R進(jìn)一”方式計(jì)數(shù),在混合小數(shù)中,小數(shù)點(diǎn)右移一位相

當(dāng)于乘以R,左移一位相當(dāng)于除以R。十進(jìn)制數(shù)、二進(jìn)制數(shù)、十六進(jìn)制數(shù)之間的關(guān)系如下表所示十進(jìn)制二進(jìn)制十六進(jìn)制012345678012345678000000010010001101000101011001111000十進(jìn)制二進(jìn)制十六進(jìn)制91011121314159ABCDEF10011010101111001101111011112.1.2數(shù)制間的轉(zhuǎn)換1.二、八、十六進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)換原則:若兩個有理數(shù)相等,則兩數(shù)的整數(shù)部分與小數(shù)部分一定分別相等。這種轉(zhuǎn)換只需將二、八、十六進(jìn)制數(shù)按權(quán)展開。例(110.01)2=1×22+1×21+0×20+0×2-1+1×2-2=(6.25)10

(175)8=1×82+7×81+5×80=(125)10

(B2C)16=11×162+2×161+12×160=(2860)10

2.十進(jìn)制數(shù)二、八、十六進(jìn)制數(shù)1)整數(shù)轉(zhuǎn)換方法:除2取余法。DN125=N=125D=1111101B余數(shù)31212562215722231=K21=K31=K41=K51=K610221=K00=K1低位高位0=K72.小數(shù)轉(zhuǎn)換方法:乘2取整法例如:將十進(jìn)制數(shù)0.8125轉(zhuǎn)換為二進(jìn)制小數(shù)。整個轉(zhuǎn)換過程如下:

0.8125

×21.625整數(shù)部分為1,K-1=1高位

0.625

×2

1.25整數(shù)部分為1,K-2=1

0.25

×2

0.50整數(shù)部分為0,K-3=0

0.50

×2

1.0整數(shù)部分為1,K-4=1低位所以轉(zhuǎn)換結(jié)果為:(0.8125)10=(0.1101)2

推廣:

將十進(jìn)制數(shù)轉(zhuǎn)換為N(二、十六、八)進(jìn)制數(shù)時,整數(shù)與小數(shù)分別按“除N取余法”與“乘N取整法”進(jìn)行轉(zhuǎn)換。而N進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)均可按權(quán)展開相加得到。2.2原碼、反碼和補(bǔ)碼一、機(jī)器數(shù)和真值機(jī)器數(shù):一個數(shù)連同其符號一起在機(jī)器中的表示形式。在數(shù)的表示式中引進(jìn)符號位:0表示正數(shù),1表示負(fù)數(shù);使之成為計(jì)算機(jī)中可使用的帶符號數(shù)。真值:機(jī)器數(shù)的數(shù)值(不是形式上的真值)。機(jī)器數(shù)按一定編碼方式所代表的真實(shí)數(shù)值。通常用+/-前綴表示數(shù)的正負(fù),用十進(jìn)制表示數(shù)值的大小。8位微機(jī)中的帶符號數(shù):D7D6D5D4D3D2D1D0符號位數(shù)值位D7=0 正數(shù)1 負(fù)數(shù)機(jī)器數(shù)真值01010010B=== +8211010010B===82二、帶符號數(shù)的三種表示方法1.原碼最高位為符號位0正數(shù)1負(fù)數(shù)[+4]原=00000100B[4]原=10000100B后面n-1位是其數(shù)值。原碼的特點(diǎn):(1)數(shù)值部分即為該帶符號數(shù)的二進(jìn)制值。

(2)“0”有+0和-0之分,若字長為八位,

則:(+0)原=00000000,(–0)原=100000008位二進(jìn)制原碼能表示的數(shù)值范圍為:

01111111~11111111,即+127~–127。

-(2n-1-1)~+(2n-1-1)

其中n為機(jī)器字長。

8位:-127~+12716位:-32767~+327672.原碼與計(jì)算當(dāng)X為正數(shù)時[X]原和X一樣,即[X]原=X。當(dāng)X為負(fù)數(shù)時。由于X本身為負(fù)數(shù),所以,實(shí)際上是將∣X∣數(shù)值部分絕對值前面的符號位上寫成“1”即可。原碼表示法比較直觀,它的數(shù)值部分就是該數(shù)的絕對值,而且與真值、十進(jìn)制數(shù)的轉(zhuǎn)換十分方便。但是它的加減法運(yùn)算較復(fù)雜。當(dāng)兩數(shù)相加時,機(jī)器要首先判斷兩數(shù)的符號是否相同,如果相同則兩數(shù)相加,若符號不同,則兩數(shù)相減。在做減法前,還要判斷兩數(shù)絕對值的大小,然后用大數(shù)減去小數(shù),最后再確定差的符號,換言之,用這樣一種直接的形式進(jìn)行加運(yùn)算時,負(fù)數(shù)的符號位不能與其數(shù)值部分一道參加運(yùn)算,而必須利用單獨(dú)的線路確定和的符號位。要實(shí)現(xiàn)這些操作,電路就很復(fù)雜,這顯然是不經(jīng)濟(jì)實(shí)用的。為了減少設(shè)備,解決機(jī)器內(nèi)負(fù)數(shù)的符號位參加運(yùn)算的問題,總是將減法運(yùn)算變成加法運(yùn)算,也就引進(jìn)了反碼和補(bǔ)碼這兩種機(jī)器數(shù)。2.反碼[+5]原=[+5]反=00000101B[5]原=10000101B正數(shù)的反碼與其原碼相同。負(fù)數(shù)的反碼除符號位外將原碼求反。[5]反=11111010B反碼的定義

字長為N位的定點(diǎn)數(shù)的反碼表示法為:XX>0或X為+0時(2n-1)-|X|X<0或X為-0時[x]反=反碼的特點(diǎn):(1)“0”有+0和-0之分。

(2)8位二進(jìn)制反碼所能表示的數(shù)值范圍為+127~–127,一般地,對于n位字長的計(jì)算機(jī)來說,其反碼表示

的數(shù)值范圍為+2n-1–1~–2n-1+1。

(3)8位帶符號數(shù)用反碼表示時,若最高位為“0”(正數(shù))

則后面的7位即為數(shù)值;若最高位為“1”(負(fù)數(shù)),

則后面7位表示的不是此負(fù)數(shù)的數(shù)值,必須把它們按

位取反,才是該負(fù)數(shù)的二進(jìn)制值。

正碼和反碼表示的優(yōu)點(diǎn)

原碼表示的加減法運(yùn)算比較復(fù)雜一實(shí)際操作如+-判斷等判斷,二結(jié)果的符號的判斷,比補(bǔ)碼麻煩多了比如(-5)+7=7-5=23.補(bǔ)碼(1)模和同余的概念:*一個計(jì)量器的容量或一個計(jì)量單位,叫做?;蚰?shù),計(jì)作M(Mode)。例:時鐘的模為:12一個n位二進(jìn)制計(jì)數(shù)器的模為:2n*如果兩個整數(shù)a、b,用某一整數(shù)M去除,所得余數(shù)相同,則稱a、b對模M是同余的,此時稱a、b在以M為模時是相等的。記作:

a=b(modM)例:13=1(mod12)*由同余的概念可以得出若干性質(zhì):

Ⅰ)a+M=a(modM)

Ⅱ)a+n·M=a(modM,n為整數(shù))

當(dāng)a為負(fù)數(shù)時,利用上式,負(fù)數(shù)就可化為正數(shù)了:補(bǔ)碼是根據(jù)同余的概念引入的,我們來看一個減法通過加法來實(shí)現(xiàn)的例子。假定現(xiàn)在是北京時間6點(diǎn)整,有一只手表卻是8點(diǎn)整,比北京時間快了2小時,校準(zhǔn)的方法有兩種,一種是倒撥2小時,一種是正撥10小時。若規(guī)定倒撥是做減法,正撥是做加法,那么對手表來講減2與加10是等價的,也就是說減2可以用加10來實(shí)現(xiàn)。這是因?yàn)?加10等于18,然而手表最大只能指示12,當(dāng)大于12時12自然丟失,18減去12就只剩6了。這說明減法在一定條件下,是可以用加法來代替的。這里“12”稱為“?!保?0稱為“-2”對模12的補(bǔ)數(shù)。推廣到一般則有:A–B=A+(–B+M)=A+(–B)補(bǔ)結(jié)論:在模為M的條件下,A減去B,可以用A加上-B的補(bǔ)數(shù)來實(shí)現(xiàn)。

例:a=-3在以12為模時,則有:

-3+12=-3(mod12)即:9=-3(mod12)

對此,我們稱-3的補(bǔ)碼為+9(mod12)(2)補(bǔ)碼的定義

字長為N位的定點(diǎn)數(shù)的補(bǔ)碼表示法為:當(dāng)x≥0時,[x]補(bǔ)=[x]原,即為x本身加上符號位‘0’。([X]補(bǔ)=模+X的真值)

說明由定義:

當(dāng)x<0時,[x]補(bǔ)=2n

-|X|

,即需由減法求得。

XX≥02n

-|X|X<0(mod2n)[x]補(bǔ)=

(3)負(fù)數(shù)的補(bǔ)碼的求法:1)由定義直接求:需要做減法運(yùn)算。例:X=-68=-1000100B則

[x]補(bǔ)=28-|x

|=100000000-1000100=10111100則

[-0]補(bǔ)=28-0=100000000-00000000=100000000=[+0]補(bǔ)

[-127]補(bǔ)=28-127=100000000-01111111=00000001例:已知X=95,Y=-95,8位二進(jìn)制數(shù)(mod=28=256),[X]補(bǔ)=01011111B=5FH=[X]原=[X]反正數(shù)的補(bǔ)碼與其原碼、反碼相等

Y=-95=-01011111B [Y]原=11011111B,[Y]反=10100000B由補(bǔ)碼的定義可得:[Y]補(bǔ)=28+(-01011111B) =10100001B100000000B–01011111B10100001B2)利用反碼來求:a.當(dāng)-2n-1<X<0時,可以證明:

[x]補(bǔ)等于[x]原除符號位外,其余各位求反,最低位加1。反之,[x]原等于[x]補(bǔ)除符號位外,其余各位求反,最低位加1。

例:x=-68=-1000100[x]原=11000100[x]補(bǔ)=10111011+1=10111100反之,[x]補(bǔ)=10111100則[x]原=11000011+1=11000100[[X]補(bǔ)]補(bǔ)=[X]原=11000100,對X的補(bǔ)碼求補(bǔ),結(jié)果對于其原碼,即[[X]補(bǔ)]補(bǔ)=[X]原

4.補(bǔ)碼加減法運(yùn)算法則:[X]補(bǔ)+[Y]補(bǔ)=[X+Y]補(bǔ)(mod2n)……….(1)分四種情況證明如下:①X≥0,Y≥0時,則X+Y≥0∴有

[X]補(bǔ)+[Y]補(bǔ)=X+Y=[X+Y]補(bǔ)(mod2n)②X≥0,Y<0且X+Y≥0時則有:[X]補(bǔ)+[Y]補(bǔ)=X+(2n+Y)=2n+(X+Y)=X+Y=[X+Y]補(bǔ)(mod2n)③X≥0,Y<0且X+Y<0時則有:[X]補(bǔ)+[Y]補(bǔ)=X+(2n+Y)=2n+(X+Y)=[X+Y]補(bǔ) (mod2n)④X<0,Y<0時,則有X+Y<0∴[X]補(bǔ)+[Y]補(bǔ)=(2n+X)+(2n+Y)=2n+(X+Y)

=[X+Y]補(bǔ)(mod2n)∴有(1)式成立,證畢。結(jié)論:在補(bǔ)碼機(jī)內(nèi),無論兩加數(shù)的真值是正或負(fù),只要把它們表示成相應(yīng)的補(bǔ)碼形式,直接按二進(jìn)制規(guī)則相加,其結(jié)果均為‘和’的真值的補(bǔ)碼。同樣可證明:[X]補(bǔ)+[-Y]補(bǔ)=[X-Y]補(bǔ)(mod2n)……….(2)補(bǔ)碼運(yùn)算的特點(diǎn):1).真值補(bǔ)碼的和等于和的補(bǔ)碼。2).符號位當(dāng)作數(shù)值一樣進(jìn)行運(yùn)算。3).加減法運(yùn)算都是用加法來實(shí)現(xiàn)。4).符號位相加產(chǎn)生的進(jìn)位位舍去不要。例.計(jì)算y=9958(用8位二進(jìn)制表示)9958=99+(58)=41[y]補(bǔ)=[9958]補(bǔ)=[99]補(bǔ)+[58]補(bǔ)01100011[99]補(bǔ)+11000110[58]補(bǔ)[99]補(bǔ)=01100011B[58]補(bǔ)=11000110By=[y]補(bǔ)=00101001B=41100101001[41]補(bǔ)自動丟失5.溢出的概念需要補(bǔ)充8位二進(jìn)制補(bǔ)碼表示數(shù)的范圍:128~+127n位二進(jìn)制補(bǔ)碼表示數(shù)的范圍:2n1~+(2n11)若運(yùn)算結(jié)果超過了字長一定的機(jī)器所能表示數(shù)的范圍,稱為溢出。此時運(yùn)算結(jié)果出錯。類別二進(jìn)制編碼組合n=8n=16符號數(shù)值位n-116進(jìn)制真值16進(jìn)制真值正數(shù)00011…1111…10┇00…017FH7EH┇01H+127126┇17FFFH7FFEH┇0001H3276732766┇1000…0000H00000H0負(fù)數(shù)111111…1111…10┇00…0100…00FFHFEH┇81H80H-1-2┇-127-128FFFFHFFFEH┇8001H8000H-1-2┇-32767-32768例1.令CS為數(shù)值部分向符號位的進(jìn)位,CS+1為符號位向高位的進(jìn)位,此例中,CS=CS+1=0,結(jié)果在8位二進(jìn)制補(bǔ)碼表示范圍內(nèi),沒有溢出。0000111101110000+01111111+15+112+12700CS+1CS例2.此例中,Cs≠CS+

1,產(chǎn)生了錯誤的結(jié)果,發(fā)生了溢出。

0111111000000101+10000011+126+512501CS+1CS0111111100000101+10000100+127+5124例3.CS=1, CS+1=0, 結(jié)果溢出!結(jié)果出錯。1000010011111011+01111111+1275124例4.CS=0, CS+1=1, 結(jié)果溢出!1因?yàn)镃S= CS+1, 則結(jié)果正確。CS

CS+1,則結(jié)果溢出。所以 溢出=CS

CS+1結(jié)果出錯。定點(diǎn)數(shù)和浮點(diǎn)數(shù)定點(diǎn)數(shù)定點(diǎn)整數(shù):小數(shù)點(diǎn)約定在最低位的右邊。定點(diǎn)小數(shù):小數(shù)點(diǎn)約定在符號位之后。浮點(diǎn)數(shù):N=2P×S以32位(4字節(jié))數(shù)為例: 階符、階碼——8位(1個字節(jié)) 數(shù)符、尾數(shù)——24位(3個字節(jié)) 范圍:

階符階碼數(shù)符尾數(shù)SP數(shù)據(jù)校驗(yàn)碼——奇偶校驗(yàn)碼奇校驗(yàn):代碼位中1的個數(shù)為奇數(shù)個偶校驗(yàn):代碼位中1的個數(shù)為偶數(shù)個n個代碼位= 1位校驗(yàn)位+若干信息位例如:0 1100011——偶校驗(yàn) 1 1100011——奇校驗(yàn)n-1n-2……0奇校驗(yàn):應(yīng)使代碼里連同校驗(yàn)位共有奇數(shù)個1。補(bǔ)奇:當(dāng)數(shù)值部分中1的個數(shù)為偶數(shù)時,可通過置校驗(yàn)位為“1”,使整個代碼“1”的個數(shù)為奇數(shù)。例如:7位信息代碼1100011中,有偶數(shù)個“1”,為滿足奇校驗(yàn),校驗(yàn)位取“1”,即11100011。偶校驗(yàn):應(yīng)使代碼里連同校驗(yàn)位共有偶數(shù)個1。補(bǔ)偶:當(dāng)數(shù)值部分中1的個數(shù)為奇數(shù)時,可通過置校驗(yàn)位為“1”,使整個代碼“1”的個數(shù)為偶數(shù)。例如:7位信息代碼1100011中,有偶數(shù)個“1”,為滿足偶校驗(yàn),校驗(yàn)位取“0”,即01100011。2.3數(shù)字與字符的編碼一、數(shù)字的編碼(BCD碼)BCD碼是一種常用的數(shù)字編碼。BCD碼:Binary-CodedDecimal,即二進(jìn)制編碼的十進(jìn)制數(shù)。用[…]BCD表示。這種編碼法分別將每位十進(jìn)制數(shù)字編成4位

二進(jìn)制代碼,從而用二進(jìn)制數(shù)來表示十進(jìn)制數(shù)。

[01001001000

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論