资源描述
,按一下以編輯母片標題樣式,按一下以編輯母片本文樣式,第二層ABC,第三層,第四層,第五層,計算機概論,p16-,*,第十六章 數字系統與二進碼,計算機概論編輯小組,1,計算機概論,第十六章 數字系統與二進碼計算機概論編輯小組1計算機概論,大綱,數字系統,介紹我們所習慣的十進位數字,資料表示法,介紹一些中英文字以及數字如何存在電腦內部,以方便電腦做資料處理,二進碼,介紹如何利用二進碼編十進位元、葛雷碼、條碼以及浮點表示法,2,計算機概論,大綱數字系統2計算機概論,16.1,數字系統,數字系統(Number Systems)是計算與數之命名的方法。,數元(digit)的個數,即決定了何種數字系統。,K 進位數字系統,即以 K 為基底的數字系統,其數元共有 K 個,即0,1,2,.,K-1。,十進位數字系統是一套以十為基底的數字系統。,3,計算機概論,16.1數字系統數字系統(Number Systems)是,在一個 K 進位的數字系統中,其基底為 K,則該系統的任何一個正數(不管是整數或實數)都可用一個多項式 N 來表示:,以 K 為基底的數字 N,通常寫成 N,k,=(A,p-1,A,p-2,.A,1,A,0,.,A,-1,A,-2,.A,-q,),k,最左邊的數元 A,p-1,通常稱為最大有效數元(Most Significant Digit,MSD),最右邊的數元A,-q,則稱為最小有效數元(Least Significant Digit,LSD),4,計算機概論,在一個 K 進位的數字系統中,其基底為 K,則該系統的任何一,以 K 為基底表示正數 N,可簡化為:,5,計算機概論,以 K 為基底表示正數 N,可簡化為:5計算機概論,6,計算機概論,6計算機概論,7,計算機概論,7計算機概論,8,計算機概論,8計算機概論,9,計算機概論,9計算機概論,10,計算機概論,10計算機概論,11,計算機概論,11計算機概論,12,計算機概論,12計算機概論,16.2,資料表示法,電腦的基本功能是做資料處理(data processing),資料可以是數字,例如正數、負數、整數、與實數,這些可以計算的資料統稱為數值資料(Numeric Data)。,姓名、住址、電話等或任何文件內的文字(中、英文)、數據等,這種不可計算的資料統稱為文數資料(Alphanumeric Data),這些資料常用於電腦排版系統,例如:Microsoft Word,LaTEX等。,13,計算機概論,16.2 資料表示法電腦的基本功能是做資料處理(data p,16.2.1,數值資料(Numeric Data),數值有整數與實數之分,並有正、負之別,三種表示數值資料的方式,符號帶大小(Sign-magnitude),1補數(1s Complement),2補數(2s Complement),假設我們利用n位元(n-bit)來表示一個整數,最左邊的那個位元用來表示正負號,等於“0”,則表示該整數為正數,等於“1”,則表示該整數為負數。,14,計算機概論,16.2.1 數值資料(Numeric Data)數值有整數,三種方法可以表示的正負數範圍,15,計算機概論,三種方法可以表示的正負數範圍15計算機概論,A.,符號帶大小(Sign-Magnitude),如果用n位元來表示一個整數,,最左邊一位元表示正負號,,其餘n-1個位元用來表示該數的大小。,而n-1個位元若全為“0”則是最小的數,為0;若n-1個位元全為“1”,則是最大的數,為 。將這個數的大小配上正負號,就可表示一個整數。,缺點:,有兩個“0”(即+0 與-0)的表示法,增加電腦核對一個運算結果是否為0的負擔(要核對兩次,是為+0或-0),不易用邏輯電路製做加減法器。故這種表示法不被電腦採用。,16,計算機概論,A.符號帶大小(Sign-Magnitude)如果用n位元,B.,1補數(1s Complement),最左邊的位元視為符號位元(“1”表示負數,“0”代表正數),,其正數的表示法和符號帶大小完全相同,,但當表示負數時,它將某正數的表示法的所有位元,由“0”變成“1”,而“1”則變成“0”,得到的二進位元串,用以表示該正數的相對應負數。,例如用4位元表示一個整數,+3=(0011)2,而-3則表是成(1100)2。又如+0=(0000)2,而-0=(1111)2,所以(0000)2 和(1111)2都是表示“零”。,缺點:,有兩種“零”的表示法,算數運算雖可用邏輯電路製做,不過有一點麻煩且較2補數沒效率。所以1補數的整數表示法亦不被電腦採用。,17,計算機概論,B.1補數(1s Complement)最左邊的位元視,C.,2補數(2s Complement),最左邊的位元視為符號位元(“1”表示負數,“0”代表正數),,表示方法,正數的表示法和符號帶大小完全相同,,負數表示法則是利用1補數的負數表示法加“1”達成。例如用4位元表示一個整數,+3=(0011)2,而-3=(1100)2+1=(1101)2,又如+0=(0000)2,而-0=(1111)2+1=(0000)2,所以2補數和上述兩種表示法對0的表示方式是不同的,它永遠只有一種零的表示法,那就是所有的位元皆為“0”。,負數處理步驟(用n位元的2補數),1.我們先將該負數相對應的正數用n位元的符號帶大小方式表示之,2.再0變1,1變0,最後再加上1即可。,另一種方法,將正數表示出來後,從右邊掃描到左邊,凡是0就照抄下來,一直碰到第一個“1”仍然照抄,但是從這個“1”以後的左邊每個位元將1改成0,0改成1,也可得到2補數的負數表示方式。,18,計算機概論,C.2補數(2s Complement)最左邊的位元視,以4位元來表示整數的三種不同表示法,19,計算機概論,以4位元來表示整數的三種不同表示法19計算機概論,補數的進一步闡述,20,計算機概論,補數的進一步闡述20計算機概論,16.2.2,數值資料的算術運算,補數運算概念,A,B若是兩個K進位數字,則A-B等於A+(B的K補數),補數,加,的運算,範例:,(278),10,+(123),10,21,計算機概論,16.2.2 數值資料的算術運算補數運算概念21計算機概論,補數,減,的運算,範例:,(278),10,-(123),10,22,計算機概論,補數減的運算22計算機概論,補數,乘,的運算,範例:,(1011),2,(1101),2,23,計算機概論,補數乘的運算23計算機概論,補數,除,的運算,範例:,(10001111),2,(1011),2,24,計算機概論,補數除的運算24計算機概論,16.2.3,文數資料(Alphanumeric Data),文數資料是含文字(Letter)、符號(Symbol)與數字(Digit)的資料,所有不可做算數運算的資料皆屬此類。,表示方法,ASCII(讀作as-kee)碼(America Standard Code for Information Interchange,美國標準資訊交換碼),IBM,UNIVAC等某些大型電腦採用的擴充式二進位交換碼EBCDIC(讀作eb-ce-dick)碼(Extended Binary Coded Decimal Interchange Code)。,中文字則大多採用BIG-5碼,但也有一些系統採用倚天碼,電信碼及IBM 5550碼等。,25,計算機概論,16.2.3 文數資料(Alphanumeric Data,ASCII碼由七個位元來表示一個字元(Character),因七個位元可有 =128種組合,。,8-位元的ASCII碼,則可有 =256種不同的組合,詳見表18.2列出部分8-位元的ASCII碼。,EBCDIC碼是由 8 位元來表示一個字元,。,EBCDIC碼將位元分成兩組各 4 個位元,其中一組叫區位元(Zone bits),另一組叫數元位元(Digit bits)。,區位元用以說明此字元是字母、無正負號的數字、正負符號及一些特殊符號。而數元位元用來表示阿拉伯數字 09。,中文碼用的是另一套表示法,它和ASCII碼及EBCDIC碼不同。中文碼是以2個位元組(16個位元)來表示的。,26,計算機概論,ASCII碼由七個位元來表示一個字元(Character),,27,計算機概論,27計算機概論,28,計算機概論,28計算機概論,29,計算機概論,29計算機概論,為應付日益增多的字元,例如中文及日文等其它有別於英文的語言,目前國際標準協會正致力於 16 位元的字元碼(Character code),稱作統一碼(Unicode)以作為世界標準。,30,計算機概論,為應付日益增多的字元,例如中文及日文等其它有別於英文的語言,,16.3,二進碼(Binary Codes),常用的二進碼,以二進碼編十進位數元(Binary Coded Decimal,BCD)的BCD碼、2421碼、超-3碼(Excess-3 Codes)與84-2-1碼,葛雷碼(Gray Codes),條碼(Bar Codes 或 Universal Product Codes),浮點表示法(Floating-Point Representation),31,計算機概論,16.3 二進碼(Binary Codes)常用的二進碼31,16.3.1,以二進碼編十進位數元,電腦只能接受 0 與 1,因此,就有學者發明了以二進碼來表示十進位的到這十個數元,並且一切的算術運算都以十進位為基礎來做。,常用方法,BCD碼,2421碼,超-3碼,84-2-1碼,這些碼都用4個位元來表示一個阿拉伯數字(0 9)。,32,計算機概論,16.3.1 以二進碼編十進位數元電腦只能接受 0 與 1,,A.,BCD碼,BCD碼用四個位元表示一個阿拉伯數字,4個位元由左到右,其權重(Weights)都不相同,分別是8,4,2,1,BCD碼又被稱為8421碼,0到9這十個阿拉伯數字的 BCD碼,33,計算機概論,A.BCD碼BCD碼用四個位元表示一個阿拉伯數字,4個位元,34,計算機概論,34計算機概論,B.,2421碼,2421碼也是用4位元來表示一個阿拉伯數字。,4個位元由左到右其權重分別為2,4,2,1。,0到9這十個阿拉伯數字的 2421碼,十進位系統的9補數正好等於二進位系統的1補數,所有具有這種特性的碼被稱為自補碼(Self-Complementing Code)。,35,計算機概論,B.2421碼2421碼也是用4位元來表示一個阿拉伯數字。,C.,超-3碼(Excess-3 Code),將阿拉伯數字0到9分別用4位元的二進位系統表示出來,之後每個數字分別再加上3,所得到的4位元二進位碼分別用以表示阿拉伯數字0到9。,範例,2 的超-3碼=(0010)2+(0011)2=(0101)2,5 的超-3碼=(0101)2+(0011)2=(1000)2,36,計算機概論,C.超-3碼(Excess-3 Code)將阿拉伯數字0到,0到9這十個阿拉伯數字的超-3碼,超-3碼也是一種自補碼,37,計算機概論,0到9這十個阿拉伯數字的超-3碼37計算機概論,D.,84-2-1碼,使用4位元來表示阿拉伯數字0到9,但由左到右其位元的分別為8,4,-2,與-1。,範例,3的84-2-1碼為0101,(0+4+0+(-1)=3),5的84-2-1碼為1011,(8+0+(-2)+(-1)=5),38,計算機概論,D.84-2-1碼使用4位元來表示阿拉伯數字0到9,但由左,0到9這十個阿拉伯數字的 84-2-1碼,84-2-1碼也是一個自補碼,39,計算機概論,0到9這十個阿拉伯數字的 84-2-1碼39計算機概論,40,計算機概論,40計算機概論,16.3.2,葛雷碼(Gray Codes),葛雷碼的特性,任何連續兩個數字,其對應的二進碼只有一個位元的資料不同,其餘位元資料均相同。,我們可以將任何十進位數字表示成二進位系統,若該二進碼具有上述特性,則稱這種二
展开阅读全文