《新編計算機文化基礎(chǔ)》02 計算機運算基_第1頁
《新編計算機文化基礎(chǔ)》02 計算機運算基_第2頁
《新編計算機文化基礎(chǔ)》02 計算機運算基_第3頁
《新編計算機文化基礎(chǔ)》02 計算機運算基_第4頁
《新編計算機文化基礎(chǔ)》02 計算機運算基_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章計算機運算基礎(chǔ)1243352.1數(shù)制2.2

不同數(shù)制間的轉(zhuǎn)換2.3數(shù)值數(shù)據(jù)的編碼表示

2.4字符的編碼表示

2.5中文信息編碼

第2章計算機運算基礎(chǔ)

自然界的信息是豐富多彩的,有數(shù)值、字符、聲音、圖形和圖像、視頻等。但是計算機本質(zhì)上只能處理二進制“?!焙汀?",因此必須將各種信息轉(zhuǎn)換成計算機能夠接受和處理的二進制數(shù)據(jù),這種轉(zhuǎn)換往往由外部設(shè)備和計算機自動進行。進入計算機中的各種數(shù)據(jù)都要轉(zhuǎn)換成二進制串存儲,計算機才能進行運算和處理;同樣,從計算機中輸出的數(shù)據(jù)也要進行逆向轉(zhuǎn)換。本章先介紹數(shù)制的基本概念,再介紹數(shù)值數(shù)據(jù)的表示方法,然后介紹聲音、圖形和漢字在計算機中的表示以及簡要地介紹多媒體計算機的相關(guān)概念。返回2.1數(shù)制2.1.1基本概念1.數(shù)制數(shù)制也稱計數(shù)制,是用一組固定的符號和統(tǒng)一的規(guī)則來表示數(shù)值的方法。人們在生產(chǎn)實踐和日常生活中,創(chuàng)造了多種表示數(shù)的方法,這些數(shù)的表示規(guī)則就稱為數(shù)制。人們通常采用的數(shù)制有十進制、二進制、八進制和十六進制。比如,人們在生活中的計算使用的是十進制,鐘表中使用的是六十進制,早年我國曾使用過1斤等于16兩的十六進制,計算機中使用的是二進制等。它們的共同點是,對于任一數(shù)制為廠進制,即逢廠進位。下一頁返回2.1數(shù)制2.基數(shù)一個數(shù)制所包含的數(shù)字符號的個數(shù)稱為該數(shù)制的基數(shù)。如十進制含0~-9十個數(shù)字符號,其基數(shù)為10;二進制包含。、1兩個數(shù)字,其基數(shù)為20為區(qū)分不同數(shù)制的數(shù),本書中約定對于任一廠進制的數(shù)n,,記作:(n)。如(1001)2,(70)8,(15)16,分別表示二進制數(shù)、八進制數(shù)和十六進制數(shù)。不用括號及下標的數(shù),默認為十進制數(shù)。人們也習(xí)慣在數(shù)的后面加上字母D(十進制)、B(二進制)、Q(八進制)、H(十六進制)來表示其前面的數(shù)所采用的數(shù)制,如1八OEH表示一個十六進制數(shù),而20;68表示是一個八進制數(shù)。上一頁下一頁返回2.1數(shù)制3.位值位值也叫權(quán)。任何一個數(shù)都是由一串數(shù)字表示的,其中每一位數(shù)字所表示的實際值除本身的數(shù)值外,還與它所處的位置有關(guān),由位置決定的值就叫位值。例如十進制數(shù)123.45,整數(shù)部分右起第1位代表數(shù)值3,即3X100;第2位代表20,即2X101;第3位代表100,即1X102。小數(shù)部分左起第1位代表0.4,即4X10-1;第2位代表0.05,即5X10-2故:

權(quán)=ri=-m~n,m,n為自然數(shù),r為數(shù)制的基數(shù))。當然,任一數(shù)制最右邊的數(shù)字,權(quán)最小;最左邊的數(shù)字,權(quán)最大。而且高一價的權(quán)是相鄰低一價的權(quán)與該數(shù)制基數(shù)之積。上一頁下一頁返回2.1數(shù)制4.數(shù)值的按權(quán)展開存在這樣一個規(guī)律:任何一個數(shù)都是其各位數(shù)字本身的值與其權(quán)之積的總和,這種形式叫做數(shù)值的按權(quán)展開,可用下式表示:式中,d為該數(shù)的十進制表示,n,為整數(shù)位數(shù),m為小數(shù)位數(shù),廠為基數(shù),二為任一位。比如:345.67=3X102十4X101十5X100十6X10-1十7X10-2(1011.O1)2=1X23十0X23十1X21十1X20,十0X2-1十1X2-2=11.25上一頁下一頁返回2.1數(shù)制2.1.2常用數(shù)制常用的數(shù)制有十進制、二進制、八進制和十六進制。1.十數(shù)制基數(shù)為10,即逢10進位。它含有10個數(shù)字符號:0,2、34、57,8,9,權(quán)為10'(i為自然數(shù))。這里,權(quán)均以十進制數(shù)表示。十進制是人們最習(xí)慣使用的一種數(shù)制。2.二數(shù)制基數(shù)為2,即逢2進位。它含有兩個數(shù)字符號:0,1。權(quán)為2'(i為自然數(shù))。二進制是計算機中最常用的數(shù)制,這是因為二進制具有如下優(yōu)點:1)易于物理實現(xiàn)上一頁下一頁返回2.1數(shù)制

因為具有兩種穩(wěn)定狀態(tài)的物理器件是很多的,例如門電路的導(dǎo)通與截止、電壓的高與低,而它們恰好對應(yīng)表示1和U兩個符號。如果采用二進制,要制造具有10種穩(wěn)定狀態(tài)的電子電路,那是非常困難的。

2)二進制數(shù)運算簡單數(shù)學(xué)推導(dǎo)證明,對廠進制的算術(shù)求和,求積規(guī)則各有廠(廠十1)i2種。因此,如果采用十進制,就有弧種求和與求積的運算規(guī)則;而二進制僅各有3種,因而大大簡化了運算器等物理器件的設(shè)計。而為了保證數(shù)據(jù)的精度和寬度范圍,對于二進制,只需增加數(shù)據(jù)總線的寬度和存儲單元的位數(shù),這相對于運算規(guī)則和多穩(wěn)定狀態(tài)來說,要簡單得多。3)機器可靠性高上一頁下一頁返回2.1數(shù)制

由于電壓的高低、電流的有無等都是一質(zhì)的變化,兩種狀態(tài)區(qū)別明顯,所以二進制碼的傳遞抗干擾強,鑒別信息的性高。

4)通用性強基2碼不僅成功地運用于數(shù)值信息編碼(二進制),而且適用于各種非數(shù)值信息的數(shù)字化編碼。特別是僅有的兩個符號。和1,正好與邏輯命題的兩個值“真”與“假”相對應(yīng),從而為計算機實現(xiàn)邏輯運算和邏輯判斷提供了方便。但是,二進制也有明顯的缺點:書寫復(fù)雜,不便閱讀。所以,二進制數(shù)常轉(zhuǎn)換為八進制或十六進制數(shù)表示。上一頁下一頁返回2.1數(shù)制3.八數(shù)制基數(shù)為8,即逢8進位。它含有8個數(shù)字符號:0、

1、

2、

3、

4、

5、

6、

7、

8,權(quán)為8‘(i為自然數(shù))。4.十六數(shù)制基數(shù)為16,即逢16進位。它含有16個數(shù)字符號:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,權(quán)為16犻(犻為自然數(shù))。其中的A、B、C、D、E、F依次與十進制的10、11、12、13、14、15相對應(yīng)。

上一頁下一頁返回2.1數(shù)制E、F依次與十進制的10、11、12、13、14、15相對應(yīng)。應(yīng)當指出,二進制、八進制、十六進制和十進制都是計算機中常用的數(shù)制。所以在一定數(shù)值范圍內(nèi)直接寫出它們之間的對應(yīng)表示,也是經(jīng)常遇到的。表2-1列出了0~15這16個十進制數(shù)與其他三種數(shù)制的對應(yīng)表示。上一頁返回2.2不同數(shù)制間的轉(zhuǎn)換2.2.1二進制數(shù)、八進制數(shù)、十六進制數(shù)轉(zhuǎn)換為十進制數(shù)利用按權(quán)展開的方法,可以把任一數(shù)制的數(shù)轉(zhuǎn)換成十進制數(shù)。如:把二進制數(shù)轉(zhuǎn)換成十進制數(shù)。例2-1將二進制數(shù)(1101.101)2轉(zhuǎn)換成十進制數(shù)解(1101.101)2=1×23+1×22+0×21+1×20+1×2-1+0×2-2+1×2-3=13.625例2-2將八進制數(shù)(302.64)8轉(zhuǎn)換成十進制數(shù)下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換解(302.64)8=3×82+0×81+2×80+6×8-1+4×8-2=194.8125例2-3將十六進制數(shù)(A05.C)16轉(zhuǎn)換成十進制數(shù)解(A05.C)16=10×162+0×161+5×160+12×16-1=2565.75上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換2.2.2十進制數(shù)轉(zhuǎn)換為二進制數(shù)十進制數(shù)包含兩類數(shù),一類是整數(shù),另一類是小數(shù)。由于對整數(shù)部分和小數(shù)部分的處理方法不同,我們將分別進行討論,先以十進制數(shù)對二進制數(shù)的轉(zhuǎn)換為例。1.十進制整數(shù)轉(zhuǎn)換成二進制整數(shù)1)除2取余法先用基數(shù)2除被轉(zhuǎn)換的十進制數(shù),然后不斷地用2除上次相除所得的商,直至商為0。每次相除所得余數(shù)便是對應(yīng)的二進制數(shù)各位的數(shù)字。第一個余數(shù)為最低有效位,最后一個余數(shù)為最高有效位。上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換例2-4將十進制數(shù)89用除2取余法轉(zhuǎn)換成二進制數(shù)上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換所以,89=(01011001)22)填寫法對于比較小的十進制整數(shù)(通常1000以內(nèi)),用填寫法比較方便。填寫法的基本過程是二進制轉(zhuǎn)換成十進制的逆運算,其過程如下:將數(shù)犕0分解成兩個數(shù)的和犕0=2n1+犕1,其中2n1比犕0小,而2n1+1則比犕0大;然后再將犕1繼續(xù)分解下去,最后就能得到一系列的n1、n2、…、n犽,而這正是對應(yīng)的為1的位數(shù)。例2-5將十進制數(shù)89用填寫法轉(zhuǎn)換成二進制數(shù)解上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換89=64+25=26+25因為27=128>89,所以此處?。玻叮玻担剑保叮梗剑玻矗挂驗椋玻担剑常玻荆玻担源颂幦。玻矗梗剑福保剑玻常币驗椋玻矗剑保叮荆梗源颂幦。玻常保剑玻凹矗海福梗剑叮矗保叮福保剑玻叮玻矗玻常玻埃@就說明,其第6、4、3、0位對應(yīng)的為1,而其他位(第1、2、5、7位)對應(yīng)的為0,所以89=(01011001)2。為方便讀者計算,我們將2的n次方對應(yīng)的值列出如圖2-1所示。上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換例2-6將十進制數(shù)1429用填寫法轉(zhuǎn)換成二進制數(shù)解1429=1024+405=1024+256+149=1024+256+128+21=1024+256+128+16+5=1024+256+128+16+4+1=(010110010101)22.十進制小數(shù)轉(zhuǎn)換成二進制小數(shù)1)乘2取整法“乘2取整法”的具體步驟:對十進制小數(shù)乘2,取積的整數(shù)部分作為相應(yīng)的二進制位;上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換然后再對積的小數(shù)部分乘2,重復(fù)前述步驟,直到小數(shù)部分為0或者達到精度要求為止。第一次得到的整數(shù)部分為最高位,最后一次得到的為最低位。例2-7將十進制數(shù)0.6875用乘2取整法轉(zhuǎn)換成二進制數(shù)上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換上一頁下一頁返回所以,0.6875=(0.1011)22)填寫法用填寫法將十進制小數(shù)轉(zhuǎn)換為二進制的方法與整數(shù)的轉(zhuǎn)換方法基本類似,將十進制小數(shù)分解為對應(yīng)的兩個小數(shù)之和,其中的一個小數(shù)為2的負次方,而二進制小數(shù)對應(yīng)的十進制的值如圖2-2所示。例2-8將十進制數(shù)0.6875用填寫法轉(zhuǎn)換為二進制數(shù)解0.6875=0.5+0.1875=0.5+0.125+0.0625=2-1+2-3+2-4=(0.1011)22.2不同數(shù)制間的轉(zhuǎn)換注意:上面的小數(shù)經(jīng)過轉(zhuǎn)換后,準確地化為二進制小數(shù),但是,并不是任何一個十進制的小數(shù)都可以經(jīng)過有限次的運算轉(zhuǎn)換成對應(yīng)的二進制數(shù)。例如,十進制小數(shù)0.1就沒有辦法化為對應(yīng)的二進制數(shù),而只能根據(jù)題目要求轉(zhuǎn)換到相應(yīng)精度的近似小數(shù)。因此,在很多的程序設(shè)計語言中,整數(shù)和小數(shù)需要用不同的數(shù)據(jù)類型來表示。對于一個十進制數(shù)含有整數(shù)部分和小數(shù)部分,則應(yīng)分別轉(zhuǎn)換后將結(jié)果合在一起。例2-9將十進制數(shù)75.75用填寫法轉(zhuǎn)換為二進制數(shù)解將整數(shù)部分和小數(shù)部分分別進行計算:上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換75=64+8+2+1=26+23+21+20=(01001011)20.75=0.5+0.25=21+22=(0.11)2所以,75.75=(01001011.11)22.2.3十進制數(shù)轉(zhuǎn)換為八進制數(shù)、十六進制數(shù)將十進制整數(shù)轉(zhuǎn)換為其他的狉進制數(shù),一般使用除狉取余法,它與除2取余法類似,只是將2換成是該進制狉。將十進制小數(shù)轉(zhuǎn)換為其他的狉進制數(shù),一般使用乘狉取整法,它與乘2取整法類似,只是將2換成是該進制狉。顯然,也不是任何一個十進制的小數(shù)都可以經(jīng)過有限次的運算轉(zhuǎn)換成對應(yīng)的狉進制數(shù)。上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換例2-10將十進制數(shù)189用除8取余法轉(zhuǎn)換成八進制數(shù)解上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換上一頁下一頁返回所以,189=(275)8例2-11將十進制數(shù)19394用除16取余法轉(zhuǎn)換成十六進制數(shù)解2.2不同數(shù)制間的轉(zhuǎn)換上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換2.2.4二進制數(shù)、八進制數(shù)、十六進制數(shù)間的轉(zhuǎn)換二進制數(shù)編碼存在這樣一個規(guī)律:n位二進制數(shù)最多能表示2n種狀態(tài),分別對應(yīng)0,1,2,…,2n-1。因此,若用一組二進制數(shù)表示具有8種狀態(tài)的八進制數(shù),至少要用3位。同樣,表示一個十六進制數(shù),至少要用4位。1.二進制數(shù)轉(zhuǎn)換成八進制、十六進制數(shù)將一個二進制數(shù)轉(zhuǎn)換成八進制數(shù),自小數(shù)點開始分別向左、向右每3位一組劃分,不足3位的組以0補足,然后將每組二進制數(shù)以1位等值的八進制數(shù)代之即可。上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換

例2-13將二進制數(shù)(1111100110.10111):轉(zhuǎn)換為八進制數(shù)解將二進制數(shù)以小數(shù)點為基準,分別向左向右每3位一組,不足3位的以0補足,再將每組化為等值的八進制數(shù),其具體過程如下:(1111100110.10111)2=001111100110·101110=(1746.56):1746·56例2-14將二進制數(shù)(1111100110.10111)2轉(zhuǎn)換為十六進制數(shù)解將二進制數(shù)以小數(shù)點為基準,分別向左向右每4位一組,不足4位的以0補足,再將每組化為等值的十六進制數(shù),其具體過程如下:上一頁下一頁返回2.2不同數(shù)制間的轉(zhuǎn)換上一頁下一頁返回2.八進制數(shù)、十六進制數(shù)轉(zhuǎn)換成二進制數(shù)將八進制數(shù)轉(zhuǎn)換成二進制數(shù),其過程與二進制數(shù)轉(zhuǎn)換成八進制數(shù)相反。即將每一位八進制數(shù)字以等值的3位二進制數(shù)代之即可。將十六進制數(shù)轉(zhuǎn)換成二進制數(shù),其過程與二進制數(shù)轉(zhuǎn)換成十六進制數(shù)相反。即將每一位十六進制數(shù)字以等值的4位二進制數(shù)代之即可。2.2不同數(shù)制間的轉(zhuǎn)換例215將(3740.562)8轉(zhuǎn)換成二進制數(shù)解將每一位轉(zhuǎn)換成對應(yīng)的3位二進制數(shù):(3740.562)8=3740·562=(11111100000.10111001)2011111100000·101110010例2-16將(30E.F4)16轉(zhuǎn)換成二進制數(shù)解將每一位轉(zhuǎn)換成對應(yīng)的4位二進制數(shù):(30E.F4)16=30E·F4=(1100001110.111101)2001100001110·11110100上一頁返回2.3數(shù)值數(shù)據(jù)的編碼表示前面已經(jīng)討論了把十進制數(shù)轉(zhuǎn)換成二進制數(shù)的方法,數(shù)值信息在計算機內(nèi)的表示方法就是用二進制來表示。但是,在生活和科學(xué)計算中,數(shù)值還有正數(shù)和負數(shù)之分,因此還必須能夠處理正數(shù)和負數(shù)。在計算機中,如果再對數(shù)的正、負符號進行編碼,就可以在計算機里表示十進制數(shù)了。為了運算簡單,在不同的場合還采用了原碼、反碼、補碼等不同的編碼方法,采用“定點數(shù)”和“浮點數(shù)”的方式來分別表示整型數(shù)和實型數(shù)。在討論數(shù)值數(shù)據(jù)的編碼之前,先解釋一下什么是編碼。所謂編碼,就是按照一定的規(guī)則以固定的順序排列字符,并以此作為記錄、存儲、傳遞、交換的統(tǒng)一內(nèi)部特征,這個字符排列順序被稱為“編碼”。編碼可以理解為處理的過程,也可以理解為這個過程產(chǎn)生的結(jié)果。下一頁返回2.3數(shù)值數(shù)據(jù)的編碼表示2.3.1基本概念1.機器數(shù)和真值若用n(不失一般性,設(shè)n=8,其他的位數(shù)可以類推,下同)位二進制數(shù)表示一個數(shù),以十進制數(shù)77為例,那么可以表示成如圖2-3所示形式。其中:犅犻(犻為0~7)是一位二進制數(shù);犅7是最高有效位(MostSignificantBit,MSB),并當做符號位,通常用0表示正號,1表示負號;B0是最低有效位(LeastSignificantBit,LSB)。對于數(shù)a=+77和b=-77則可分別表示為:上一頁下一頁返回2.3數(shù)值數(shù)據(jù)的編碼表示a:01001101b:11001101為了區(qū)別,將數(shù)(連同符號)在機器中的這種編碼表示稱為機器數(shù),而將原來的數(shù)值稱為真值。如:01001101和11001101都是機器數(shù),而+77和-77則分別是它們對應(yīng)的真值。2.帶符號數(shù)和無符號數(shù)上一頁下一頁返回2.3數(shù)值數(shù)據(jù)的編碼表示機器數(shù)的表示形式實際上就是把數(shù)的符號數(shù)碼化了,所以它既能表示數(shù)的絕對值又能表示數(shù)的符號。這種表示方法所表示的數(shù)叫做帶符號數(shù)。有時需要把全部有效位(這里仍設(shè)8位)都用以表示數(shù)的絕對值,即沒有符號位,這種方法表示的數(shù)叫做無符號數(shù)。若將上述a、b的機器數(shù)視為無符號數(shù),則它們的值分別為77和205。為滿足算法和其他需要,計算機里常用原碼、反碼和補碼表示數(shù)值數(shù)據(jù)。上一頁下一頁返回2.3數(shù)值數(shù)據(jù)的編碼表示2.3.2數(shù)的原碼表示數(shù)的原碼表示規(guī)則為:將符號位(即最高位)用來表示數(shù)的符號,0表示正數(shù),1表示負數(shù),而其他位按一般的方法表示數(shù)的絕對值,用這種方法得到的數(shù)碼就是該數(shù)的原碼,例如:x=(+103)10[x]原=(01100111)2y=(-103)10[y]原=(11100111)2原碼表示有以下3個性質(zhì):(1)用原碼表示數(shù)時,n位(含符號位)二進制數(shù)所能表示的數(shù)值范圍是-2n-1-1~2n-1-1,對于8位來說,它的表示范圍為-127~127;上一頁下一頁返回2.3數(shù)值數(shù)據(jù)的編碼表示(2)0的表示方法不唯一:+0=(00000000)2,而-0=(10000000)2(3)加減運算不方便:要比較參與加減運算兩個數(shù)的符號,要比較兩個數(shù)的絕對值的大小,還要確定運算結(jié)果的正確符號等。上一頁下一頁返回2.3數(shù)值數(shù)據(jù)的編碼表示2.3.3數(shù)的反碼表示數(shù)的原碼表示規(guī)則為:將符號位(即最高位)用來表示數(shù)的符號,0表示正數(shù),1表示負數(shù)。正數(shù)的反碼與原碼相同,負數(shù)的反碼為其原碼除符號外的各位按位取反(即0變1,而1變0)。例如:x=(+103)10[x]原=[x]反=(01100111)2

y=(-103)10[y]原=(11100111)2[y]反=(10011000)2w=(+25)10[w]原=[w]反=(00011001)2z=(-25)10[z]原=(10011001)2[z]反=(11100110)2上一頁下一頁返回2.3數(shù)值數(shù)據(jù)的編碼表示反碼表示有以下3個性質(zhì):(1)用反碼表示數(shù)時,n位(含符號位)二進制數(shù)所能表示的數(shù)值范圍是-2n-1-1~2n-1-1,對于8位來說,它的表示范圍為-127~127;(2)0的表示方法不唯一:+0=(00000000)2,而-0=(10000000)2(3)加減運算不方便:要比較參與加減運算兩個數(shù)的符號,要比較兩個數(shù)的絕對值的大小,還要確定運算結(jié)果的正確符號等。上一頁下一頁返回2.3數(shù)值數(shù)據(jù)的編碼表示2.3.4數(shù)的補碼表示數(shù)的補碼表示規(guī)則為:將符號位(即最高位)用來表示數(shù)的符號,0表示正數(shù),1表示負數(shù)。正數(shù)的補碼與反碼及原碼相同,負數(shù)的補碼為其反碼在其最低位加1,即原碼除符號外的各位按位取反(即0變1,而1變0),再末尾加1。例如:x=(+103)10[x]補=[x]原=[x]反=(01100111)2

y=(-103)10[y]原=(11100111)2[y]反=(10011000)2[y]補=(10011001)2上一頁下一頁返回2.3數(shù)值數(shù)據(jù)的編碼表示w=(+25)10[w]補=[w]原=[w]反=(00011001)2z=(-25)10[z]原=(10011001)2[z]反=(11100110)2[z]補=(11100111)2補碼表示有以下3個性質(zhì):(1)對于正數(shù),原碼、反碼和補碼相同;對于負數(shù),補碼=反碼+1;上一頁下一頁返回2.3數(shù)值數(shù)據(jù)的編碼表示(2)用補碼表示數(shù)時,n位(含符號位)二進制數(shù)所能表示的數(shù)值范圍是-2n-1~2n-1-1,對于8位來說,它的表示范圍為-128~127;(3)0的表示方法唯一:+0=-0=(00000000)2(4)加減運算方便,可以不管參加運算兩個數(shù)的符號,而只要讓它們的符號位一起參加加法運算;至于減法運算,可以加上減數(shù)的相反數(shù)的補碼。最后,將一些特殊的數(shù)值分別用原碼、反碼和補碼表示如表2-2所列。上一頁返回2.4字符的編碼表示如前述,計算機中的信息都是用二進制編碼表示的。用以表示字符的二進制編碼稱為字符編碼。計算機中使用的字符編碼有BCD碼、EBCDIC(擴展BCD碼)、ASCII碼和Unicode等。ASCII碼則是最常用的一種,下面介紹幾種常用的編碼。1.ASCII碼ASCII碼(AmericaStandardCodeforInformationInterchange)是美國標準信息交換碼,被國際化組織指定為國際標準,分為7位和8位兩種版本。國際通用的是7位ASCII碼,它已對大、小寫英文字母、阿拉伯數(shù)字、標點符號及控制符等特殊符號編碼,共128個字符,如表2-3所列。下一頁返回2.4字符的編碼表示擴展的ASCII碼已使用8位,可表示256個字符,其編碼表見附錄A。表中每個字符都對應(yīng)一個數(shù)值,稱為該字符的ASCII碼值。例如:數(shù)字“0”的ASCII碼值為48(30H),“A”的為65(41H),“a”的為97(61H)等。注意,阿拉伯數(shù)字、小寫英文字母、大寫英文字母3組常用的字符,各組字符的ASCII碼值都是連續(xù)遞增的。所以,記住每組中第一個字符的ASCII碼值就可推算出其他字符。例如:“d”排在“a”后面的第3位,則其ASCII碼值就比“a”的大3,就是100,“7”的ASCII碼值比“0”的大7,也就是55。其他以此類推。上一頁下一頁返回2.4字符的編碼表示2.BCD碼BCD(BinaryCodedDecimal)碼是“二進制編碼的十進制數(shù)”的簡寫。有4位BCD碼、6位BCD碼和擴展的BCD碼3種。1)8421BCD碼8421BCD碼又可簡稱為8421碼,曾被廣泛使用,它用4位二進制數(shù)表示一個十進制數(shù)字,4位二進制數(shù)從左向右其權(quán)分別為8,4,2,1。為了對一個多位十進制數(shù)進行編碼,需要有和十進制數(shù)的位數(shù)一樣多的4位組。顯然,8421BCD只能表示十進制數(shù)的0~9十個字符。2)擴展BCD碼上一頁下一頁返回2.4字符的編碼表示8421BCD碼只能表示10個十進制數(shù),自然字符數(shù)太少。即使后來產(chǎn)生的6位BCD碼也只能表示64個字符,其中包括10個十進制數(shù),26個英文字母和28個特殊字符。而在某些場合,還需要區(qū)分大、小寫英文字母。擴展BCD碼(ExtendedBinaryCodedDecimalInterchangeCode,EBCDIC),它由8位組成,可表示256個符號。EBCDIC碼就是為此提出的。EBCDIC碼是常用的編碼之一,IBM及UNIVAC計算機系統(tǒng)就曾采用這種編碼。3.Unicode上一頁下一頁返回2.4字符的編碼表示EBCDIC碼和擴展的ASCII碼所提供的256個字符,對于英語和西歐地區(qū)的語言來說已經(jīng)夠用了。但對于亞洲和其他地區(qū)所用的表意文字還不夠,它們需要表示更多的字符和意義,因此又出現(xiàn)了Unicode。Unicode是一種16位的編碼,能夠表示654000多個字符或符號。而目前世界上的各種語言,一般都是用34000多個字母或符號,所以Unicode可以用于任何一種語言。此外,Unicode保留30000多個符號供將來使用,如:古代語言或用戶自定義符號。Unicode與現(xiàn)在流行的ASCII碼完全兼容,因為二者的前256個符號是一樣的。目前,Unicode已經(jīng)在WindowsNT、OS/2、Office等軟件中使用。上一頁返回2.5中文信息編碼前面曾討論過用不同的編碼表示數(shù)字、字符的方法,那么漢字該怎樣編碼呢?20世紀70年代,計算機開始批量進入中國。作為先進的文化載體和快速的語言信息處理工具,計算機在服務(wù)西方語言方面取得了巨大的成功。在計算機出現(xiàn)以前早已定型的西文打字機鍵盤,也很自然地演變成了計算機輸入設(shè)備———標準鍵盤。但是,一個強大的挑戰(zhàn)卻出現(xiàn)在中國人的面前。如何才能將漢字輸入到計算機內(nèi)?如何在計算機系統(tǒng)內(nèi)表示漢字的形狀,使得漢字能顯示在屏幕上或打印在紙質(zhì)材料上等。下面分別介紹有關(guān)主要概念。下一頁返回2.5中文信息編碼2.5.1漢字輸入碼為將漢字輸入計算機而編制的代碼稱為漢字輸入碼,也叫外碼。目前漢字主要是經(jīng)標準鍵盤輸入計算機的,所以漢字輸入碼都由鍵盤上的字符或數(shù)字組合而成。如用全拼輸入法輸入“中”字,就要輸入代碼“zhong”(然后選字)。漢字輸入碼是根據(jù)漢字的多種屬性(如字音、字形、筆畫等)和漢語有關(guān)規(guī)則編制的,目前流行的漢字輸入碼的編碼方案已有許多,如:全拼碼、五筆字型碼、微軟拼音輸入碼、智能ABC、自然碼等。此外,還有手寫輸入和語音輸入法,它們使用特殊的技術(shù)將手寫的筆畫或語音轉(zhuǎn)換成對應(yīng)的編碼。上一頁下一頁返回2.5中文信息編碼2.5.2漢字信息交換碼漢字信息交換碼是用于漢字信息處理系統(tǒng)之間或者與通信系統(tǒng)之間進行信息交換的漢字代碼,簡稱交換碼,它也采用統(tǒng)一的標準。我國頒布的國家標準主要有以下幾個。1.GB2312—1980全稱是GB2312—1980《信息交換用漢字編碼字符集———基本集》,簡稱國標碼。國標碼于1980年發(fā)布,是中文信息處理的國家標準,在大陸及海外使用簡體中文的地區(qū)(如新加坡等)是法定的唯一中文編碼。這個標準的制定和應(yīng)用為規(guī)范、推動中文信息化進程起到了積極的促進作用。關(guān)于國標碼、區(qū)位碼與機內(nèi)碼之間的關(guān)系將在第2.5.6節(jié)詳細講述。上一頁下一頁返回2.5中文信息編碼2.GB12345—19901990年國家制定了繁體字的編碼標準GB12345—1990《信息交換用漢字編碼字符集———第一輔助集》,目的在于規(guī)范必須使用繁體字的各種場合,以及古籍整理等。該標準共收錄6866個漢字,其中純繁體字有2200多個。該標準也采用雙字節(jié)編碼。3.GBK編碼GBK編碼(ChineseInternalCodeSpecification),是中國內(nèi)地制定的中文編碼擴展國家標準,1995年12月完成。上一頁下一頁返回2.5中文信息編碼該編碼標準兼容GB2312,共收錄漢字21003個、符號883個,并提供1894個造字碼位,簡、繁體字融于一庫。早在Windows95/98簡體中文版中已經(jīng)采用。該標準也采用雙字節(jié)編碼。4.GR18030—2000GB18030—2000《信息技術(shù)、信息交換用漢字編碼字符集基本集的擴充》是由全國信息技術(shù)標準化技術(shù)委員會(簡稱信標委)新制定的國家標準。國家質(zhì)量技術(shù)監(jiān)督局和信息產(chǎn)業(yè)部在2000年3月17日聯(lián)合發(fā)布,并規(guī)定于2001年起強制執(zhí)行。上一頁下一頁返回2.5中文信息編碼GB18030是在GB2312和漢字內(nèi)碼擴展規(guī)范GBK1.0規(guī)范基礎(chǔ)上的擴充。它與現(xiàn)有的絕大多數(shù)操作系統(tǒng)、中文平臺在計算機內(nèi)兼容,支持現(xiàn)有的應(yīng)用系統(tǒng);包容了GB13000—1993國家標準中收錄的所有包括漢字和少數(shù)民族文字在內(nèi)的中文文字,以及世界上幾乎所有的語言文字。GB18030采用單字節(jié)、雙字節(jié)、四字節(jié)混合編碼,總編碼空間超過150萬個碼位。當前已經(jīng)收錄了27000多個漢字,并在統(tǒng)一的編碼框架下,為未來的擴充提供了充足的空間,為徹底解決郵政、戶政、金融、地理信息系統(tǒng)等迫切需要的人名、地名用字問題提供解決方案,也為漢字研究、古籍整理等領(lǐng)域提供了統(tǒng)一的信息平臺基礎(chǔ)。上一頁下一頁返回2.5中文信息編碼該標準為我國少數(shù)民族文字提供了與漢字統(tǒng)一的編碼框架,并已經(jīng)收錄了藏文、蒙文、維合爾文等主要的少數(shù)民族文字,為推進少數(shù)民族的信息化奠定了堅實的基礎(chǔ)。該標準的實施為制定統(tǒng)一的應(yīng)用軟件中文接口標準規(guī)范創(chuàng)造了條件。5.BIG5編碼BIG5編碼是目前中國臺灣、香港地區(qū)使用的一種繁體漢字的編碼標準,包括440個符號,一級漢字5401個、二級漢字7652個,共計13000多個漢字。上一頁下一頁返回2.5中文信息編碼2.5.3漢字內(nèi)碼1.漢字內(nèi)碼漢字是用漢字外碼輸入計算機的,但是外碼種類繁多,不斷推陳出新,而且不同的外碼編碼規(guī)則也不相同。如果計算機內(nèi)部直接采用這些五花八門的編碼存儲漢字,那么勢必使?jié)h字系統(tǒng)過于復(fù)雜。因此,無論用什么輸入法輸入的漢字,都先將它的外碼轉(zhuǎn)換成一種統(tǒng)一的代碼,這就是漢字機內(nèi)碼,簡稱內(nèi)碼。所以,在計算機內(nèi)部漢字都是以內(nèi)碼形式存儲、流動和處理的。每個漢字唯一對應(yīng)一個內(nèi)碼。內(nèi)碼目前尚沒有統(tǒng)一的形式。常用的漢字內(nèi)碼形式是分別將國標碼中表示漢字的兩個字節(jié)的最高位置成“1”。置成“1”的一位用作漢字標識碼,目的是為了與單字節(jié)的ASCII字符的機內(nèi)表示相區(qū)別。上一頁下一頁返回2.5中文信息編碼2.內(nèi)碼轉(zhuǎn)換由于歷史、地區(qū)等原因,各個國家和地區(qū)都設(shè)計了各自的不同的漢字編碼集。所以,有時一種文字會出現(xiàn)多種編碼方案,特別是漢字。由于一個系統(tǒng)中只能有一種漢字內(nèi)碼,不能識別其他漢字內(nèi)碼的字符。這樣,不符合本系統(tǒng)內(nèi)碼規(guī)則的字符就不能在該系統(tǒng)中正常顯示,必須要進行字符的內(nèi)碼轉(zhuǎn)換,即將非系統(tǒng)內(nèi)碼的字符轉(zhuǎn)換為該系統(tǒng)可以識別的內(nèi)碼字符?,F(xiàn)在已有許多具有這種功能的轉(zhuǎn)換工具。上一頁下一頁返回2.5中文信息編碼2.5.4漢字字形碼每個漢字,實質(zhì)上都是一個特殊的圖形符號。目前,漢字信息處理系統(tǒng)中表示漢字字形的方式大多是數(shù)字式的,即以點陣的方式表示漢字。所以這里討論的漢字字形碼,也就是指確定一個漢字字形點陣的代碼,也叫字?;驖h字輸出碼。用點陣表示漢字,實際上就是用黑、白點表示漢字。在一個點陣中,凡筆畫所到之處的點為黑點,記為“1”,否則為白點,記為“0”。這樣,一個漢字的字形就可用二進制數(shù)表示了。圖2-4顯示出了16×16點陣中“英”字的字形。顯然每個漢字占用16(行)×(16位/8位)=32字節(jié)的存儲空間。上一頁下一頁返回2.5中文信息編碼一般說來,存儲漢字所用的點陣數(shù)越高字形的質(zhì)量越好,當然占用的存儲容量也越多。漢字字形通常分為通用型和精密型兩類,通用型漢字字形點陣分成3種:(1)簡易型:16×16點陣;(2)普通型:24×24點陣;(3)提高型:32×32點陣。精密型漢字字形用于常規(guī)的印刷排版,由于信息量較大(字形點陣一般在96×96點陣以上),通常都采用信息壓縮存儲技術(shù)。上一頁下一頁返回2.5中文信息編碼漢字的輸出主要是指在顯示器上或打印機上輸出漢字對應(yīng)的圖形符號———字形。漢字的點陣字形在漢字輸出時要經(jīng)常使用,所以要把各個漢字的字形信息固定的存儲起來。存放各個漢字字形信息的實體稱為字庫。為滿足不同需要,還出現(xiàn)了各種各樣的字庫,如宋體字庫、黑體字庫、楷體字庫、簡體字庫和繁體字庫等。配上為表示字形大小所采用的漢字放大、縮小技術(shù)等,就能使同一個字庫可以產(chǎn)生大小不同的漢字。上一頁下一頁返回2.5中文信息編碼2.5.5漢字地址碼漢字地址碼是指漢字庫(這里主要指整字形的點陣式字模庫)中存儲漢字字形信息的邏輯地址碼。漢字字庫中,字形信息都是按一定順序(大多數(shù)按標準漢字交換碼中漢字的排列順序)連續(xù)存放在存儲介質(zhì)上,所以漢字地址碼也大多是連續(xù)有序的,而且與漢字內(nèi)碼間有著簡單的對應(yīng)關(guān)系,以簡化漢字內(nèi)碼到漢字地址碼的轉(zhuǎn)換。上一頁下一頁返回2.5中文信息編碼2.5.6區(qū)位碼、國標碼和機內(nèi)碼漢字的機內(nèi)碼用于在計算機內(nèi)對漢字進行存儲、處理和傳輸,下面通過區(qū)位碼和國標碼引出機內(nèi)碼的編碼方法。1.區(qū)位碼在GB2312—80字符集中,共收錄了6763個漢字,682個非漢字符號,共計7455個字符,在其中的漢字中,有一級常用字3755個,按漢字拼音字母的順序排列,二級常用字3008個,按部首順序排序。將這所有的漢字和字符放置在一個94×94的方陣中,方陣的每一行稱為漢字的一個“區(qū)”,區(qū)號范圍是1~94,各區(qū)是這樣安排字符的:上一頁下一頁返回2.5中文信息編碼(1)1~15區(qū)是非漢字符號區(qū);(2)16~55區(qū)是一級常用漢字區(qū);(3)56~87區(qū)是二級次常用漢字區(qū);(4)88~94區(qū)是保留區(qū),用來存儲自定義的代碼。方陣中的每一列稱為漢字的“位”,位號范圍也是1~94,這樣一個漢字在方陣中的位置可以用它的區(qū)號和位號來確定,將區(qū)號和位號組合起來就得到該漢字的區(qū)位碼。區(qū)位碼使用4位數(shù)字編碼,前兩位是區(qū)號,后兩位是位號。顯然,區(qū)位碼和每個漢字之間具有一一對應(yīng)的關(guān)系。上一頁下一頁返回2.5中文信息編碼例如:漢字“中”在54區(qū)48位,其區(qū)位碼就是5448,漢字“啊”在16區(qū)1位,區(qū)位碼就是1601。2.國標碼國標碼中用兩個字節(jié)對漢字進行編碼,每個字節(jié)只用7位,這樣,總共可表示214即16384個不同的漢字,這對于GB2312—1980中的7455個字符已經(jīng)足夠使用。GB2312—1980中規(guī)定,所有的漢字和符號國標碼的每個字節(jié)編碼范圍與ASCII碼中的94個可顯示字符(編碼范圍是21H~7EH)相一致,即每個字節(jié)的范圍都是21H~7EH。上一頁下一頁返回2.5中文信息編碼國標碼可以用區(qū)位碼進行轉(zhuǎn)換得到,轉(zhuǎn)換

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論