計算機中的數(shù)制和碼制_第1頁
計算機中的數(shù)制和碼制_第2頁
計算機中的數(shù)制和碼制_第3頁
計算機中的數(shù)制和碼制_第4頁
計算機中的數(shù)制和碼制_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

計算機中的數(shù)制和碼制內(nèi)容提要數(shù)和數(shù)制有符號的二進制數(shù)的表示方法及溢出問題定點數(shù)和浮點數(shù)二進制編碼11、數(shù)和數(shù)制計數(shù)制:一種計數(shù)的方法,用不同的代碼來表示任意數(shù)計算機中使用二進制數(shù)(B)為方便二進制數(shù)的記憶,使用十六進制數(shù)(H)為與人們良好溝通,使用十進制數(shù)(D)2十進制數(shù)的特點代碼個數(shù):具有10個不同的代碼,分別是0、1、2、3、4、5、6、7、8、9進位規(guī)則:逢10進一權:以10為底的冪“權”是一種位置系數(shù)3二進制數(shù)的特點代碼個數(shù):具有2個不同的代碼,分別是0、1進位規(guī)則:逢2進一權:以2為底的冪4十六進制數(shù)的特點代碼個數(shù):具有16個不同的代碼,分別是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F進位規(guī)則:逢16進一權:以16為底的冪5十進制、二進制、十六進制數(shù)碼對照表十進制二進制十六進制00000B0H10001B1H20010B2H30011B3H40100B4H50101B5H60110B6H70111B7H81000B8H十進制二進制十六進制91001B9H101010B0AH111011B0BH121100B0CH131101B0DH141110B0EH151111B0FH1610000B10H6位置計數(shù)法(1)同一個數(shù)字在不同的數(shù)位代表的數(shù)值是不同的,這種計數(shù)方法稱為位置計數(shù)法。在位置計數(shù)法中,對每一個數(shù)位賦予不同的位值,稱為權。每個數(shù)位上的數(shù)字所表示的量是這個數(shù)字和該數(shù)位的權的乘積。所以一般來說,對于基數(shù)為X的任意數(shù)可以用多項式表示7位置計數(shù)法(2)其中:Ki——第i位的系數(shù),可以為0,1,…,(X-1)共X個數(shù)字符號中任一數(shù)字符號;m,n——冪指數(shù),均為正整數(shù);Xi——第i位的權。8書寫規(guī)則為了區(qū)分不同數(shù)制,常用如下方法:后綴表示法:

B—二進制;例:1011BO—八進制;例:345o(或Q)D—十進制(可省略);例:678D(或678)H—十六進制;例:8DFH9各種數(shù)制的相互轉換(1)非十進制數(shù)轉換成十進制數(shù)可將其按定義展開為多項式,再將系數(shù)和權均用十進制表示后,按照十進制進行乘法和加法計算,所得結果即為對應的十進制數(shù)。例:二進制整數(shù)轉換為十進制整數(shù)101000101B=1*28+1*26+1*22+1*20=325D例:二進制小數(shù)轉換為十進制小數(shù)0.101001B=1*2-1+1*2-3+1*2-6=0.5+0.125+0.015625=0.640625D10各種數(shù)制的相互轉換(2)十進制數(shù)轉換成非十進制數(shù)整數(shù)部分按照基數(shù)進行連除,直到余數(shù)為0為止,所得的余數(shù)序列逆序就為對應的非十進制數(shù);小數(shù)部分按照基數(shù)進行連乘,直到小數(shù)部分為0或達到計算要求的精度為止,每次乘積的整數(shù)部分序列就為對應的非十進制小數(shù)。11各種數(shù)制的相互轉換(3)十進制325整數(shù)轉換為二進制整數(shù)除基取余法:

除基余數(shù)ki

232521621k02810k1

2401k22200k3

2100k4250k5221k6210k701k8

325D=101000101B12各種數(shù)制的相互轉換(4)例:將十進制數(shù)0.625轉化為二進制形式。

乘基整數(shù)ki

0.625×2=1.251k-1

0.25×2=0.50k-20.5×2=1.01k-3

0.625=0.101B注:如果一個任意十進制數(shù)要轉換成非十進制數(shù),可以把整數(shù)部分和小數(shù)部分分別加以轉換,然后把轉換后的整數(shù)部分和小數(shù)部分相加13各種數(shù)制的相互轉換(5)二進制轉換成十六進制數(shù)從小數(shù)點開始分別向左向右把整數(shù)及小數(shù)部分每4位分成一組,如果不足則補0。用十六進制數(shù)取代每組的數(shù)值,就可得到對應的十六進制數(shù)。例如:二進制數(shù)1011101001.110101轉換成十六進制數(shù)二進制:001011101001.11010100↓↓↓↓↓十六進制:2E9.D4

1011101001.110101B=2E9.D4H14各種數(shù)制的相互轉換(6)十六進制數(shù)轉換成二進制數(shù)用對應的4位二進制數(shù)取代1位十六進制數(shù)。例如:十六進制數(shù)5C7A.3BH轉換成二進制數(shù)十六進制數(shù):5C7A.3B↓↓↓↓↓↓二進制數(shù):0101110001111010.001110115C7A.3BH=101110001111010.00111011B15無符號數(shù)和有符號數(shù)在計算機中,可以區(qū)分正負的類型,稱為有符類型,無正負的類型(只有正值),稱為無符類型。當我們指定一個數(shù)是無符號類型時,那么其最高位的1或0,和其它位一樣,用來表示該數(shù)的大小。當我們指定一個數(shù)是有符號類型時,此時,最高位稱為“符號位”。最高位為1時,表示該數(shù)為負值,最高位為0時表示為正值。16無符號二進制數(shù)的算術運算加法:0+0=00+1=11+0=11+1=0減法:0-0=00-1=11-0=11-1=0乘法:0×0=00×1=01×1=11×0=0除法:乘法的逆運算,可以用減法和左移運算實現(xiàn)17無符號二進制數(shù)的取值范圍:一個n位的無符號二進制數(shù)X,其取值范圍是

0≤X≤2n-1溢出:最高有效位產(chǎn)生進位18無符號二進制數(shù)的邏輯運算“與”:0∧0=00∧1=01∧0=01∧1=1“或”:0∨0=00∨1=11∨0=11∨1=1“非”:1=00=1“異或”:0⊕0=00⊕1=11⊕0=11⊕1=0192、有符號二進制數(shù)的表示方法及溢出問題一個有符號的數(shù)在機器中的表示形式稱為機器數(shù),其數(shù)值稱為真值機器數(shù)有三種表示法:原碼、反碼、補碼計算機中帶符號的數(shù)用補碼表示20原碼表示法(1)正數(shù)的符號位用“0”表示,負數(shù)的符號位用“1”表示,絕對值的編碼與無符號數(shù)的編碼規(guī)則相同例如,X=+1010011[X]原=01010011

X=-1010011[X]原=11010011對于8位二進制原碼0有兩種表示形式:[+0]原=00000000

正零

[-0]原=10000000負零所能表示的取值范圍:-127~+127[+127]原=01111111[-127]原=1111111121原碼表示法(2)原碼表示簡單易懂,易于形成。但是,兩個異號數(shù)相加或兩個同號數(shù)相減,就要做減法操作22反碼表示法(1)正數(shù)的反碼表示與原碼相同,最高位為符號位,用“0”表示正,其余位為數(shù)值位

例如:[+4]反=00000100負數(shù)的反碼,表示為該數(shù)對應的正數(shù)按位取反(包括符號位)

例如:[+4]反=00000100[-4]反=1111101123反碼表示法(2)對于8位二進制反碼0有兩種表示形式:[+0]反=00000000

正零

[-0]反=11111111

負零所能表示的取值范圍:-127~+127[+127]反=01111111[-127]反=1000000024補碼表示法(1)正數(shù)的補碼表示與原碼相同,最高位為符號位,用“0”表示正,其余位為數(shù)值位

例如:[+4]補=00000100負數(shù)的補碼等于其相應的反碼加1(在最低位加1)

例如:[+4]補=00000100[-4]補=[-4]反+1=11111011+1=1111110025補碼表示法(2)對于8位二進制補碼:0的表示是唯一的:

[+0]補=[-0]補=00000000所能表示的數(shù)值范圍:-128~+127[+127]補=01111111[-128]補=1000000026二進制數(shù)、原碼、補碼關系二進制數(shù)無符號二進制數(shù)原碼補碼000000000+0+000000001000000101+1+12+2+2…………01111110126+126+12601111111127+127+12710000000128-0-12810000001129-1-12710000010130-2-126…………11111110254-126-211111111255-127-127有符號數(shù)運算時的溢出問題(1)溢出:有符號數(shù)的運算結果超出可表示的有符號數(shù)的范圍時,就會發(fā)生溢出,使計算結果出錯如果計算機的字長是n位,最高位是符號位,采用補碼表示法時,可表示的數(shù)的范圍為-2n-1≤X≤2n-1-1溢出出現(xiàn)在兩個同號數(shù)相加或兩個異號數(shù)相減的情況下

28有符號數(shù)運算時的溢出問題(2)加法運算時:如果次高位(數(shù)值部分最高位)形成進位加入最高位,而最高位(符號位)沒有進位輸出時;反過來,次高位沒有進位加入最高位,但最高位卻有進位輸出時,都會產(chǎn)生溢出。01001000B+72

01100010B+9810101010B-8610101101B

-83+10110000B-8001011101B+93+72與+98之和為+170,超過了8位二進制數(shù)的所能表示的最大數(shù)+127,產(chǎn)生了上溢,得到了錯誤的結果-86。-83與-80之和應為-163,超過了8位二進制數(shù)所能表示的最小數(shù)-128,產(chǎn)生了下溢,得到了錯誤結果+93。29有符號數(shù)運算時的溢出問題(3)減法運算時:當次高位不需從最高位借位,但最高位卻需借位(正數(shù)減負數(shù),差超出范圍,結果為負數(shù));反過來,次高位需從最高位借位,但最高位不需借位(負數(shù)減正數(shù),差超出范圍,結果為正數(shù)),都會產(chǎn)生溢出。01001000B

+72

10011110B-9810101010B-86+72與-98之差應為170,超過了8位二進制數(shù)所能表示的最大+127,產(chǎn)生了上溢,得到了錯誤結果-86。10101101B

-83

01010000B+8001011101B+93-83與+80之差應為-163,超出了8位二進制數(shù)所能表示的最小數(shù)-128,產(chǎn)生下溢,得到錯誤結果為+93。303、定點數(shù)和浮點數(shù)在計算機中用二進制表示實數(shù)的方法有兩種:定點法和浮點法定點法

所謂定點法,即小數(shù)點在數(shù)中的位置是固定不變的,以定點法表示的實數(shù)稱作定點數(shù)。方法一:規(guī)定小數(shù)點固定在最高數(shù)值位之前,機器中所能表示的都是小數(shù)。n位數(shù)值部分所能表示的數(shù)N的范圍(原碼表示)為1-2-n≥N≥-(1-2-n)符號位數(shù)值位↑小數(shù)點符號位數(shù)值位↑小數(shù)點31方法二:規(guī)定小數(shù)點固定在最低數(shù)值位之后,機器中所能表示的數(shù)都是整數(shù)。n位數(shù)值部分所能表示的數(shù)N的范圍是2n-1≥N≥-(2n-1)符號位數(shù)值位↑小數(shù)點由于實際問題中很少有純粹的整數(shù)或者小數(shù),所以定點法要求程序員為了調整所要表示的數(shù)值范圍,而選擇比例因子。所有原始數(shù)據(jù)都要用比例因子化成小數(shù)或整數(shù),計算結果又要用比例因子恢復。對于復雜的計算,計算中間需要多次調整比例因子。定點數(shù)和浮點數(shù)32浮點法任意一個二進制數(shù)N總可以寫成下面的形式:N=±d·2±p其中:d稱為尾數(shù),是二進制純小數(shù),指明數(shù)據(jù)的全部有效數(shù)字。前面的符號稱作數(shù)符,表示數(shù)的符號。P稱為階數(shù),它前面的符號稱為階符,由此可知,將尾數(shù)d的小數(shù)點向右(對+p)或向左(對-p)移動p位,即得數(shù)值N。所以階符和階碼指定小數(shù)點的位置,小數(shù)點隨著p的符號和大小而浮動,所以這種數(shù)稱為浮點數(shù)。定點數(shù)和浮點數(shù)33如果尾數(shù)的絕對值小于1而且大于等于0.5,即采用原碼編碼的正數(shù)或者負數(shù)和采用補碼編碼的正數(shù),其尾數(shù)的最高位數(shù)字為1;采用補碼編碼的負數(shù),其尾數(shù)的最高位數(shù)字為0,則該浮點二進制數(shù)被稱為規(guī)格化浮點數(shù)。數(shù)的加減運算要求小數(shù)點對齊,對于浮點數(shù)而言,就是階碼(包括階符)相等,使階碼相等的操作稱為對階。階符階碼數(shù)符尾數(shù)↑1位↑m位↑1位↑n位定點數(shù)和浮點數(shù)34例如:已知m=4,n=10,有一個十進制數(shù)17.75,將其轉換成二進制數(shù),并對它進行規(guī)格化。

(17.75)10=(10001.11)2=0.1000111×25

規(guī)格化后:001010

1000111000浮點運算后,經(jīng)常要把結果規(guī)格化,規(guī)格化的操作就是尾數(shù)每右移1位(相當于小數(shù)點左移1位),階碼加1;尾數(shù)每左移1位,階碼減1。定點數(shù)和浮點數(shù)35對階的規(guī)則是:將兩個數(shù)中階碼小的數(shù)的尾數(shù)右移,階碼增大,直到與另一個數(shù)的階碼相等為止。這樣的操作很合理,因為尾數(shù)右移,不會打破尾數(shù)的范圍,只可能丟失最低有效位,造成的誤差較小。例如兩個二進制數(shù)1.10001和10011.1001相加,經(jīng)過規(guī)格化后分別為

00001011000100000010101001110010對階后變?yōu)?/p>

0010100000110001+00101010011100100010101010100011定點數(shù)和浮點數(shù)364、二進制編碼(1)二進制編碼的十進制數(shù)(BCD編碼)用二進制編碼表示的十進制數(shù)稱為二-十進制碼,簡稱BCD碼(BinaryCodedDecimal)BCD碼是十進制數(shù),但用二進制數(shù)來表示BCD碼有多種表示方法,最常用的是8421BCD碼8421BCD碼每一位用四位二進制數(shù)來表示378421BCD碼的編碼方案十進制8421BCD碼8421BCD碼十進制0123456789101112131415000000010010001101000101011001111000100100010000000100010001001000010011000101000001010138BCD碼的兩種格式BCD碼的兩種基本格式:組合式BCD碼

分離式BCD碼

組合式:一個字節(jié)表示兩個BCD碼,即兩位十進制數(shù)76543210

低位高位分離式:一個字節(jié)的低四位表示一個BCD碼,高四位通常為0000,它對這個字節(jié)所表示的十進制數(shù)無影響。76543210

BCD碼39BCD碼的加減運算例:用BCD碼求38+49

0011

1000

38的BCD碼+0100100149的BCD碼

1000

0001

81的BCD碼錯誤原因分析:由于BCD編碼是將每個十進制數(shù)用一組4位二進制數(shù),即一個十六進制數(shù)表示。在十進制數(shù)中是“逢十進一”和“借一當十”,而計算機按二進制數(shù)運算,是“逢十六進一”和“借一當十六”,這樣在BCD碼的加減法運算的結果會出現(xiàn)錯誤。40BCD碼的加減運算由于BCD碼加法會出錯,解決的方法就是“加6修正”,其規(guī)則是:⑴如果任何兩個對應位BCD數(shù)相加的結果向高一位無進位時,若得到的結果小于或等于9,則該位不需修正;若得到的結果大于9且小于16時,該位就需要修正。⑵如果任何兩個對應位BCD數(shù)相加的結果向高一位有進位時(即結果大于或等于16),該位進行加6修正。⑶低位修正結果使高位大于9時,高位進行加6修正。這種修正稱為BCD調整。同樣在進行減法運算時,可采用“減6修正法”。在計算機中,還有BCD調整指令,可得到正確的結果。41BCD碼的加減運算例:用BCD碼求38+49

0011

1000

38的BCD碼+0100100149的BCD碼

1000

0001低四位向高四位有進位

0000

0110低四位加6修正

1000

0111

87正確結果42ASCII字符編碼計算機既要處理數(shù)值數(shù)據(jù),還要處理字母、數(shù)字和符號(簡稱字符),而計算機內(nèi)部只能識別二進制代碼,所以必須將字符進行編碼目前微型計算機普遍采用的是美國國家信息交換標準字符碼—ASCII碼(AmericanStandardCodeforInformationInterchange)43ASCII字符編碼ASCII碼采用7位二進制代碼對字符編碼,故可表示128個字符

44ASCII字符編碼一個字節(jié)為8位,在用一個字節(jié)表示一個ASCII碼時,通常認為最高位為0。有時根據(jù)需要也用最高位作為奇偶校驗位,用來檢驗代碼在存儲和發(fā)送過程中是否發(fā)生錯誤。偶校驗時,每個代碼的二進制形式中應有偶數(shù)個1;奇校驗時,每個代碼中應有奇數(shù)個1。奇偶校驗只具有發(fā)現(xiàn)代碼在存儲和發(fā)送過程中出現(xiàn)的奇數(shù)個位出現(xiàn)錯誤的能力,由于簡單可行,它被廣泛地用于信息的存儲和傳送。45ASCII碼字符表(7位碼)

000010012010301141005101611071110123450000000100100011010001016789A0110011110001001101010111100110111101111BCDEFNULSOHSTXETXEOTENQDLEDC1DC2DC3DC4NAKSP!“#$%012345@ABCDEPQRSTU、abcdepqrstuACKBELBSHTLFSYNETBCANEMSUB&‘()*6789:FGHIJVWXYZfghijvwxyzVTFFCRSOSIESCFSGSRSUS+,—。/;<=>

溫馨提示

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

評論

0/150

提交評論