版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1章概述1.1計算機(jī)的數(shù)制及其轉(zhuǎn)換1.2計算機(jī)中數(shù)與字符的編碼1.3微型計算機(jī)系統(tǒng)組成1.4微型計算機(jī)的性能指標(biāo)及分類1.5多媒體計算機(jī)1.1計算機(jī)的數(shù)制及其轉(zhuǎn)換
1.1.1數(shù)與數(shù)制進(jìn)位計數(shù)制是一種計數(shù)的方法。在日常生活中,人們使用各種進(jìn)位計數(shù)制。例如,六十進(jìn)制(1小時=60分,1分=60秒),十二進(jìn)制(1英尺=12英寸,1年=12月)等。但最熟悉和最常用的是十進(jìn)制計數(shù)。如前所述,在計算機(jī)中使用的是二進(jìn)制計數(shù)。另外,為便于人們閱讀及書寫,常常還要用到八進(jìn)制計數(shù)及十六進(jìn)制計數(shù)來表示二進(jìn)制計數(shù)。十進(jìn)制數(shù)的特點是“逢十進(jìn)一,借一當(dāng)十”,需要用到的數(shù)字符號為10個,分別是0~9。二進(jìn)制數(shù)的特點是“逢二進(jìn)一,借一當(dāng)二”,需要用到的數(shù)字符號為2個,分別是0、1。八進(jìn)制數(shù)的特點是“逢八進(jìn)一,借一當(dāng)八”,需要用到的數(shù)字符號為8個,分別是0~7。十六進(jìn)制數(shù)的特點是“逢十六進(jìn)一,借一當(dāng)十六”,需要用到的數(shù)字符號為16個,分別是0~9、A~F。
任意一個十進(jìn)制數(shù)可以用位權(quán)表示,位權(quán)就是某個固定位置上的計數(shù)單位。在十進(jìn)制數(shù)中,個位的位權(quán)為100,十位的位權(quán)為101,百位的位權(quán)為102,千位的位權(quán)為103,而在小數(shù)點后第一位上的位權(quán)為10-1,小數(shù)點后第二位的位權(quán)為10-2等等。因此,如果有十進(jìn)制數(shù)234.13,則百位上的2表示兩個100,十位上的3表示三個10,個位上的4表示四個1,小數(shù)點后第一位上的1表示一個0.1,小數(shù)點后第二位上的3表示三個0.01,用位權(quán)表示為
(234.13)10?=2×102+3×101+4×100?+1×10-1+3×10-2
同理,任意一個二進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)也可用位權(quán)表示。例如:1.1.2不同數(shù)制之間的轉(zhuǎn)換
1.十進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換
1)十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制整數(shù)方法:除2取余數(shù),結(jié)果倒排列。具體做法:將十進(jìn)制數(shù)除以2,得到一個商和一個余數(shù);再將商除以2,又得到一個商和一個余數(shù);繼續(xù)這一過程,直到商等于0為止。每次得到的余數(shù)(必定是0或1)就是對應(yīng)的二進(jìn)制數(shù)的各位數(shù)字。注意:第一次得到的余數(shù)為二進(jìn)制數(shù)的最低位,最后得到的余數(shù)為二進(jìn)制數(shù)的最高位。【例1-1】將十進(jìn)制數(shù)97轉(zhuǎn)換成二進(jìn)制數(shù)。其過程如下:最后結(jié)果為為了將一個既有整數(shù)又有小數(shù)部分的十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù),可以將其整數(shù)部分和小數(shù)部分分別進(jìn)行轉(zhuǎn)換,然后再組合起來。例如把97.6875轉(zhuǎn)換成對應(yīng)二進(jìn)制數(shù)的過程如下:
2.十進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換
1)十進(jìn)制整數(shù)轉(zhuǎn)換成八進(jìn)制整數(shù)方法:除8取余數(shù),結(jié)果倒排列。具體做法:將十進(jìn)制數(shù)除以8,得到一個商和一個余數(shù);再將商除以8,又得到一個商和一個余數(shù);繼續(xù)這一過程,直到商等于0為止。每次得到的余數(shù)(必定是小于8的數(shù))就是對應(yīng)八進(jìn)制數(shù)的各位數(shù)字。第一次得到的余數(shù)為八進(jìn)制數(shù)的最低位,最后一次得到的余數(shù)為八進(jìn)制數(shù)的最高位。
2)十進(jìn)制小數(shù)轉(zhuǎn)換成八進(jìn)制小數(shù)方法:乘8取整數(shù),結(jié)果順排列。具體做法:用8乘以十進(jìn)制小數(shù),得到一個整數(shù)和一個小數(shù);再用8乘以小數(shù)部分,又得到一個整數(shù)和一個小數(shù);繼續(xù)這一過程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是小于8的數(shù))按先后順序從左到右排列,即得到所對應(yīng)的二進(jìn)制小數(shù)。
3.十進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換
1)十進(jìn)制整數(shù)轉(zhuǎn)換成十六進(jìn)制整數(shù)方法:除16取余數(shù),結(jié)果倒排列。具體做法:將十進(jìn)制數(shù)除以16,得到一個商和一個余數(shù);再將商除以16,又得到一個商和一個余數(shù);繼續(xù)這一過程,直到商等于0為止。每次得到的余數(shù)(必定是小于F的數(shù))就是對應(yīng)十六進(jìn)制數(shù)的各位數(shù)字。第一次得到的余數(shù)為十六進(jìn)制數(shù)的最低位,最后一次得到的余數(shù)為十六進(jìn)制數(shù)的最高位。
2)十進(jìn)制小數(shù)轉(zhuǎn)換成十六進(jìn)制小數(shù)方法:乘16取整數(shù),結(jié)果順排列。具體做法:用16乘以十進(jìn)制小數(shù),得到一個整數(shù)和一個小數(shù);再用16乘以小數(shù)部分,又得到一個整數(shù)和一個小數(shù);繼續(xù)這一過程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是小于F的數(shù))按先后順序從左到右排列,即得到所對應(yīng)的十六進(jìn)制小數(shù)。4.二進(jìn)制與八進(jìn)制、十六進(jìn)制數(shù)之間的轉(zhuǎn)換因為23=8,所以每三位二進(jìn)制數(shù)對應(yīng)一位八進(jìn)制數(shù);24=16,所以每四位二進(jìn)制數(shù)對應(yīng)一位十六進(jìn)制。表1-1列出了十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制最基本數(shù)字的對應(yīng)關(guān)系,這些對應(yīng)關(guān)系在后面的二進(jìn)制、八進(jìn)制、十六進(jìn)制相互轉(zhuǎn)換中要經(jīng)常用到。
1)二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)方法:從小數(shù)點所在位置分別向左、向右每三位一組進(jìn)行劃分。若小數(shù)點左側(cè)的位數(shù)不是3的整數(shù)倍,在數(shù)的最左側(cè)補(bǔ)零;若小數(shù)點右側(cè)的位數(shù)不是3的整數(shù)倍,則在數(shù)的最右側(cè)補(bǔ)零。然后參照表1-1,將每三位二進(jìn)制數(shù)轉(zhuǎn)換成對應(yīng)的一位八進(jìn)制數(shù),排列后即為二進(jìn)制數(shù)對應(yīng)的八進(jìn)制數(shù)。表1-1十、二、八、十六進(jìn)制數(shù)碼的對應(yīng)關(guān)系
【例1-10】直接將二進(jìn)制數(shù)11110.11轉(zhuǎn)換成八進(jìn)制數(shù)。其過程如下:
011 110 . 110 3 6 . 6所以
(11110.11)2=(36.6)8
2)八進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)方法:參照表1-1,將每一位八進(jìn)制數(shù)分解成對應(yīng)的三位二進(jìn)制數(shù),排列后即為八進(jìn)制數(shù)對應(yīng)的二進(jìn)制數(shù)。
【例1-11】直接將八進(jìn)制數(shù)35.6轉(zhuǎn)換成二進(jìn)制數(shù)。其過程如下:
3)二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)方法:從小數(shù)點所在位置分別向左、向右每四位一組進(jìn)行劃分。若小數(shù)點左側(cè)的位數(shù)不是4的整數(shù)倍,在數(shù)的最左側(cè)補(bǔ)零;若小數(shù)點右側(cè)的位數(shù)不是4的整數(shù)倍,在數(shù)的最右側(cè)補(bǔ)零。然后參照表1-1,將每四位二進(jìn)制數(shù)轉(zhuǎn)換成對應(yīng)的一位十六進(jìn)制數(shù),排列后即為二進(jìn)制數(shù)對應(yīng)的十六進(jìn)制數(shù)。 0001 1110 . 1100 1 E . C所以
(11110.11)2=(1E.C)16
【例1-12】直接將二進(jìn)制11110.11轉(zhuǎn)換成十六進(jìn)制數(shù)。其過程如下:4)十六進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)方法:參照表1-1,將每一位十六進(jìn)制數(shù)轉(zhuǎn)換成對應(yīng)的四位二進(jìn)制數(shù),排列后即為十六進(jìn)制數(shù)對應(yīng)的二進(jìn)制數(shù)。
【例1-13】直接將十六進(jìn)制數(shù)EF.C轉(zhuǎn)換成二進(jìn)制數(shù)。其過程如下:
E F C 1110 1111. 1100所以
(EF.C)16=(11101111.11)2由以上方法可以看出,(25)10=(11001)2=(19)16=(31)8,(0.5)10=(0.1)2=(0.8)16=(0.4)8。在計算機(jī)里,通常用數(shù)字后面跟一個英文字母來表示該數(shù)的數(shù)制,十進(jìn)制數(shù)用D(Decimal)、二進(jìn)制數(shù)用B(Binary)、八進(jìn)制數(shù)用O(Octal)、十六進(jìn)制數(shù)用H(Hexadecimal)來表示。由于英文字母O容易和零混淆,所以也可以用Q來表示八進(jìn)制數(shù)。另外,在計算機(jī)操作中一般默認(rèn)使用十進(jìn)制數(shù),所以十進(jìn)制數(shù)可以不標(biāo)進(jìn)制。例如,25D=11001B=19H=31Q,0.5D=0.1B=0.8H=0.4Q。當(dāng)然,也可以用這些字母的小寫形式來表示數(shù)制。例如:25d=11001b=19h=31q,0.5d=0.1b=0.8h=0.4q。本書約定采用大寫字母形式。八進(jìn)制數(shù)和十六進(jìn)制數(shù)主要用來簡化二進(jìn)制數(shù)的書寫,因為具有23=8,24=16的關(guān)系,所以使用八進(jìn)制數(shù)和十六進(jìn)制數(shù)表示的二進(jìn)制數(shù)較短,便于記憶。IBM-PC機(jī)中主要使用十六進(jìn)制數(shù)表示二進(jìn)制數(shù)和編碼,所以必須十分熟悉二進(jìn)制數(shù)與十六進(jìn)制數(shù)的對應(yīng)關(guān)系。
同理,任意一個二進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)也可用位權(quán)表示。例如:(101.11)2=1×22+0×21+1×20+1×2-1+1×2-2(124.36)8=1×82+2×81+4×80+3×8-1+6×8-2(AC.B5)16=A×161+C×160+B×16-1+5×16-2
根據(jù)上述概念,可推廣出表示任意進(jìn)制數(shù)的通式:其中為整數(shù)部分,為小數(shù)部分,r為基數(shù)。每一項的數(shù)字可用0~r-1數(shù)字中的一個數(shù)字來表示。1.3.2不同數(shù)制之間的轉(zhuǎn)換
1.十進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換
1)十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制整數(shù)
方法:除2取余法。具體做法:將十進(jìn)制數(shù)除以2,得到一個商和一個余數(shù);再將商除以2,又得到一個商和一個余數(shù);繼續(xù)這一過程,直到商等于0為止。每次得到的余數(shù)(必定是0或1)就是對應(yīng)的二進(jìn)制數(shù)的各位數(shù)字。注意:第一次得到的余數(shù)為二進(jìn)制數(shù)的最低位,最后得到的余數(shù)為二進(jìn)制數(shù)的最高位?!纠?-1】將十進(jìn)制數(shù)97轉(zhuǎn)換成二進(jìn)制數(shù)。其過程如下:最后結(jié)果為(97)10=(A6A5A4A3A2A1A0)2=(1100001)22972482242122623210余數(shù)為1,余數(shù)為0,余數(shù)為0,余數(shù)為0,余數(shù)為0,余數(shù)為1,余數(shù)為1,余數(shù)為0,即A0=1即A1=0即A2=0即A3=0即A4=0即A5=1即A6=1結(jié)束2)十進(jìn)制小數(shù)轉(zhuǎn)換成二進(jìn)制小數(shù)方法:乘2取整法。具體做法:用2乘以十進(jìn)制小數(shù),得到整數(shù)和小數(shù)部分;再用2乘以小數(shù)部分,又得到一個整數(shù)和一個小數(shù)部分;繼續(xù)這一過程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是0或1)按先后順序從左到右排列,即得到所對應(yīng)的二進(jìn)制小數(shù)。【例1-2】將十進(jìn)制小數(shù)0.6875轉(zhuǎn)換成二進(jìn)制小數(shù)。其過程如下:0.6875× ?21.3750 整數(shù)部分為1,即A-1=10.3750 余下的小數(shù)部分×20.7500 整數(shù)部分為0,即A-2=00.7500 余下的小數(shù)部分×?21.5000 整數(shù)部分為1,即A-3=10.5000 余下的小數(shù)部分×?21.0000 整數(shù)部分為1,即A-4=10.0000 余下的小數(shù)部分為0,結(jié)束最后結(jié)果為(0.6875)10=(0.A-1A-2A-3A-4)2=(0.1011)2
為了將一個既有整數(shù)又有小數(shù)部分的十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù),可以將其整數(shù)部分和小數(shù)部分分別進(jìn)行轉(zhuǎn)換,然后再組合起來。例如:(97)10=(1100001)2(0.6875)10=(0.1011)2由此可得:(97.6875)10=(1100001.1011)23)二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)方法:按位權(quán)展開后相加?!纠?-3】將二進(jìn)制數(shù)111.11轉(zhuǎn)換成十進(jìn)制數(shù)。其過程如下:(111.11)2=1×22+1×21+1×20+1×2-1+1×2-2 =4+2+1+0.5+0.25=(7.75)10
2.十進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換
1)十進(jìn)制整數(shù)轉(zhuǎn)換成八進(jìn)制整數(shù)方法:除8取余法。具體做法:將十進(jìn)制數(shù)除以8,得到一個商和一個余數(shù);再將商除以8,又得到一個商和一個余數(shù);繼續(xù)這一過程,直到商等于0為止。每次得到的余數(shù)(必定是小于8的數(shù))就是對應(yīng)八進(jìn)制數(shù)的各位數(shù)字。第一次得到的余數(shù)為八進(jìn)制數(shù)的最低位,最后一次得到的余數(shù)為八進(jìn)制數(shù)的最高位。【例1-4】將十進(jìn)制數(shù)97轉(zhuǎn)換成八進(jìn)制數(shù)。其過程如下:最后結(jié)果為(97)10=(A2A1A0)8=(141)8余數(shù)為1,余數(shù)為4,余數(shù)為1,即A0=1即A1=4即A2=1結(jié)束89781281商為0余數(shù)為0,2)十進(jìn)制小數(shù)轉(zhuǎn)換成八進(jìn)制小數(shù)
方法:乘8取整法。具體做法:用8乘以十進(jìn)制小數(shù),得到一個整數(shù)和一個小數(shù)部分;再用8乘以小數(shù)部分,又得到一個整數(shù)和一個小數(shù)部分;繼續(xù)這一過程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是小于8的數(shù))按先后順序從左到右排列,即得到所對應(yīng)的二進(jìn)制小數(shù)?!纠?-5】將十進(jìn)制小數(shù)0.6875轉(zhuǎn)換成八進(jìn)制小數(shù)。其過程如下:
0.6875 ×8 5.5000 整數(shù)部分為5,即A-1=5 0.5000 余下的小數(shù)部分
×8 4.0000 整數(shù)部分為4,即A-2=4 0.0000 余下的小數(shù)部分為0,結(jié)束最后結(jié)果為(0.6875)10=(0.A-1A-2)8=(0.54)8同理,一個八進(jìn)制數(shù)可分解成整數(shù)和小數(shù)部分,分別轉(zhuǎn)換后合成即可。3)八進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)方法:按位權(quán)展開后相加【例1-6】
將八進(jìn)制數(shù)141.54轉(zhuǎn)換成十進(jìn)制數(shù)。其過程如下:(141.54)8=1×82+4×81+1×80+5×8-1+4×8-2 =64+32+1+0.625+0.0625 =97.6875最后結(jié)果為
(141.54)8=(97.6875)10
3.十進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換
1)十進(jìn)制整數(shù)轉(zhuǎn)換成十六進(jìn)制整數(shù)
方法:除16取余法。具體做法:將十進(jìn)制數(shù)除以16,得到一個商和一個余數(shù);再將商除以16,又得到一個商和一個余數(shù);繼續(xù)這一過程,直到商等于0為止。每次得到的余數(shù)(必定是小于F的數(shù))就是對應(yīng)十六進(jìn)制數(shù)的各位數(shù)字。第一次得到的余數(shù)為十六進(jìn)制數(shù)的最低位,最后一次得到的余數(shù)為十六進(jìn)制數(shù)的最高位?!纠?-7】將十進(jìn)制數(shù)97轉(zhuǎn)換成十六進(jìn)制數(shù)。其過程如下:最后結(jié)果為(97)10=(A2A1A0)16=(61)16余數(shù)為1,余數(shù)為6,即A0=1即A1=6結(jié)束1697166商為0余數(shù)為0,2)十進(jìn)制小數(shù)轉(zhuǎn)換成十六進(jìn)制小數(shù)方法:乘16取整法。具體做法:用16乘以十進(jìn)制小數(shù),得到一個整數(shù)和一個小數(shù)部分;再用16乘以小數(shù)部分,又得到一個整數(shù)和一個小數(shù)部分;繼續(xù)這一過程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是小于F的數(shù))按先后順序從左到右排列,即得到所對應(yīng)的十六進(jìn)制小數(shù)?!纠?-8】將十進(jìn)制小數(shù)0.6875轉(zhuǎn)換成十六進(jìn)制小數(shù)。其過程如下:0.68751611.00000.0000整數(shù)部分為11,即A-1=B余下的小數(shù)部分為0,結(jié)束最后結(jié)果為(0.6875)10=(0.A-1)16=(0.B)163)十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)方法:按位權(quán)展開后相加?!纠?-9】
將十六進(jìn)制數(shù)61.B轉(zhuǎn)換成十進(jìn)制數(shù)。其過程如下:
(61.B)8 =6×161+1×160+B×16-1 =96+1+11×16-1 =97+0.6875 =97.6875最后結(jié)果為
(61.B)16=(97.6875)10
4.二進(jìn)制與八進(jìn)制、十六進(jìn)制數(shù)之間的轉(zhuǎn)換因為23=8,所以每三位二進(jìn)制數(shù)對應(yīng)一位八進(jìn)制數(shù);24=16,所以每四位二進(jìn)制數(shù)對應(yīng)一位十六進(jìn)制。表1-1列出了十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制最基本數(shù)字的對應(yīng)關(guān)系,這些對應(yīng)關(guān)系在后面的二進(jìn)制、八進(jìn)制、十六進(jìn)制相互轉(zhuǎn)換中要經(jīng)常用到。
1)二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)
方法:從小數(shù)點所在位置分別向左向右每三位一組進(jìn)行劃分。若小數(shù)點左側(cè)的位數(shù)不是3的整數(shù)倍,在數(shù)的最左側(cè)補(bǔ)零;若小數(shù)點右側(cè)的位數(shù)不是3的整數(shù)倍,在數(shù)的最右側(cè)補(bǔ)零。然后參照表1-1,將每三位二進(jìn)制數(shù)轉(zhuǎn)換成對應(yīng)的一位八進(jìn)制數(shù),即為二進(jìn)制數(shù)對應(yīng)的八進(jìn)制數(shù)。表1-1十、二、八、十六進(jìn)制數(shù)碼的對應(yīng)關(guān)系十進(jìn)制二進(jìn)制八進(jìn)制十六進(jìn)制00000001000111200102230011334010044501015560110667011177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F表1-1十、二、八、十六進(jìn)制數(shù)碼的對應(yīng)關(guān)系【例1-10】直接將二進(jìn)制數(shù)11110.11轉(zhuǎn)換成八進(jìn)制數(shù)。其過程如下:011 110 . 1103 6 . 6所以(11110.11)2=(36.6)82)八進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)方法:參照表1-1,將每一位八進(jìn)制數(shù)分解成對應(yīng)的三位二進(jìn)制數(shù),即為八進(jìn)制數(shù)對應(yīng)的二進(jìn)制數(shù)。
【例1-11】直接將八進(jìn)制數(shù)35.6轉(zhuǎn)換成二進(jìn)制數(shù)。其過程如下:3 5 . 6011 101 . 110
所以(35.6)8=(11101.11)2
3)二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)方法:從小數(shù)點所在位置分別向左向右每四位一組進(jìn)行劃分。若小數(shù)點左側(cè)的位數(shù)不是4的整數(shù)倍,在數(shù)的最左側(cè)補(bǔ)零;若小數(shù)點右側(cè)的位數(shù)不是4的整數(shù)倍,在數(shù)的最右側(cè)補(bǔ)零。然后參照表1-1,將每四位二進(jìn)制數(shù)轉(zhuǎn)換成對應(yīng)的一位十六進(jìn)制數(shù),即為二進(jìn)制數(shù)對應(yīng)的十六進(jìn)制數(shù)。
【例1-12】直接將二進(jìn)制11110.11轉(zhuǎn)換成十六進(jìn)制數(shù)。其過程如下:0001 1110 . 11001 E . C所以(11110.11)2=(1E.C)164)十六進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)方法:參照表1-1,將每一位十六進(jìn)制數(shù)轉(zhuǎn)換成對應(yīng)的四位二進(jìn)制數(shù),即為十六進(jìn)制數(shù)對應(yīng)的二進(jìn)制數(shù)。
【例1-13】直接將十六進(jìn)制數(shù)EF.C轉(zhuǎn)換成二進(jìn)制數(shù)。其過程如下:
E F . C1110 1111 . 1100所以(EF.C)16=(11101111.11)2
由以上方法可以看出,(25)10=(11001)2=(19)16=(31)8,(0.5)10=(0.1)2=(0.8)16=(0.4)8。在計算機(jī)里,通常用數(shù)字后面跟一個英文字母來表示該數(shù)的數(shù)制,十進(jìn)制數(shù)用D(Decimal)、二進(jìn)制數(shù)用B(Binary)、八進(jìn)制數(shù)用O(Octal)、十六進(jìn)制數(shù)用H(Hexadecimal)來表示。由于英文字母O容易和零誤會,所以也可以用Q來表示八進(jìn)制數(shù)。另外,在計算機(jī)操作中一般默認(rèn)使用十進(jìn)制數(shù),所以十進(jìn)制數(shù)可以不標(biāo)進(jìn)制。
例如,25D=1100B=19H=31Q,0.5D=0.1B=0.8H=0.4Q。當(dāng)然,也可以用這些字母的小寫形式來表示數(shù)制。例如:25d=1100b=19h=31q,0.5d=0.1b=0.8h=0.4q。本書約定采用大寫字母形式。八進(jìn)制數(shù)和十六進(jìn)制數(shù)主要用來簡化二進(jìn)制數(shù)的書寫,因為具有23=8,24=16的關(guān)系,所以使用八進(jìn)制數(shù)和十六進(jìn)制數(shù)表示的二進(jìn)制數(shù)較短,便于記憶。IBM-PC機(jī)中主要使用十六進(jìn)制數(shù)表示二進(jìn)制數(shù)和編碼,所以必須十分熟悉二進(jìn)制數(shù)與十六進(jìn)制數(shù)的對應(yīng)關(guān)系。1.2計算機(jī)中數(shù)與字符的編碼1.2.1數(shù)值數(shù)據(jù)的編碼及其運算
1.二進(jìn)制數(shù)據(jù)的編碼及運算在二進(jìn)制數(shù)制中,數(shù)據(jù)的正負(fù)號可以用一位二進(jìn)制的“0”和“1”兩個狀態(tài)來表示,這樣,二進(jìn)制數(shù)值數(shù)據(jù)在計算機(jī)中就能方便表示了。為了盡可能簡化對二進(jìn)制數(shù)值數(shù)據(jù)實現(xiàn)算術(shù)運算的規(guī)則,機(jī)器將二進(jìn)制數(shù)值數(shù)據(jù)進(jìn)行編碼表示,常用的編碼有原碼、反碼和補(bǔ)碼。由于補(bǔ)碼編碼有許多優(yōu)點,因此大多數(shù)微機(jī)數(shù)字與字符采用補(bǔ)碼編碼。
為了討論方便,有必要引入兩個概念:機(jī)器數(shù)和機(jī)器數(shù)的真值(簡稱真值)。
.機(jī)器數(shù):帶符號的二進(jìn)制數(shù)值數(shù)據(jù)在計算機(jī)內(nèi)部的編碼。
.真值:機(jī)器數(shù)所代表的實際值。一般機(jī)器數(shù)的最高有效位用來表示數(shù)的正負(fù)號,“0”表示正數(shù),“1”表示負(fù)數(shù)。1)二進(jìn)制數(shù)原碼編碼方法原碼編碼的方法如下:設(shè)真值為X,機(jī)器字長為n位,則當(dāng)X≥0時,[X]原的最高位填0,其余n-1位填X的各數(shù)值位的位值。例如,n=8時,[+0]原=00000000,[+1]原=00000001,[+127]原=01111111。當(dāng)X≤0時,[X]原的最高位填1,其余n-1位填X的各數(shù)值位的位值。例如,n=8時,[-0]原=10000000,[-1]原=10000001,[-127]原=11111111。結(jié)論:二進(jìn)制正、負(fù)數(shù)的原碼就是符號化的機(jī)器數(shù)真值本身。
注意:在原碼的表示中,真值0的原碼可表示為兩種不同的形式,+0和-0。原碼表示法的優(yōu)點是簡單易于理解,與真值間的轉(zhuǎn)換較為方便。它的缺點是進(jìn)行加減運算時較麻煩,既要考慮是做加法還是做減法運算,還要考慮數(shù)的符號和絕對值的大小。這不僅使運算器的設(shè)計較為復(fù)雜,而且降低了運算器的運算速度。若有二進(jìn)制數(shù)X=Xn-1Xn-2…X1X0,則原碼表示法的定義為2n-1>X≥00≥X>-2n-12)二進(jìn)制數(shù)反碼編碼方法反碼編碼的方法如下:設(shè)真值為X,機(jī)器字長為n位,則當(dāng)X≥0時,[X]反的最高位填0,其余n-1位填X的各數(shù)值位的位值,即采用符號—絕對值表示。例如,n=8時,[+0]反=00000000,[+1]反=00000001,[+127]反=01111111。當(dāng)X≤0時,[X]反=2n-1+X(MOD2n)。例如,n=8時,[-0]反=11111111,[-1]反=11111110,[-127]反=10000000。
結(jié)論:二進(jìn)制正數(shù)的反碼就是其原碼。二進(jìn)制負(fù)數(shù)的反碼就是機(jī)器數(shù)符號位保持不變,其余按位取反。
注意:在反碼的表示中,真值0的反碼也可表示為兩種不同的形式,+0和-0。若二進(jìn)制數(shù)X=Xn-1Xn-2…X1X0,則反碼表示法的定義為2n-1>X≥00≥X>-2n-13)二進(jìn)制數(shù)補(bǔ)碼編碼方法補(bǔ)碼編碼的方法如下:設(shè)真值為X,機(jī)器字長為n位,則當(dāng)X≥0時,[X]補(bǔ)的最高位填0,其余n-1位填X的各數(shù)值位的位值,即采用符號—絕對值表示。例如,n=8時,[+0]補(bǔ)=00000000,[+1]補(bǔ)=00000001,[+127]補(bǔ)=01111111。當(dāng)X≤0時,[X]補(bǔ)=2n-|X|(MOD2n)。例如,n=8時,[-0]補(bǔ)=00000000,[-1]補(bǔ)=11111111,[-127]補(bǔ)=10000001。結(jié)論:二進(jìn)制正數(shù)的補(bǔ)碼就是其原碼。二進(jìn)制負(fù)數(shù)的補(bǔ)碼就是機(jī)器數(shù)符號位保持不變,其余位取反碼后末位加1。
求負(fù)數(shù)的補(bǔ)碼有一種更簡便的方法:當(dāng)X≤0時,[X]補(bǔ)的最高位填1,其余n-1位填X的各數(shù)值位按位取反(0變1,1變0)后在末位加1的數(shù)值。
注意:①在補(bǔ)碼表示法中,0只有一種表示,即000…000。②對于10000000這個補(bǔ)碼編碼,其真值被定義為-128。
【例1-14】
機(jī)器字長n=8位,X=+48D,求[X]補(bǔ)。首先將+48D轉(zhuǎn)換為二進(jìn)制數(shù):+110000B。因為機(jī)器字長是8位,其中符號占了1位,所以數(shù)值只占7位。將+110000B寫成+0110000B,[+48]補(bǔ)
=00110000B,寫成十六進(jìn)制數(shù)為30H,即[+48]補(bǔ)
=30H?!纠?-15】機(jī)器字長n=8位,X=-48D,求[X]補(bǔ)。首先將-48D轉(zhuǎn)換為二進(jìn)制數(shù):-110000B。因為機(jī)器字長是8位,其中符號占了1位,所以數(shù)值只占7位。將-110000B寫成-10110000B。再將數(shù)值位0110000B按位求反后為1001111B,末位加1后為1010000B。所以,[-48]補(bǔ)
=11010000B,寫成十六進(jìn)制數(shù)為0D0H,即[-48]補(bǔ)
=0D0H。注意:在匯編語言中,為了區(qū)別指令碼和數(shù)據(jù),規(guī)定以A~F開始的數(shù)據(jù)前面加零,如0D0H。
【例1-16】機(jī)器字長n=16位,X=+48D,求[X]補(bǔ)
+48D轉(zhuǎn)換為二進(jìn)制數(shù):+110000B。因為機(jī)器字長是16位,其中符號占了一位,所以數(shù)值占15位。將+110000B寫成+000000000110000B,[+48]補(bǔ)
=0000000000110000B,寫成十六進(jìn)制數(shù)為0030H,即[+48]補(bǔ)
=0030H。
【例1-17】
機(jī)器字長n=16位,X=-48D,求[X]補(bǔ)。-48D轉(zhuǎn)換為二進(jìn)制數(shù):-110000B。因為機(jī)器字長是16位,其中符號占了1位,所以數(shù)值占15位。將-110000B寫成-000000000110000B。000000000110000B按位求反后為1111111111001111B,末位加1后為1111111111010000B。所以,[-48]補(bǔ)
=1111111111010000B,寫成十六進(jìn)制數(shù)為0FFD0H,即[-48]補(bǔ)
=0FFD0H。
由此可看出,補(bǔ)碼數(shù)要擴(kuò)展時,正數(shù)是在符號的前面補(bǔ)0,負(fù)數(shù)是在符號的前面補(bǔ)1。也就是說,補(bǔ)碼數(shù)擴(kuò)展實際上是符號擴(kuò)展。已知補(bǔ)碼求真值的方法是:當(dāng)機(jī)器數(shù)的最高位(符號位)為0時,表示真值是正數(shù),其值等于其余n-1位的值;當(dāng)機(jī)器數(shù)的最高位(符號位)為1時,表示真值是負(fù)數(shù),其值等于其余n-1位按位取反后末位加1的值。
例如:若[X]補(bǔ)
=01111111,則X=(+1111111)2=(+127)10。若[X]補(bǔ)
=11111111,則X=(-0000001)2=(-1)10。下面討論補(bǔ)碼表示數(shù)的范圍。一般來說,如果機(jī)器字長為n位,則補(bǔ)碼能表示的整數(shù)范圍是-2n-1≤N≤2n-1-1。例如,當(dāng)n=8時,-128≤N≤+127,其二進(jìn)制補(bǔ)碼數(shù)范圍如表1-2所示。表1-28位二進(jìn)制補(bǔ)碼數(shù)范圍補(bǔ)碼編碼(機(jī)器數(shù))十進(jìn)制數(shù)(真值)01111111+12701111110+12600000010+200000001+100000000011111111-111111110-210000010-12610000001-12710000000-1284)二進(jìn)制數(shù)補(bǔ)碼的運算補(bǔ)碼的運算規(guī)則是:[X+Y]補(bǔ)
=[X]補(bǔ)
+[Y]補(bǔ)[X-Y]補(bǔ)
=[X]補(bǔ)
+[-Y]補(bǔ)已知[Y]補(bǔ),求[-Y]補(bǔ)的方法是將[Y]補(bǔ)各位按位取反(包括符號位在內(nèi))末位加1?,F(xiàn)舉例說明以上兩個公式的正確性?!纠?-18】設(shè) X1=+0001100X2=-0001100 Y1=+0000101Y2=-0000101則 [X1]補(bǔ)
=00001100 [X2]補(bǔ)
=11110100[Y1]補(bǔ)
=00000101 [Y2]補(bǔ)
=11111011①計算X1+Y1。+0001100X1 00001100 [X1]補(bǔ)+)+0000101Y1 +)00000101 [Y1]補(bǔ)
+0010001X1+Y1 00010001 [X1]補(bǔ)+[Y1]補(bǔ)因為:
[X1+Y1]補(bǔ)
=[+0010001]補(bǔ)
=00010001=[X1]補(bǔ)+[Y1]補(bǔ)所以:
[X1+Y1]補(bǔ)
=[X1]補(bǔ)
+[Y1]補(bǔ)②計算X1-Y1。+0001100 X1 00001100 [X1]補(bǔ)-)+0000101 Y1 +)11111011 [-Y1]補(bǔ)
+0000111 X1-Y1100000111 [X1]補(bǔ)+[-Y1]補(bǔ)自然丟失
因為:
[X1-Y1]補(bǔ)
=[+0000111]補(bǔ)
=00000111=[X1]補(bǔ)+[-Y1]補(bǔ)所以:
[X1-Y1]補(bǔ)
=[X1]補(bǔ)
+[-Y1]補(bǔ)③計算X2+Y2。-0001100 X2 11110100 [X2]補(bǔ)+)-0000101 Y2 +)11111011 [Y2]補(bǔ) -0010001 X2+Y2 11101111 [X2]補(bǔ)+[Y2]補(bǔ)自然丟失因為:
[X2+Y2]補(bǔ)
=[-0010001]補(bǔ)
=11101111=[X2]補(bǔ)+[Y2]補(bǔ)所以:
[X2+Y2]補(bǔ)
=[X2]補(bǔ)
+[Y2]補(bǔ)④計算X2-Y2。-0001100 X2 11110100 [X2]補(bǔ)-)-0000101 Y2 +) 00000101 [-Y2]補(bǔ)
-0000111 X2-Y2 11111001 [X2]補(bǔ)+[-Y2]補(bǔ)因為:
[X2-Y2]補(bǔ)
=[-0000111]補(bǔ)
=11111001=[X2]補(bǔ)+[-Y2]補(bǔ)所以:
[X2-Y2]補(bǔ)
=[X2]補(bǔ)
+[-Y2]補(bǔ)
由此可看出,計算機(jī)引入了補(bǔ)碼編碼后,帶來了以下幾個優(yōu)點:
(1)減法轉(zhuǎn)化成了加法,這樣大大簡化了運算器硬件電路的設(shè)計,加減法可用同一硬件電路進(jìn)行處理。
(2)運算時,符號位與數(shù)值位同等對待,都按二進(jìn)制數(shù)參加運算,符號位產(chǎn)生的進(jìn)位丟掉不管,其結(jié)果是正確的。這大大簡化了運算規(guī)則。
運用以上兩個公式時,要注意以下兩點:
(1)公式成立有個前提條件,就是運算結(jié)果不能超出機(jī)器數(shù)所能表示的范圍,否則運算結(jié)果不正確,按“溢出”處理。例如,設(shè)機(jī)器字長為8位,則-128≤N≤+127,計算(+64)+(+65)。+64 01000000+)+65 +) 01000001+129 10000001—→-127
顯然這個結(jié)果是錯誤的。究其原因是:(+64)+(+65)=+129>+127,超出了字長為8位所能表示的最大值,產(chǎn)生了“溢出”,所以結(jié)果值出錯。再如,計算(-125)+(-10)。
-125 10000011+)-10 +) 11110110
-135 101111001—→+121顯然,計算結(jié)果也是錯誤的。其原因是:(-125)+(-10)=-135<-128,超出了字長為8位所能表示的最小值,產(chǎn)生了“溢出”,所以結(jié)果出錯。(2)采用補(bǔ)碼運算后,結(jié)果也是補(bǔ)碼,欲得運算結(jié)果的真值,還需進(jìn)行轉(zhuǎn)換。
2.無符號整數(shù)的編碼及運算規(guī)則在某些情況下,計算機(jī)要處理的數(shù)據(jù)全是正數(shù),此時機(jī)器數(shù)再保留符號位就沒有意義了。這時,將機(jī)器數(shù)最高有效位也作為數(shù)值位處理,也就是說,假設(shè)機(jī)器字長為n位,則有符號整數(shù)的編碼可表示為符號位數(shù)值位1位n-1位無符號整數(shù)的編碼可表示為數(shù)值位n位
無符號整數(shù)的表示范圍是:0≤N≤2n-1。例如,當(dāng)n=8位時,表示范圍是:0≤N≤255;當(dāng)n=16位時,表示范圍是:0≤N≤65535。計算機(jī)中最常見的無符號整數(shù)是地址,另外,雙字長數(shù)據(jù)的低位字也是無符號整數(shù)。要注意的是,計算機(jī)本身不論是對有符號數(shù)還是無符號數(shù),總是按照補(bǔ)碼的運算規(guī)則做運算。例如,機(jī)器做這樣一個運算:10001010+) 00000111 10010001可以把它看作是兩個無符號整數(shù)相加:也可以把它看作是兩個有符號整數(shù)相加:138+) 70145
-118+)7
-111
也就是說,不論把二進(jìn)制數(shù)解釋成有符號數(shù)還是無符號數(shù),其結(jié)果都是正確的。因此,機(jī)器采用補(bǔ)碼編碼以后,不必針對無符號數(shù)和有符號數(shù)設(shè)計兩套不同的電路,無符號數(shù)和有符號數(shù)的運算是兼容的。這也是采用補(bǔ)碼后帶來的一大優(yōu)點。
3.十進(jìn)制數(shù)的編碼及運算人們在日常生活中習(xí)慣使用十進(jìn)制數(shù),而在計算機(jī)內(nèi),采用二進(jìn)制表示和處理數(shù)據(jù)更方便。因此,計算機(jī)在輸入和輸出數(shù)據(jù)時,要進(jìn)行十→二和二→十的進(jìn)制數(shù)轉(zhuǎn)換。但是,在某些特定的應(yīng)用領(lǐng)域中(如商業(yè)統(tǒng)計),數(shù)據(jù)的運算很簡單,但數(shù)據(jù)的輸入和輸出量很大,這樣,進(jìn)制轉(zhuǎn)換所占的時間比例就會很大。從提高計算機(jī)的運行效率考慮,可以采用在計算機(jī)內(nèi)部直接用十進(jìn)制表示和處理數(shù)據(jù)的方法。以下介紹在計算機(jī)內(nèi)部的十進(jìn)制數(shù)的編碼方法及運算方法。
十進(jìn)制數(shù)的每一個數(shù)位的基為10,但到了計算機(jī)內(nèi)部,必須用基2碼對每個十進(jìn)制數(shù)位進(jìn)行編碼,所需要的最少的基碼的位數(shù)為lb10(即log210),取整數(shù)為4。4位基2碼有16種不同的組合,怎樣從中選擇出10個組合來表示十進(jìn)制數(shù)位的0~9,有非常多的方案,最常見的是8421碼。8421碼是指4個基2碼的位權(quán)從高到低分別為8、4、2、1,選擇的是0000,0001,0010,…,1001這10種組合,用來表示0~9這10個數(shù)位,如表1-3所示。表1-3BCD碼表
這種編碼的特點是:這4個基2碼之間滿足二進(jìn)制規(guī)則,而十進(jìn)制數(shù)位之間是十進(jìn)制計數(shù)規(guī)則。因此,這種編碼實質(zhì)上是二進(jìn)制編碼的十進(jìn)制數(shù)(BinaryCodedDecimal),因此,簡稱BCD碼或二—十進(jìn)制碼。十進(jìn)制數(shù)碼01234567898421碼0000000100100011010001010110011110001001【例1-19】將十進(jìn)制數(shù)67.9轉(zhuǎn)換成BCD碼。其過程如下:
6 7 . 90110 0111 . 1001所以(67.9)10=(01100111.0111)BCD【例1-20】將BCD碼10010110.0110轉(zhuǎn)換成十進(jìn)制數(shù),其過程如下:10010110 . 01109 6 . 6所以(10010110.0110)BCD=(96.6)10BCD碼的運算規(guī)則:BCD碼是十進(jìn)制數(shù),而運算器對數(shù)據(jù)做加減運算時,都是按二進(jìn)制運算規(guī)則進(jìn)行處理的。這樣,當(dāng)將BCD碼傳送給運算器進(jìn)行運算時,其結(jié)果需要修正。修正的規(guī)則是:當(dāng)兩個BCD碼相加,如果和等于或小于1001(即9H),不需要修正;如果相加之和在1010到1111(即0AH~0FH)之間,則需加6H進(jìn)行修正;如果相加時本位產(chǎn)生了進(jìn)位,也需加6H進(jìn)行修正。這樣做的原因是,機(jī)器按二進(jìn)制相加,所以4位二進(jìn)制數(shù)相加時,是按“逢十六進(jìn)一”的原則進(jìn)行運算的,而實質(zhì)上是2個十進(jìn)制數(shù)相加,應(yīng)該按“逢十進(jìn)一”的原則相加,16與10相差6,所以當(dāng)和超過9或有進(jìn)位時,都要加6進(jìn)行修正。下面舉例說明?!纠?-21】計算1+8的值。如果將1和8送給機(jī)器進(jìn)行加法運算,其運算過程如下:0001+)10001001結(jié)果是1001,即十進(jìn)制數(shù)9,1+8=9正確?!纠?-22】需要修正BCD碼運算值的舉例。①計算5+7的值。0101+)01111100結(jié)果大于9+)0110加6修正
10010結(jié)果是0010,即十進(jìn)制數(shù)2,還產(chǎn)生了進(jìn)位。5+7=12,結(jié)論正確。②計算9+9的值。
結(jié)果是1000,即十進(jìn)制的8,還產(chǎn)生進(jìn)位,故加6修正。9+9=18,結(jié)論正確。1001+)100110010+)011011000加6修正
若做減法運算,其修正規(guī)則為:當(dāng)兩個BCD碼相減,如果差等于或小于1001,不需要修正;如果相減時本位產(chǎn)生了借位,則應(yīng)減6H加以修正。原因是:如果有借位,機(jī)器將這個借位當(dāng)十六看待,而實際上應(yīng)該當(dāng)十看待,因此,應(yīng)該將差值再減6H才是BCD碼的正確結(jié)果值。下面舉例進(jìn)行說明?!纠?-23】
需要修正BCD碼運算值的舉例。①計算9-7的值。1001-)01110010結(jié)果值是0010,即十進(jìn)制數(shù)2。9-7=2,結(jié)論正確。②計算7-9的值。→發(fā)生借位10111-)10011110-)0110減6修正
1000
結(jié)果值是1000,即十進(jìn)制數(shù)8,有借位。7-9=8,結(jié)論正確。(8是-2以10為模的補(bǔ)碼,在機(jī)器中,負(fù)數(shù)都以補(bǔ)碼形式表示)
在計算機(jī)中BCD碼有兩種格式:壓縮BCD碼和非壓縮BCD碼:
(1)非壓縮BCD碼:1字節(jié)(8位二進(jìn)制)中僅表示一位BCD數(shù),例如:(00000110)BCD=6。
(2)壓縮BCD碼:1字節(jié)中僅表示兩位BCD數(shù),例如:(01100110)BCD=66。另外,BCD碼除了采用上述方法調(diào)整以外,也可以在交付計算機(jī)運算之前,先將BCD碼轉(zhuǎn)換為二進(jìn)制數(shù),然后交付計算機(jī)運算,運算以后再將二進(jìn)制結(jié)果轉(zhuǎn)換為BCD碼。1.2.2非數(shù)值數(shù)據(jù)的二進(jìn)制編碼現(xiàn)代計算機(jī)不僅要處理數(shù)值數(shù)據(jù),而且還要處理大量的非數(shù)值數(shù)據(jù),像英文字母、標(biāo)點符號、專用符號、漢字等等。前面已說過,不論什么數(shù)據(jù),都必須用基2碼編碼后才能存儲、傳送及處理,非數(shù)值數(shù)據(jù)也不例外。下面分別討論常見的非數(shù)值數(shù)據(jù)的二進(jìn)制編碼方法。
1.字符編碼使用最多、最普遍的是ASCII字符編碼,即美國標(biāo)準(zhǔn)信息交換代碼(AmericanStandardCodeforInformationInterchange),具體見表1-4。表1-4ASCII字符編碼B6B5B4
B3B2B1B0000(0)001(1)010(2)011(3)100(4)101(5)110(6)111(7)0000(0)NULDLESP0@P`p0001(1)SOHDC1!1AQaq0010(2)STXDC2″2BRbr0011(3)ETXDC3#3CScs0100(4)EOTDC4$4DTdt0101(5)ENQNAK%5EUeu0110(6)ACKSYN&6FVfv0111(7)BELETB?7GWgw1000(8)BSCAN(8HXhx1001(9)HTEM)9IYiy1010(A)LFSUB*:JZjz1011(B)VTESC+;K[k{1100(C)FFFS,<L\l|1101(D)CRGS-=M]m}1110(E)SORS.>N^n~1111(F)SIUS/?O_oDELASCII碼表有以下幾個特點:
(1)每個字符用7位基2碼表示,其排列次序為B6B5B4B3B2B1B0。實際上,在計算機(jī)內(nèi)部,每個字符是用8位(即一個字節(jié))表示的。一般情況下,將最高位置為“0”,即B7為“0”。需要奇偶校驗時,最高位用做校驗位。(2)ASCII碼共編碼了128個字符,它們分別是:*32個控制字符,主要用于通信中的通信控制或?qū)τ嬎銠C(jī)設(shè)備的功能控制,編碼值為0~31(十進(jìn)制)。*間隔字符(也稱空格字符)SP,編碼值為20H。*刪除控制碼DEL,編碼值為7FH。*94個可印刷字符(或稱有形字符)。這94個可印刷字符編碼有如下兩個規(guī)律:①字符0~9這10個數(shù)字符的高3位編碼都為011,低4位為0000~1001,屏蔽掉高3位的值,低4位正好是數(shù)據(jù)0~9的二進(jìn)制形式。這樣編碼的好處是既滿足正常的數(shù)值排序關(guān)系,又有利于ASCII碼與二進(jìn)制碼之間的轉(zhuǎn)換。②英文字母的編碼值滿足A~Z或a~z正常的字母排序關(guān)系。另外,大小寫英文字母編碼僅是B5位值不相同,B5為1是小寫字母,這樣編碼有利于大、小寫字母之間的編碼轉(zhuǎn)換。
2.漢字的編碼計算機(jī)在處理漢字時,漢字字符也必須用基2碼編碼表示,一般漢字編碼采用兩個字節(jié)即16位二進(jìn)制數(shù)。但由于漢字的特殊性,在漢字的輸入、存儲、輸出過程中所使用的漢字編碼是不一樣的,輸入時有輸入編碼,存儲時有漢字機(jī)內(nèi)碼,輸出時有漢字字形編碼。1)漢字輸入編碼為了能把漢字這種象形文字通過西文標(biāo)準(zhǔn)鍵盤輸入到計算機(jī)內(nèi),就必須對漢字用鍵盤已有的字符設(shè)計編碼,這種編碼稱為漢字的輸入編碼。同一漢字有不同的輸入編碼,這取決于用戶采用哪種輸入法。不同的輸入法對同一漢字有不同的編碼方案。常見的有數(shù)字碼、音碼、形碼及混合碼。2)漢字機(jī)內(nèi)碼漢字機(jī)內(nèi)碼也稱漢字內(nèi)部碼,簡稱內(nèi)碼,它是機(jī)器存儲和處理漢字時采用的統(tǒng)一編碼。每個漢字的機(jī)內(nèi)碼是惟一的,用兩個字節(jié)表示。為了避免與西文字符的ASCII碼之間產(chǎn)生二義性,漢字機(jī)內(nèi)碼中兩個字節(jié)的最高位均規(guī)定為“1”。
3)漢字字形碼漢字字形碼也叫漢字字模點陣碼,是漢字輸出時的字形點陣代碼,是一串基2碼編碼。
3.邏輯數(shù)據(jù)的編碼邏輯數(shù)據(jù)是用來表示“是”與“否”,或稱“真”與“假”兩個狀態(tài)的數(shù)據(jù)。在計算機(jī)中,用“1”表示“真”或“是”,用“0”表示“假”或“否”。需要注意的是,這里的“1”和“0”沒有數(shù)值和大小概念,只有邏輯意義。對邏輯數(shù)據(jù)只能進(jìn)行邏輯運算,例如,邏輯非、邏輯加、邏輯乘等基本邏輯運算和由基本邏輯運算構(gòu)成的各種組合邏輯運算,運算結(jié)果仍是邏輯數(shù)據(jù)。下面介紹一下基本邏輯運算的運算規(guī)則。1)“與”運算(AND)“與”運算又稱邏輯乘,用符號·或∧表示。其運算規(guī)則為0·0=00·1=01·0=01·1=1當(dāng)兩個邏輯變量取值均為1時,它們“與”的結(jié)果才為1。2)“或”運算(OR)“或”運算又稱邏輯加,用符號+或∨表示。其運算規(guī)則為0+0=00+1=11+0=11+1=1當(dāng)兩個邏輯變量的取值只要一個為1,它們“或”的結(jié)果就會為1。3)“非”運算(NOT)“非”運算用符號—來表示。其運算規(guī)則為1=00=14)“異或”運算(XOR)“異或”運算用符號⊕或∨來表示。其運算規(guī)則為0⊕0=00⊕1=11⊕0=11⊕1=0當(dāng)兩個邏輯變量取值不相同時,它們“異或”的結(jié)果才為1。要注意的是,一個邏輯數(shù)據(jù)用一位基2碼表示,這樣,8個邏輯數(shù)據(jù)用8位基2碼表示,這8位基2碼可存放在一個字節(jié)中。反過來說,一個32位的字就可以表示32個邏輯數(shù)據(jù)。表1-5邏輯數(shù)運算規(guī)則
下面舉例說明邏輯運算方法。例如,X=00F0H,Y=7777H,求X∧Y,X∨Y,X∨Y。其運算結(jié)果如下:X∧Y=0070H,X∨Y=77F7H,X∨Y=7787H1.3微型計算機(jī)系統(tǒng)組成1.3.1微型計算機(jī)硬件系統(tǒng)組成微型計算機(jī)主要由以下幾個部分組成:微處理器或稱中央處理單元(CPU)、內(nèi)部存儲器(簡稱內(nèi)存)、輸入/輸出接口(簡稱I/O接口)及系統(tǒng)總線。當(dāng)微型計算機(jī)配備上相應(yīng)的輸入/輸出設(shè)備和軟件,就構(gòu)成了一套完整的微型計算機(jī)系統(tǒng)。一臺微型計算機(jī)硬件系統(tǒng)結(jié)構(gòu)如圖1.1所示。在這里我們將簡單介紹微型計算機(jī)的硬件組成及各部分的基本功能,至于各部分的細(xì)節(jié),將在本書后續(xù)章節(jié)詳細(xì)介紹。1.3.1微型計算機(jī)硬件系統(tǒng)組成微型計算機(jī)主要由以下幾個部分組成:微處理器或稱中央處理單元(CPU)、內(nèi)部存儲器(簡稱內(nèi)存)、輸入/輸出接口(簡稱I/O接口)及系統(tǒng)總線。當(dāng)微型計算機(jī)配備上相應(yīng)的輸入/輸出設(shè)備和軟件,就構(gòu)成了一套完整的微型計算機(jī)系統(tǒng)。一臺微型計算機(jī)硬件系統(tǒng)結(jié)構(gòu)如圖1.1所示。在這里我們將簡單介紹微型計算機(jī)的硬件組成及各部分的基本功能,至于各部分的細(xì)節(jié),將在本書后續(xù)章節(jié)詳細(xì)介紹。圖l.1微型計算機(jī)的硬件結(jié)構(gòu)
1.中央處理單元CPU
中央處理單元CPU(CentralProcessingUnit)是微型計算機(jī)的心臟,它包含了早期計算機(jī)中的運算器、控制器和其他功能部件,它是用來解釋執(zhí)行指令并進(jìn)行運算的部件。CPU是一塊超大規(guī)模集成電路,它集成了成千上萬的邏輯門陣列電路,這些邏輯門陣列電路組成了用于進(jìn)行運算的加法器、算術(shù)邏輯單元、譯碼器、數(shù)據(jù)選擇器、觸發(fā)器、寄存器、計數(shù)器等基本運算單元。無論多么復(fù)雜的工作,都是由計算機(jī)程序來完成的,而計算機(jī)高級語言程序被一級一級地最終翻譯成機(jī)器認(rèn)識的由“0”和“1”組成的二進(jìn)制機(jī)器碼,這些機(jī)器碼就是由上述基本運算單元進(jìn)行處理的,所以人們把計算機(jī)又稱為“電腦”,實際指的就是CPU的功能。目前生產(chǎn)微機(jī)CPU的最大的代表廠商是美國的Intel公司和AMD公司。早期的8086、80286、80386到近期的Pentium、Pentium-Ⅱ、Pentium-Ⅲ、Pentium-4等就是Intel公司的主導(dǎo)產(chǎn)品。在評價CPU的指標(biāo)時,最主要的是看它的主頻,主頻越高,其運算速度越快;字長代表了CPU對數(shù)據(jù)處理的能力和精度;其次還要看CPU的緩存有多大,一般來講,緩存的大小也對CPU的運算速度有很大的影響;當(dāng)然工作溫度也很重要,溫度涉及到CPU的工作壽命。
2.內(nèi)存存儲器的主要任務(wù)是臨時或永久性保存計算機(jī)的軟件資源。存儲器分為內(nèi)存儲器和外存儲器,內(nèi)存儲器指內(nèi)存,用于臨時性保存軟件資源,而外存儲器則包括了硬盤、軟盤、光驅(qū)、磁帶機(jī)等許多設(shè)備,用來永久性保存軟件資源。在現(xiàn)代微機(jī)中內(nèi)存用內(nèi)存條的形狀提供,在計算機(jī)主板上有一個一個的內(nèi)存擴(kuò)展插槽,內(nèi)存條就是插在這些內(nèi)存擴(kuò)展槽上的,內(nèi)存條現(xiàn)在常用的有128MB、256MB、512MB和1GB甚至更大容量。每臺計算機(jī)有多個內(nèi)存擴(kuò)展槽,每個內(nèi)存擴(kuò)展槽又可以插入不同容量的內(nèi)存條,可見一臺機(jī)器的內(nèi)存配置是可由用戶自己決定的。如果想提高機(jī)器的運行速度,并且資金充裕,則可以配置大的內(nèi)存,反之,內(nèi)存也可以配置小一點,并可以根據(jù)實際需要,隨時擴(kuò)充內(nèi)存。
3.系統(tǒng)總線目前,微型計算機(jī)硬件連接都采用總線結(jié)構(gòu)。所謂總線,是指能為多個功能部件服務(wù)的一組公用通信線路。借助總線連接,計算機(jī)在各系統(tǒng)部件之間實現(xiàn)傳送地址、數(shù)據(jù)和控制信息的操作。采用總線結(jié)構(gòu)有兩個優(yōu)點:一是各部件可通過總線交換信息,相互之間不必直接連線,減少了傳輸線的根數(shù),從而提高了微機(jī)的可靠性;二是在擴(kuò)展微機(jī)功能時,只需把要擴(kuò)展的部件連接到總線上即可,使微機(jī)功能擴(kuò)展十分方便。一個微型計算機(jī)系統(tǒng)中的總線,大致分為三類:
(1)內(nèi)部總線:CPU內(nèi)部連接各寄存器及運算部件之間的總線。
(2)系統(tǒng)總線:CPU同計算機(jī)系統(tǒng)的其他高速功能部件,如存儲器、通道等互相連接的總線。
(3)?I/O總線:中、低速I/O設(shè)備之間互相連接的總線。系統(tǒng)總線一般由三部分組成:
(1)數(shù)據(jù)總線(DB):一般是三態(tài)邏輯控制的若干位(如8、16等)數(shù)據(jù)線寬的雙向數(shù)據(jù)總線。用以實現(xiàn)微處理器、存儲器及I/O接口間的數(shù)據(jù)交換。
(2)地址總線(AB):用于微處理器輸出地址,以確定存儲器單元地址及I/O接口部件地址。一般都是三態(tài)邏輯控制的若干位(如16、24等)線寬的單向傳送地址總線。
(3)控制總線(CB):控制總線用來傳送保證計算機(jī)同步和協(xié)調(diào)地定時、控制信號,使微機(jī)各部件協(xié)調(diào)動作,從而保證正確地通過數(shù)據(jù)總線傳送各項信息的操作。其中有些控制信號由微處理器向其他部件輸出,如讀寫等信號;另一些控制信號則由其他部件輸入到微處理器中,如中斷請求、復(fù)位等信號。控制總線不需用三態(tài)邏輯。
4.接口一般而言,接口泛指任何兩個系統(tǒng)之間的交接部分,或兩個系統(tǒng)間的連接部分。在計算機(jī)系統(tǒng)里,接口指中央處理機(jī)與外部設(shè)備之間的連接通道及有關(guān)的控制電路。微型計算機(jī)要對性能各異的外設(shè)進(jìn)行操作與控制,實現(xiàn)彼此之間的信息交換,就必須在主機(jī)與外設(shè)之間設(shè)置一組中間部件,該部件將CPU發(fā)出的控制信號和數(shù)字信號轉(zhuǎn)換成外設(shè)所能識別的數(shù)字符號或執(zhí)行的具體命令,或?qū)⑼庠O(shè)發(fā)送給CPU的數(shù)據(jù)和狀態(tài)信息轉(zhuǎn)換成CPU所能接受的數(shù)字信息。這組位于主機(jī)和外部設(shè)備之間的緩沖電路就是接口。微機(jī)接口技術(shù)包括接口電路和相關(guān)編程技術(shù)。1.3.2微型計算機(jī)軟件系統(tǒng)組成
1.系統(tǒng)軟件起初,這種翻譯工作是程序員用手工完成的,逐漸地,人們就編一個程序讓機(jī)器來完成上述的翻譯工作,具有這樣功能的程序就稱為匯編程序(Assembler)。但是匯編語言的語句與機(jī)器指令是一一對應(yīng)的,程序的語句數(shù)仍然很多,編程仍然是一件十分繁瑣、困難的工作,而且用匯編語言編寫程序必須對機(jī)器的指令系統(tǒng)十分熟悉,即不能脫離具體的機(jī)器,因而匯編語言的程序還不能在不同的機(jī)器上通用。為了使用戶編程更容易,程序中所用的語句與實際問題更接近,而且使用戶可以不必了解具體的機(jī)器,就能編寫程序,同時這樣的程序的通用性更強(qiáng),于是就出現(xiàn)了各種高級語言(Highlevellanguage),例如:BASIC、FORTRAN、PASCAL、COBOL、C等。高級語言易于理解、學(xué)習(xí)和掌握;用戶用高級語言編程也就方便多了,大大減少了工作量。但是計算機(jī)在執(zhí)行時,仍必須把用高級語言編寫的源程序翻譯成用機(jī)器指令表示的目標(biāo)程序才能執(zhí)行,這樣就需要有各種解釋程序(Interpreter),(針對BASIC)或編譯程序(Compiler)(針對FORTRAN、C、COBOL)等。
2.應(yīng)用軟件用戶利用計算機(jī)以及它所提供的各種系統(tǒng)軟件,編制解決用戶各種實際問題的程序,這些程序、數(shù)據(jù)和資料就稱為應(yīng)用軟件。應(yīng)用軟件也可以逐步標(biāo)準(zhǔn)化、模塊化,逐步形成了解決各種典型問題的應(yīng)用程序的組合,稱其為應(yīng)用軟件包(Package)。
3.支撐(或稱為支持)軟件隨著計算機(jī)硬件和軟件的發(fā)展,計算機(jī)在信息處理、情報檢索以及各種管理系統(tǒng)中的應(yīng)用越來越普及。計算機(jī)需要處理大量的數(shù)據(jù),檢索和建立大量的各種表格,而且這些數(shù)據(jù)和表格應(yīng)按一定規(guī)律組織起來,使得檢索更迅速,處理更方便,也更便于用戶使用,于是就建立了數(shù)據(jù)庫。為便于用戶根據(jù)需要建立自己的數(shù)據(jù)庫,查詢、顯示、修改數(shù)據(jù)庫的內(nèi)容,輸出打印各種表格等,就建立了數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem)等支撐軟件。上述都是各種形式的程序,它們存儲在各種存儲介質(zhì)中,例如磁盤、磁帶、光盤等,統(tǒng)稱為計算機(jī)的軟件。總之,計算機(jī)的硬件建立了計算機(jī)應(yīng)用的物質(zhì)基礎(chǔ);而各種軟件激活了計算機(jī)且擴(kuò)大了計算機(jī)的功能,擴(kuò)大了它的應(yīng)用范圍,以便于用戶使用。硬件與軟件的結(jié)合才是一個完整的計算機(jī)系統(tǒng)。1.3.3微型計算機(jī)的工作過程微型計算機(jī)必須在硬件和軟件的相互配合下才能工作。每種型號的CPU都有自己的指令系統(tǒng),每條指令一般都由指令操作碼(規(guī)定指令的操作類型)和操作數(shù)(規(guī)定指令的操作對象)兩部分組成。用戶根據(jù)要完成的任務(wù)預(yù)先分解成一系列的基本動作(又稱為算法)并且編好程序,再通過輸入設(shè)備(如鍵盤)將程序送入存儲器中。微型計算機(jī)開始工作后,首先將該程序在存儲器中的起始地址送入微處理器中的程序計數(shù)器(PC)中,微處理器根據(jù)PC中的地址值找到對應(yīng)的存儲單元,并取出存放在其中的指令操作碼送入微處理器中的指令寄存器(IR)中,由指令譯碼器(ID)對操作碼進(jìn)行譯碼,并由微操作控制電路發(fā)出相應(yīng)的微操作控制脈沖序列去取出指令的剩余部分(如果指令不止1個字節(jié)的長度),同時執(zhí)行指令賦予的操作功能。在取指過程中,每取出1個單元的指令,PC自動加1,形成下一個存儲單元的地址。以上為一條指令的執(zhí)行過程,如此不斷重復(fù)上述過程,直至執(zhí)行完最后一條指令的動作為止。綜上所述,微型計算機(jī)的基本工作過程是執(zhí)行程序的過程,也就是CPU自動從程序存放的第1個存儲單元起,逐步取出指令、分析指令,并根據(jù)指令規(guī)定的操作類型和操作對象,執(zhí)行指令規(guī)定的相關(guān)操作。如此周而復(fù)始,直至執(zhí)行完程序的所有指令,從而實現(xiàn)程序的基本功能,這就是微型計算機(jī)的基本工作過程。
1.4微型計算機(jī)的性能指標(biāo)及分類1.4.1微型計算機(jī)的性能指標(biāo)
1.位(bit)、字節(jié)(Byte)和字長(Word)位(bit)是計算機(jī)內(nèi)部數(shù)據(jù)儲存的最小單位,表示數(shù)據(jù)“1”或“0”,音譯為“比特”,習(xí)慣上用小寫字母的“b”表示。字節(jié)(Byte)是計算機(jī)中數(shù)據(jù)處理的基本單位,習(xí)慣上用大寫字母“B”表示。計算機(jī)中以字節(jié)為單位存儲和解釋信息,規(guī)定1個字節(jié)由8個二進(jìn)制位構(gòu)成,即1個字節(jié)等于8個比特(1Byte=8bit)。八位二進(jìn)制數(shù)最小為00000000,最大為11111111;通常1個字節(jié)可以存入一個ASCII碼,2個字節(jié)可以存放一個漢字國標(biāo)碼。字長(Word)是指微處理器內(nèi)部一次可以并行處理二進(jìn)制代碼的位數(shù)。它與微處理器內(nèi)部寄存器以及CPU內(nèi)部數(shù)據(jù)總線寬度是一致的,字長越長,所表示的數(shù)據(jù)精度就越高。在完成同樣精度的運算時,字長較長的微處理器比字長較短的微處理器運算速度快。大多數(shù)微處理器內(nèi)部的數(shù)據(jù)總線與微處理器的外部數(shù)據(jù)引腳寬度是相同的。字長是微型機(jī)重要的性能指標(biāo),也是微型機(jī)分類的主要依據(jù)之一。如把微型機(jī)分為8位、15位、32位、64位機(jī)等。
2.存儲容量存儲容量是衡量微機(jī)內(nèi)部存儲器能夠存儲二進(jìn)制信息量大小的一個技術(shù)指標(biāo)。內(nèi)存儲器由若干個存儲單元組成,每個單元分配一個固定的地址并且存放一個字節(jié)的數(shù)據(jù),存儲單元的地址數(shù)由CPU的地址總線條數(shù)決定,同時也確定了內(nèi)存的容量大小。存儲器容量一般以字節(jié)為最基本的計量單位。一個字節(jié)記為1B,1024個字節(jié)記為1KB(千字節(jié),KiloByte),1024KB字節(jié)記為1MB(兆字節(jié),MegaByte),1024MB字節(jié)記為1GB(吉字節(jié),GigaByte),而1024GB字節(jié)記為1TB(太字節(jié),TeraByte)。
3.指令系統(tǒng)任
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貓咪寵物合同范例
- 監(jiān)理施工合同范例2014
- 私人買賣煤炭合同范例
- 商標(biāo)許可備案合同范例
- 涂料工程范例合同范例
- 簽訂固定總價合同范例
- 簡易鋼筋工合同范例
- 工廠產(chǎn)品裝卸合同范例
- 賓館水暖維修合同范例
- 板材拿貨合作合同范例
- 蘇教版七年級歷史知識點
- 陜西省既有村鎮(zhèn)住宅抗震加固技術(shù)規(guī)程
- 智聯(lián)國企行測筆試真題
- 2025屆新高考物理熱點精準(zhǔn)復(fù)習(xí):高中物理6大模塊計算題思路總結(jié)
- 2024-2030年中國光電共封裝(CPO)行業(yè)投融資趨勢及發(fā)展前景分析研究報告
- 2025屆江蘇省期無錫市天一實驗學(xué)校數(shù)學(xué)七年級第一學(xué)期期末達(dá)標(biāo)檢測試題含解析
- 城市軌道交通運營管理【共30張課件】
- 學(xué)生退學(xué)情況說明
- 鋼結(jié)構(gòu)設(shè)計智慧樹知到期末考試答案章節(jié)答案2024年山東建筑大學(xué)
- DB5334 T 12.5-2024《地理標(biāo)志證明商標(biāo) 香格里拉藏香豬》的第5部分疾病防治
- 化學(xué)機(jī)械漿與半化學(xué)機(jī)械漿
評論
0/150
提交評論