由于計算機要處理的數(shù)據(jù)信息十分龐雜,有些數(shù)據(jù)庫所代表的含義又使人難以記憶。為了便于使用,容易記憶,常常要對加工處理的對象進行編碼,用一個編碼符合代表一條信息或一串數(shù)據(jù)。對數(shù)據(jù)進行編碼在計算機的管理中非常重要,可以方便地進行信息分類、校核、合計、檢索等操作。因此,數(shù)據(jù)編碼就成為計算機處理的關(guān)鍵。即不同的信息記錄應(yīng)當采用不同的編碼,一個碼點可以代表一條信息記錄。人們可以利用編碼來識別每一個記錄,區(qū)別處理方法,進行分類和校核,從而克服項目參差不齊的缺點,節(jié)省存儲空間,提高處理速度。
1.數(shù)字編碼(BCD編碼)
數(shù)字在計算機中除了通過進制轉(zhuǎn)換為二進制外,還有一種比較重要的編碼形式,即BCD碼,BCD是Binary-Coded-Decimal 的縮寫。BCD碼有多重編碼方案,但最常用的是8421碼。它將1位十進制數(shù)用4位二進制數(shù)來表示,而4位二進制數(shù)各位權(quán)值由高到低一次是2³、2²、2¹、2º,即8、4、2、1、,故稱之為8421碼。十進制數(shù)與BCD碼的對應(yīng)關(guān)系如表1.2所示。
注意:BCD碼并不能直接轉(zhuǎn)換成二進制,而應(yīng)該先轉(zhuǎn)換成十進制,再轉(zhuǎn)換成二進制。
2.西文字符編碼
對于系文字符編碼最常用的是ASCⅡ字符編碼,即American Staddard Code for Information Interchange(美國信息交換標準代碼),已被國際標準化組織(ISO)定為國際標準。
ASCⅡ碼分為標準ASCⅡ碼和擴展ASCⅡ碼,兩者的區(qū)別在于用來編碼的位數(shù)不同,前者有7個二進制代碼組成,因此共可以表示2 ,即128個字符,如表1.3所示。
ASCⅡ碼的每個字符由7位二進制表示,其排列順序為d6d5d4d3d2d1d0,其中,d6、d5、d4為高危,d3、d2、d1d0.在計算機內(nèi)部,存儲與操作都是以字節(jié)為單位,一個字節(jié)有8個位,因此,一個字符在計算機內(nèi)實際用8位表示。真長情況下,最高以為d7為“0”。在需要奇偶校驗時,這意味可用于存放奇偶校驗的值,此時稱這意味為校驗位。
我們可以通過查閱ASCⅡ表來確定某個字符的ASCⅡ碼,方法是在表中找到字符的位置,然后確定它所在位置的列和行,根據(jù)列確定高位碼,根據(jù)行確定低位碼,再將他們合并在一起就是該字符的ASCⅡ碼。如,字母A所在的列碼是100,行所在的碼是0001,那么字母A的ASCⅡ是1000001,轉(zhuǎn)換為十進制是65.
ASCⅡ碼是128個字符組成的字符集。其中編碼值0~31(0000000~0011111)不對應(yīng)任何可印刷字符,通常稱為控制符,用于計算機通信中的通信控制或?qū)τ嬎銠C設(shè)備的功能控制。編碼值為32(0100000)的死字符SP。編碼指為127(1111111)的是刪除控制DEL碼……其余94個字符為可印刷字符。
西文字符除了常用的ASCⅡ編碼外,還有另一種EBCDIC(Extended Binaey Coded Decimal Interchange Code,擴展的二一十進制交換碼)碼。這種字符編碼主要用在大型機器中。EBCDIC采用8位基2碼表示,有256個編碼狀態(tài),但是選用其中一部分。
3.漢字編碼
ASCⅡ碼只對引文字母、數(shù)字和標點符號進行了編碼。為了用計算機處理漢漢字,同樣需要對漢子進行編碼。由于漢字是象形文字,種類繁多,編碼困難一些,在漢字處理系統(tǒng)中,輸入、內(nèi)部處理、輸出環(huán)節(jié)對漢字編碼的要求也不盡相同,因此漢字信息處理系統(tǒng)在處理漢字和詞語是,要進行一系列的漢字代碼轉(zhuǎn)換。如圖1.4所示。
(1)輸入碼
輸入碼是為將漢字輸入計算機而變質(zhì)的代碼,也稱為外碼。目前輸入碼的方案有上百種之多,按照不同的設(shè)計思想,可分為數(shù)字編碼、拼音編碼、字形編碼、和音形編碼四類,其中最常用的有拼音編碼和字形編碼
?、贁?shù)字編碼時用等長的數(shù)字串為漢字注意編號,以這個編號作為漢字的輸入碼。
?、谄匆艟幋a時以漢字的讀音為基礎(chǔ)的輸入法。
③字形編碼時以漢字的字形結(jié)構(gòu)為基礎(chǔ)的輸入編碼。
?、芤粜未a是兼顧漢字的讀音和字形的輸入編碼。
(2)交換碼
交換碼用于漢字輸入碼和內(nèi)部碼的交換。1981年,我國頒布了代號為GB231280《信息交換使用漢字編碼字符集基本集》的漢字編碼字符集,是中文信息處理的國家標準,是交換碼的標準,所以交換碼也稱為國標碼。該標準包含漢字6763個,圖形符號682個。
國標碼是雙字節(jié)代碼,即用兩個字節(jié)為漢字編碼,第一個字節(jié)表示區(qū)碼,第二個字節(jié)
表示位碼。
(3)內(nèi)部碼
內(nèi)部碼(簡稱內(nèi)碼)是漢字在計算機內(nèi)的基本表示形式,是計算機機對漢字進行識別、存儲、處理和傳輸所用的編碼。
(4)字形碼
字形碼是為了解決漢字的顯示和打印等輸出問題而進行的編碼。漢字的字形碼表示漢字字形的字模數(shù)據(jù),又稱漢字字模。字模通常有點陣和矢量兩種漢字字形碼,它是漢字的輸出形式。點陣字模將漢字看作由許多點組成的圖形,這些點構(gòu)成點陣。點陣字形碼使用方便、易于理解,但不同大小的字形需要不同的點陣庫,且字形放大時容易產(chǎn)生鋸齒狀失真。矢量字形碼用數(shù)學(xué)曲線捕述,字體中包含了符號邊界卜的關(guān)鍵點,連線的導(dǎo)數(shù)信息等。矢量字體的特點是可以無限放大或縮小。