C++資訊編碼表示

2020-10-06 13:00:37

一、基本概念

編碼

​ 計算機要處理的資料除了數值資料以外,還有各類符號、圖形、影象和聲音等非數值資料。而計算機只能識別兩個數位0,1。要使計算機能處理這些資訊,首先必須要將各類資訊轉換成0與1表示的程式碼,這一過程稱為編碼。

資料

​ 能被計算機接受和處理的符號的集合都稱為資料。

位元

​ 位元/位 (Bit ——二進位制位數)是指1位二進位制的數碼(即0或1).位元/位 是計算機中表示資訊的資料編碼中的最小單位。

位元組

​ 位元組(Byte)是計算機資料處理的基本單位。位元組表示被處理的一組連續的二進位制數位。通常用8位元二進位制數位表示一個位元組,即一個位元組有8個位元組成。

​ 字(word)通常由一個或若干個位元組組成。字是計算機進行資料處理時一次存取、加工和傳送的資料長度。由於字長是計算機一次所能處理資訊的實際位數,所以它決定了計算機資料處理的速度,是衡量計算機效能的一個重要指標,字長越長,計算機的效能越好。

計算機中的資料換算

​ 計算機中資料的換算都是以位元組為基本單位以2^10 = 1024為進率。常見的資料單位及其換算關係如下:

單位KBMBGBTBPB
換算關係1KB=1024B1MB=1024KB1GB=1024MB1TB=1024GB1PB=1024TB

字元的表示

​ 字元是人與計算機互動過程中不可缺少的重要資訊。要是計算機能處理、儲存字元資訊,首先必須用二進位制0和1程式碼對字元進行編碼。

ASCII編碼

​ ASCII編碼是由美國國家標準委員會制定的一種包括數位、字母、通用符號和控制符號在內的字元編碼集,全稱位美國國家資訊交換標準程式碼(American Standard Code for Information Interchange)。ASCII 碼是一種7位二進位制編碼,能表示2^7=128種國際上最通用的西文字元,是目前計算機中,特別是微型計算機中使用最普遍的字元編碼集。

​ ASCII編碼包括4類最常用的字元。

  1. 數位「0」 ~ 「9」.ASCII編碼的值分別為0110000B ~ 0111001B,對應十六進位制數為30H ~ 39H。

  2. 26個英文字母。大寫字母"A" ~ 「Z"的ASCII編碼值為41H ~ 5AH,小寫字母"a」 ~ 「z」的ASCII編碼值為61H ~ 7AH。

  3. 通用符號。如「+」 、「-」、「=」、「 * 」和「/」等共32個。

  4. 控制符號。如空格符和回車符等共34個。

​ ASCII碼是一種7位編碼,它儲存時必須佔全一個位元組,也即佔用8位元:b7、b6、b5、b4、b3、b2、b1、b0,其中b7恆為0,其餘幾位為ASCII碼值。

​ 人們可以通過鍵盤輸入和顯示器顯示不同的字元,但在計算機中,所有資訊都是用二進位制程式碼錶示的。n位二進位制程式碼能表示2^n個不同的字元,這些字元的不同的組合就可以表示不同的資訊。為使計算機使用的資料能共用和傳遞,必須對字元進行統一的編碼。ASCII碼和擴充的ASCII碼中,把二進位制位最高位為0的數位都稱為基本的ASCII碼,其範圍是0 ~ 127;把二進位制最高位為1的數位都成為拓展的ASCII碼,其範圍是128 ~ 255。

內碼和外碼

內碼

​ 對於輸入計算機的文字檔案,機器是儲存其相應的字元的ASCII碼(用一個ASCII碼儲存一個字元需8個二進位制位,即一個位元組),這些可被計算機內部進行儲存和運算使用的數位程式碼稱內碼。如輸入字元「A",計算機將其轉成內碼65後存於記憶體。

外碼

計算機與人進行交換的自行符號稱為外碼,如字元」A「的外碼是」A「。通常一個西文字元佔一個位元組(半形),一箇中文字元佔兩個位元組。

漢字資訊編碼

漢字交換碼

​ 漢字交換碼是指不同的具有漢字處理功能的計算機系統之間在交換漢字資訊時使用的程式碼標準。自國家標準GB2312-80公佈以來,我國一直沿用該標準所規定的國際標準碼作為統一的漢字資訊交換碼(GB5007-85圖形字元程式碼)。

​ GB2312-80標準包括了6763個漢字,按其使用頻率分為一級漢字3755個和二級漢字3008個。一級漢字按拼音順序,二級漢字按部首排序。該標準還包括標點符號、數種西文字母、圖形、數碼等符號682個。

​ 區位碼的區碼和位碼均採用從01到94的十進位制,國標碼採用十六進位制的21H到73H(數位後面加H表示其為十六進位制數)。區位碼和國標碼的換算關係是:區碼和位碼分別加上十進位制數32。如」國「字在表中的25行90列,其區位碼為2590,國標碼是397AH。

字形儲存碼

​ 字形儲存碼是指計算機輸出漢字(顯示或列印)用的二進位制資訊,也稱字模。通常,採用的數位化點陣字模。

​ 一般的點陣規模有16 * 16、24 * 24等,每一個點在記憶體中用一個二進位制位(bit)儲存。在16 * 16的點陣中,需8*32bit的儲存空間,每8bit為1位元組,所以,需32位元組的儲存空間。在相同點陣中,不管其壁畫繁簡,每個漢字所佔的位元組數相等。

​ 為了節省儲存空間,普遍採用字形資料壓縮技術。所謂向量漢字,是指用向量方法將漢字點陣字模進行壓縮後得到的漢字字形數位化資訊。