編碼模型

編碼模型

編碼模型就是通過編碼方案將人類可讀的數據轉換成機器存儲數據(0、1數據形式),即將字元流轉換為位元組流。常見的編碼方案有ASCIILatinGBKUTF8等。

基本介紹

  • 中文名:編碼模型
  • 外文名:encode model
  • 領域:計算機
  • 釋義:將字元流轉換為位元組流的模型
  • 建立途徑:編碼方案
  • 典型編碼方案:ASCII、Latin、GBK和UTF8等
編碼與解碼,編碼模型,編碼方案,ASCII,GBK,UTF-8,示例,

編碼與解碼

機器存儲數據只有01數據形式,讀取數據的時候,只有藉助編碼方案的映射,才能轉換為人類可讀的數據形式;保存數據的時候,也同樣需要藉助於編碼方案,將其轉換成01數據形式。
常見的編碼方案有ASCIILatinGBKUTF8等。
圖1圖1
讀取過程(解碼):01數據—>編碼方案映射轉換—>人類可讀的數據形式。
保存過程(編碼):人類可讀的數據形式—>編碼方案映射轉換—>01數據。
01數據以位元組為單位進行展示,那么可得到位元組流;人類可讀的數據以字元為單位進行展示,那么可得到字元流。二者之間的關係如圖1。

編碼模型

圖2為編碼模型的一般形式。模型就是首先選擇一種編碼方案,然後使用該編碼方案編碼字元流中的字元得到對應的位元組序列,進而構成位元組流,實現從字元流到位元組流的編碼過程。
圖2 編碼模型圖2 編碼模型
在編碼過程中,如果在選定的編碼方案中不能找到與待編碼字元相應的映射記錄,那么有兩種解決方案:
(1)直接報錯,停止編碼;
(2)直接編碼成某個特殊的位元組序列,使用該種解決方案後,就不能從得到的位元組流解碼得到原始的字元流,即存在信息丟失。

編碼方案

ASCII

ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,並等同於國際標準ISO/IEC 646。
ASCII總共有 128 個字元,用一個位元組的低 7 位表示,0~31 是控制字元如換行回車刪除等;32~126 是列印字元,可以通過鍵盤輸入並且能夠顯示出來。
擴展的ASCII字元滿足了對更多字元的需求。擴展的ASCII包含ASCII中已有的128個字元(數字0–32顯示在下圖中),又增加了128個字元,總共是256個。即使有了這些更多的字元,許多語言還是包含無法壓縮到256個字元中的符號。因此,出現了一些ASCII的變體來囊括地區性字元和符號。例如,許多軟體程式把ASCII表(又稱作ISO8859-1)用於北美、西歐、澳大利亞和非洲的語言。

GBK

GBK,全稱《漢字內碼擴展規範》,是國家技術監督局為 windows95 所制定的新的漢字內碼規範,它的出現是為了擴展 GB2312,加入更多的漢字,它的編碼範圍是 8140~FEFE(去掉 XX7F)總共有 23940 個碼位,它能表示 21003 個漢字,它的編碼是和 GB2312 兼容的,也就是說用 GB2312 編碼的漢字可以用 GBK 來解碼,並且不會有亂碼。

UTF-8

UTF-16 統一採用兩個位元組表示一個字元,雖然在表示上非常簡單方便,但是也有其缺點,有很大一部分字元用一個位元組就可以表示的現在要兩個位元組表示,存儲空間放大了一倍,在現在的網路頻寬還非常有限的今天,這樣會增大網路傳輸的流量,而且也沒必要。而 UTF-8 採用了一種變長技術,每個編碼區域有不同的字碼長度。不同類型的字元可以是由 1~6 個位元組組成。
UTF-8 有以下編碼規則: 如果一個位元組,最高位(第 8 位)為 0,表示這是一個 ASCII 字元(00 - 7F)。可見,所有 ASCII 編碼已經是 UTF-8 了。 如果一個位元組,以 11 開頭,連續的 1 的個數暗示這個字元的位元組數,例如:110xxxxx 代表它是雙位元組 UTF-8 字元的首位元組。 如果一個位元組,以 10 開始,表示它不是首位元組,需要向前查找才能得到當前字元的首位元組。

示例

樹形碼模型是一種典型的計算機信息管理系統的編碼模型。樹形碼可以表示數據資料單元的多種特性,是一種分級結構碼,用於表示實體集合的屬性關係及實體集合間連線形式的模型,其處理的基本結構是樹,它有一個稱為根的總結點,根之下有若干個兒子,沒有兒子的結點稱為葉子,其特點是編碼分級,但葉子的編碼長度不定,如企業的行政機構,根為該企業,一級為各部門,有些部門下可能還設有科室,有些部門則不再設定,而加工分廠可能還設有車間、班組等。在計算機信息管理中,樹形編碼一般作為表的關鍵欄位,但大部分是作為關係數據欄位來使用,有時也作為幫助欄位,如人事管理中的職稱,就是將職稱作為二元關係,它可作為一棵總樹,第一級職稱,第二級工程類、財務類、……第三級正高級、副高級、中級、……,也可分為若干個子樹,即工程類為一棵樹,財務類為一棵樹等。其樹形碼模型如下:
Mode(Share,Struetre,Relation,Setchr,Array)
其中:
Structrue:分區結構[X1,[X2,[X3,...]]],且滿足X1+X2+X3+……Xn≤欄位存儲長度;
Relation :關係數, n元關係,n≥1;
Setchr:字元集;false ( 0-9 ),true ( 0-9,A-Z ) ;
Array[N]:N元關係欄位說明;
Share:共享標識。
轉義算法 F(x)=∑Shareij(x) , 其中:i為度數,j為元組數,x為原值,Share為共享標識。
樹形結構確定樹的最大級數,如structrue=1,2,3,2表示該樹最大級數為4級,第一級編碼長度1,第二級為2(碼長度為3),第三級為3(碼長度為6),第四級為2(碼長度為8)。Relation反映結點的元組數,當Relation=2,表示結點有兩個元組,如在部門行政機構中可表示為,單位名稱和行政負責,若Relation=3,則又可增加單位電話元素。
Setchr編碼集有兩種狀態,一是數字編碼(0-9十進制),二是混合編碼(0-9,A-Z 36進制)。
Array[N]為N元組的說明,如行政機構中可定義為array[1]=單位名稱,array[2]=負責人,array[3]=電話號碼。
Share共享標識是一個重要參數,其值為唯一字元標識符,通過它可以對其樹進行引用,這就形成了多對多的引用,這在關係資料庫管理系統是一個突破。

相關詞條

熱門詞條

聯絡我們