正文 第二章 計算機中的數據信息(二)(2 / 3)

二、漢字編碼簡介

進行中文信息處理與使用中文命令,存在一個如何表示漢字,即漢字編碼問題。與西文結構不同,漢字是獨立的字形,數量很多,常用漢字就有幾千,這是漢字編碼的特殊問題。

1.字模

通常將漢字字形看成一種圖象,用點陣來表示,字模就是漢字字型點陣,用一個16x16點陣表示一個漢字字形,每個象點用一位數碼表示。

上例中共16行,每行16點需二個字節,所以一個16x16點陣需要32字節數碼信息表示。漢字字模點陣存儲在存儲器中,稱為漢字字型庫,可分為二級。按照國家標準漢字信息交換碼GB2312—80規定:一級漢字3755個,二級漢字3008個,另外還有一些數字及報表圖形符號。可將它們存放在漢卡(一種插件)的隻讀存儲器中,或存放在磁盤中。輸出時可根據漢.字編碼,從字庫中找到相應漢字的字形點陣信息,顯示或打印出漢字。

2.內碼

如果存儲一篇漢字文件,則采用漢字代碼形式。漢字代碼分為內碼與外碼,內碼即內部代碼,用作漢字存儲形式,提供作漢字處理。目前不同的漢字處理係統采用的內碼可能各不相同,因此存在著多種內碼。

3.國家標準漢字信息交換碼

盡管各種係統使用的漢字內碼可能不同.但為了在通信中即信息交換中有個通用標準,我國在1981年公布了國家標準GB2312—80:《信息交換用漢字編碼字符集基本集》。標準中每個字符用兩個字節表示,第一個字節表明字符屬於哪一區,第二個字節表明是哪一位,基本集有94區,每區有94位。

漢字處理中最關鍵的是漢字輸入問題,因為交換用的國標碼或其他內碼都很難記住,因此在輸入時要采用一些便子使用的輸入碼。目前已提出了幾百種輸入碼方案,而且仍在繼續研究改進之中。輸入碼進入計算機之後,再用程序轉換為其他內碼或交換碼。

歸納起來,常用的輸入碼有幾種類型:

(1)拚音碼

按漢語拚音將漢字轉換為西文字母輸入。

(2)字形碼

分析漢字字形的組成,分解為部首、字根等,設置一些與部首、字根對應的鍵,用它們的組合表示漢字。

2.5校驗碼

計算機中的信息以數字代碼表示,代碼的正確與否對計算機工作的正確性至關重要。在哪些情況下信息容易發生錯誤呢?一種情況是對存儲器進行存儲時,信號可能在存儲過程與讀出過程中受到幹擾,使有些0變成了1,有些1變成了0。另一種情況是進行信息傳送特別是遠距離傳送時,線路可能受到幹擾。因此在讀出或傳送之後往往需要檢查一下,如果有錯,可以重讀、重傳或采取自動糾錯措施,或停止運行並發出告警信號。

問題是如何判斷有沒有出錯,這就需要事先約定某種規律。例如在寫入存儲器時,增設校驗位使滿足該規律,在讀出時檢查是否仍滿足規律,若滿足,說明信息內容正確,若規律被破壞,說明信息已經出錯。這種措施稱為校驗,具有校驗能力的代碼稱為校驗碼,它包含基本信息位與增設的校驗位。我們甚至可以判明最大可能是哪一位出錯,由於每位不是0就是1,如果判明出錯,隻要將它變反,就將內容糾正過來,所以這類校驗碼又叫糾錯碼。

在主存儲器中廣泛應用的校驗方法是奇偶校驗,這是最簡單也是最常用的一種方法。

通過增補一個校驗位,從而使一串代碼中1的個數為奇數或偶數,前一種約定稱為奇校驗,後一種約定稱為校驗,這二種校驗方法統稱為奇偶校驗。在寫入存儲器時增配校驗位,以滿足約定規律,這過程叫做編碼。讀存儲器時連同校驗位一道讀出,統計一下1的個數,看是否符合約定,這過程叫做檢驗或譯碼。這兩個過程都可以用電路自動高速地完成。

例1:待編信息1011010,按奇校驗配校驗位。

待編的七位代碼中有4個1,增配校驗位應為1,配成的校驗碼為11011010。

例2:待編信息1011011,按奇校驗配校驗位。

待編的代碼中有5個1,已經是奇數,增配校驗位應為0,配成校驗碼0101101U

例3:待編信息1011010,按偶校驗配校驗位。

應配校驗位為0,配成01011010。

在外存儲器與通信中,還采用海明校驗與循環校驗技術,有關原理可參考其他書籍。

2.6數據的組織

前麵所討論的是單個數據或字符的編碼問題,所涉及的內容是數據信息表示方法的基礎。但在計算機中需存儲與處理的數據量很大,它們之間可能存在著各種複雜的關聯,因此我們還需要進一步研究,如何對計算機中的數據進行有效的組織,這是編製程序時應當精心考慮的一項工作。這樣我們才能在計算機內有效地存儲與管理數據,需要處理時,能夠有效地從大量數據信息中找到自己所需的內容,這方麵的知識是從事軟件工作的重要基礎。

一、數據的組織

1.文件

我們按一定的邏輯結構,將有關聯的數據組織成為若幹文件,並定義文件名,這樣文件就成為用戶可以存儲與調用的獨立單位。例如建立一個工資管理文件,將它存入磁盤之中,需要時,就按這個文件名將它從磁盤中調入主存儲器,進行處理。根據文件的規模與需要,可以將文件分為若幹級,相應地建立文件目錄,以便查找。

2.記錄

一個文件按某種邏輯結構包含若幹記錄,例如在工資管理文件中,某位職工的工資發放數據,就可以算成一個記錄。根據文件的具體內容,各個記錄的長度(如占多少字節),可以規定得相同,也可以不相同。

3.據數項一個記錄往往包括若幹個數據項,例如一位職工的工資發放記錄中,可能包含這樣一些數據項:姓名、基本工資、工齡補助、副食品補貼、扣除房租、水電費、實發金額等項。

一般來講,存入磁盤或從磁盤中調出數據,需要以文件或子文件為單位,調入主存後,就可以對各記錄與數據項進行分析與處理。

二、數據結構的基本類型

上麵討論了數據組織的基本層次,即文件、記錄、數據項。為了有效地管理數據信息,還必須考慮數據元素之間的邏輯關係,例如隸屬關係與順序關係,為此我們抽象出各類數據結構。數據結構指數據的組織形式,它反映數之間的相互關係,但抽象的數據結構本身並不涉及數據的具體內容。本節將簡單介紹一些常用的數指結構形態。

1.數組

數組是有限個相同類型的數據元素的有序集合,而對數據元素的抽象描述則包含值與下標,例如是該數據元素的值,f是表明它在數組中位置的下標。一個數組通常存放在一個連續的存儲區中,例如一個數據元素占一個或幾個相繼的存儲單元,各數據元素則順序地存放。在一個數組中,除了第一個和最後一個數據元素,其它的每一個數據元素都隻有一個直接前趨元素,和一個直接後繼元素,例如A2的直接前趨是Au直接後繼是A,,這樣的相互關係稱為線性關係。