计算机的使用编码,计算机中使用的编码
計算機中使用的編碼
一、ASCII編碼
在計算機中,任何信息都必須轉換為二進制數據進行存儲和處理。鍵盤上的英文字母、阿拉伯數字、各種標點符號、各種控制符號(如回車鍵、刪除鍵、退格鍵等……)也都是以二進制編碼的形式存儲在計算機中。目前計算機中統一使用的是美國標準信息交換代碼,簡稱ASCCII編碼。ASCII編碼以表格的形式統一規定了計算機中各種常用符號所使用的二進制編碼。
目前計算機中使用最廣泛的編碼是美國國家信息交換編碼,簡稱ASCII碼。標準ASCII 碼也叫基礎ASCII碼,它使用7 位的來表示所有的大寫和小寫字母,數字0 到9、標點符號,以及在美式英語中使用的特殊。其中編號為0至31的32個編碼及編號為127的編碼(共33個)對應的符號是,這些字符包括:LF(換行)、CR(回車)、FF(換頁)、DEL()、BS(退格)、BEL(響鈴)等。這些符號不能在屏幕上顯示或打印,但會依不同的應用程序而實現特定的控制功能。編號為32-126的95個符號,是可顯示的字符,每個字符都可在屏幕上顯示或通過打印機進行打印,它們包括空格、52個大小寫英文字母、阿拉伯數字、標點符號和一些常用符號。
標準ASCII碼表參見下表,為了便于閱讀或記憶,表中的二進制編碼都以十進制數的形式給出。實際在計算機中是以二進制形式存儲的。
二、漢字編碼
1、區位碼和國標碼
1981年我國頒發GB2312-80國家標準信息交換用漢字編碼字符集-基本集,規定常用漢字總數為6763個,其中一級漢字為3755個(都是常用的漢字),二級漢字為3008個(都是不常用的漢字),除漢字外字符集中還有一般符號202個(標點符號、運算符號、單位符號、制表符號),序號60個,數字22個,拉丁字母52個,日語假名169個,希臘字母48個俄文字母66個漢語拼音符號和注音符號63個。
漢字編碼表以二維表的形式列出,表有94行,94列,行序號稱作區號,列序號稱作位號,該表稱作區位表,一般符號占用1-10區(表的前十行),一級漢字占16區到55區,二級漢字占56區到87區,一級漢字以漢字的讀音的順序排列,二級漢字按偏旁部首順序排列。
每個漢字可由區號和位號來唯一確定,漢字的區號和位號合在一起稱作漢字的區位碼(即漢字在表中的行序號和列序號合起來稱作漢字的區位碼)。顯然區碼和位碼各需一個字節來編碼表示。因為ASCII編碼的前32個符號(0-31)是控制符號,可顯示符號是從第32號編碼開始,為了使漢字編碼和ASCII編碼一致,所以漢字區碼和位碼各加上32,作為漢字的國標碼,區碼和位碼各加上32,實際就是各加上十六進制數20H。
比如漢字“唱”字位于區位表中的第19區第10位(即第19行第10列),它的區位碼寫成二進制是00010011B和00001010B,分別寫成十六進制數后是13H,0AH,分別加上20H后就變成33H和2AH。這就是“唱”字的國標碼兩個字節的編碼。
2、機內碼
在計算機中ASCII是單字節編碼,因為只有128個符號,所以只需使用一個字節二進制中的低七位就可以了,而最高位只需為0即可。而漢字因數量眾多,只能使用雙字節進行編碼,雙字節由16位二進制數組成,最多可以給216(二的十六次冪,即65536)個漢字進行編碼,而區位表中只有94X94(8千多個符號和漢字),所以我們實際只使用兩個字節中各字節的低七位,而表示漢字的兩字節中的最高位也恰是0,如果在計算機中直接用國標碼作為漢字的編碼,則一個漢字編碼會和兩個ASCII表中的符號混淆,計算機無法區分是一個漢字編碼還是兩個ASCII符號編碼。為了避免混淆,我們實際上將國標碼的兩個字節二進制數的最高位由0變成1(即兩字節的國標碼,各字節都增加了十六進制數80H),就可以和ASCII符號進行區分,因為ASCII編碼每字節的最高位是0。這樣規定后的漢字編碼可以直接在計算機中用來處理漢字,這種編碼稱作漢字的機內碼。于是有如下關系:
區位碼+2020H為國標碼
國標碼+8080H為機內碼
3、漢字的外碼
外碼也稱作輸入碼,因漢字眾多,所以要通過英文鍵盤將漢字輸入到計算機內,就需要用到漢字的輸入編碼,漢字輸入編碼有多種方案。如拼音輸入法(通過漢語拼音輸入漢字),五筆字形輸入(通過漢字的字根和構字的部件輸入漢字),區位碼輸入(通過漢字的區位碼輸入漢字)等……。
4、漢字的字型碼
漢字的字形很復雜,有多種字體,如宋體、楷體、行體、黑體等,計算機需要用多個字節的二進制數才能記錄這些字型信息,通常用16X16點陣、32X32點陣、48X48點陣等多種不同的精度來記錄漢字的字模信息。比如16X16點陣的漢字需要用32個字節來表示漢字的各筆畫。如下圖所示。每行用兩個字節,共十六行,使用32個字節,每個字節的每一位如果是0表示這里無筆畫,如果是1表示這里有筆畫。
漢字在打印或顯示時需要用到這些信息。
一種字體的全部漢字的字型信息存儲在稱作字庫的文件中,因此漢字庫的容量是很大的。我們通常將一篇文章存儲在磁盤上實際上存的是文章中每個漢字的機內碼,打印時由計算機到字庫中逐個調出字模信息進行打印,而字庫并不需要隨文章一起保存。
我們用輸入碼將漢字輸入到計算機中,計算機用內碼來保存和處理漢字,要顯示或打印漢字時,計算機再到字庫中取出字型編碼信息進行顯示或打印。
三、Unicode編碼
因為世界上各個國家使用的符號文字均不同,為了滿足跨語言、跨平臺進行文本轉換、處理的要求而出現了一種新的編碼方案- Unicode編碼,這種編碼為世界各國使用的語言符號提出了統一的編碼方案。它將所有語言都統一到同一套編碼中,涵蓋了世界各地與出版行業字符的全部。而且它的產生是以各個國家或國標字符編碼為基礎的。目前,Unicode編碼在網絡、Windows系統和很多大型中得到廣泛應用。ASCII編碼、漢字符號都是這個編碼系統的子集。
Unicode為世界各個國家的全部語言文字和印刷符號作了統一的編碼,但并沒有規定這些編碼在計算機中如何實現,UTF-8是Unicode的一種實現方式,UTF-8規定了這些編碼在計算機內如何用二進制數表示和存儲,因為Unicode編碼方案可以表示世界上的全部文字符號,所以在計算機中實現時一個符號也需要多個字節,但如果使用多個字節表示原來的單字節的ASCII編碼,則無疑又是一種浪費,為了避免這種情況的發生,UTF-8編碼采用了一種變長字節編碼方式,即編碼長度從一字節至六字節不等,對常用的ASCII符號,仍只使用一個字節進行編碼,而對漢字或其他符號則使用更多字節進行編碼,其實現原理是:
只使用一個字節的UTF-8編碼,字節的最高二進制位為0
如果是多字節編碼,則編碼的第一個字節以“11……0”的形式開始,首字節后的其余字節均以10開始,首字節中1的個數表示該編碼使用的總字節數,假如有如下編碼:
1110XXXX 10XXXXXX 10XXXXXX
(X可以是1或0)
由第一個字節以1110開始,計算機系統可以識別出這是一個由三字節完成的編碼,其后面的兩個字節與首字節均屬于同一編碼。
其中第二字節第三字節開始的10是固定的模式,所以能用來實際編碼使用的位數只有用X表示的二進制數(共20位)
下面給出了1至6字節編碼的各字節的表示方法:1字節 0xxxxxxx?2字節 110xxxxx
10xxxxxx?3字節 1110xxxx 10xxxxxx
10xxxxxx?4字節 11110xxx 10xxxxxx
10xxxxxx 10xxxxxx?5字節 111110xx 10xxxxxx
10xxxxxx 10xxxxxx 10xxxxxx?6字節 1111110x 10xxxxxx
10xxxxxx 10xxxxxx 10xxxxxx
10xxxxxx由上面的表示不難看出,UTF-8中可以用來表示字符編碼的實際位數最多有31位,即上表中x所表示的位。因此那些基本ASCII字符集中的字符(UNICODE兼容ASCII)只需要一個字節的UTF-8編碼(7個二進制位)便可以表示。
總結
以上是生活随笔為你收集整理的计算机的使用编码,计算机中使用的编码的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Hybrid Astar 算法剖析和实现
- 下一篇: LQR控制基本原理(包括Riccati方
