『壹』 簡單介紹一下:什麼是機內碼、國際碼、輸入碼、ASCII碼,以及它們的聯系
輸入碼、區位碼、國標碼與機內碼
國家標准局1980年頒布的《信息交換用漢字編碼字元集"基本集》(代號為GB2312 80)規定的漢字交換碼作為國家標准漢字編碼。 GB2312 80中共有7445個字元符號: 漢字元號6763個 一級漢字3755個(按漢語拼音字母順序排列) 二級漢字3008個(按部首筆劃順序排列) 非漢字元號682個 GB2312 80規定,我們知道,鍵盤是當前微機的主要輸入設備,;輸入碼就是使用英文鍵盤輸入漢字時的編碼。目前,我國已推出的輸入碼有數百種,但用戶使用較多的約為十幾種,按輸入碼編碼的主要依據,大體可分為順序碼、音碼、形碼、音形碼四類,如「保」�字,用全拼,輸入碼為碼為「BAO」,用區位碼,輸入碼為「1703」,用五筆字型則為「WKS」。
計算機只識別由0、1組成的代碼,ASCII碼是英文信息處理的標准編碼,漢字信息處理也必須有一個統一的標准編碼。 漢字交換碼(國標碼)主要用於漢字信息交換,我國國家標准局於1981年5月頒布了《信息交換用漢字編碼字元集——基本集》,代號為GB2312-80,共對6763個漢字和682個圖形字元進行了編碼,其編碼原則為:漢字用兩個位元組表示,原則上,兩個位元組可以表示 256×256=65536 種不同的符號,作為漢字編碼表示的基礎是可行的。但考慮到漢字編碼與其它國際通用編碼,如ASCII 西文字元編碼的關系,我國國家標准局採用了加以修正的兩位元組漢字編碼方案,只用了兩個位元組的低7位。這個方案可以容納 128×128=16384 種不同的漢字,但為了與標准ASCII碼兼容,每個位元組中都不能再用32個控制功能碼和碼值為32的空格以及127的操作碼。所以每個位元組只能有94個編碼。這樣,雙七位實際能夠表示的字數是:94×94=8836個。
所有的國標碼漢字及符號組成一個94行94列的二維代碼表中。在此方陣中,每一行稱為一個"區",每一列稱為一個"位"。這個方陣實際上組成一個有94個區(編號由01到94),每個區有94個位(編號由01到94)的漢字字元集。每兩個位元組分別用兩位十進制編碼,前位元組的編碼稱為區碼,後位元組的編碼稱為位碼,此即區位碼,其中,高兩位為區號,低兩位為位號。這樣區位碼可以唯一地確定某一漢字或字元;反之,任何一個漢字或符號都對應一個唯一的區位碼,沒有重碼。如「保」字在二維代碼表中處於17區第3位,區位碼即為「1703 」。
國標碼並不等於區位碼,它是由區位碼稍作轉換得到,其轉換方法為:先將十進制區碼和位碼轉換為十六進制的區碼和位碼,;這樣就得了一個與國標碼有一個相對位置差的代碼,再將這個代碼的第一個位元組和第二個位元組分別加上20H,就得到國標碼。如:「保」�字的國標碼為3123H,它是經過下面的轉換得到的:1703D->1103H->+20H->3123H。 (20h就是十進制的32,上文提到了「但為了與標准ASCII碼兼容,每個位元組中都不能再用32個控制功能碼和碼值為32的空格以及127的操作碼」)
國標碼是漢字信息交換的標准編碼,但因其前後位元組的最高位為0,與ASCII碼發生沖突,如「保」�字,國標碼為31H和23H,而西文字元「1」和「#」的SCII也為31H和23H,現假如內存中有兩個位元組為31H和23H,;這到底是一個漢字�,還是兩個西文字元「1」;和「#」?於是就出現了二義性,顯然,國標碼是不可能在計算機內部直接採用的,於是,;漢字的機內碼採用變形國標碼,其變換方法為:將國標碼的每個位元組都加上128,即將兩個位元組的最高位由0改1,其餘7位不變,如:由上面我們知道,「保」字的國標碼為3123H,前位元組為00110001B,後位元組為00100011B,高位改1為10110001B和10100011B 即為B1A3H,因此,�字的機內碼就是B1A3H;。
顯然,漢字機內碼的每個位元組都大於128,這就解決了與西文字元的ASCII碼沖突的問題。
如上所述,漢字輸入碼、區位碼、;國標碼與機內碼都是漢字的編碼形式,它們之間有著千絲萬縷的聯系,但其間的區別也是不容忽視的。
『貳』 機內碼、國際碼、區位碼之間如何換算
機內碼、國際碼是十六進制的,區位碼是十進制的.
一般換算全部用十六進制,不過特別注意:區位碼從十進制轉換為十六進制是兩位兩位分別轉換的.
國際碼=區位碼(十六進制)+2020H
機內碼=國際碼+8080H
如:某漢字的區位碼是2534.則25D=19H,34D=22H
國際碼=1922H+2020H=3952H
機內碼=3952H+8080H=B9D2H
『叄』 機內碼、國際碼、區位碼之間如何換算
國標碼:是指我國1980年公布的「信息交換漢字編碼字元集」,代號為「GB2312-80」。由連續的兩個位元組組成。
機內碼:在計算機內表示漢字的代碼是漢字機內碼,漢字機內碼由國標碼演化而來,把表示國標碼的兩個位元組(每個位元組可轉化為8位二進制數,不足8位前面補零)的最高位分別加「1」,就變成漢字機內碼。
技巧演算法:
(1)
區位碼先轉換成十六進制數表示
(2)(區位碼的十六進製表示)+2020H=國標碼;
(3)
國標碼+8080H=機內碼
;其實8080H=(1000000010000000)^2
例1:已知漢字「大」的國標碼為3473H,其機內碼。
答:(34)H=
(00110100)^2,
在高位(最左邊)分別加「1」後變為(10110100)^2=(B4)H;
(73)H=(01110011)^2,在高位(最左邊)分別加「1」後變為(11110011)^2=(F3)H;
答案:B4F3H。
或3473H+8080H=B4F3H,得到機內碼為B4F3H。
例2:區位碼2083求國標碼。
答:1、區號為20,位號為83
。
2、將區位號2083轉換為十六進製表示為1453H
;(20)^10=(14)H;(83)^10=(53)H;
3、1453H+2020H=3473H,得到國標碼3473H
。
『肆』 什麼是區內碼,機內碼,國標碼
1.區位碼(十進制)轉換成區位碼(十六進制)。
這里要把前兩個位換成十六進制,然後後兩位換成十六進制。
例如,某漢字的區位碼是5448,這樣把54轉換為16進制數36;再把位碼48轉換為16進制數為30,得到十六進制數3630。
2.國際碼=區位碼(十六進制)+2020H
例如,3630H+2020H=5050H
得到國標碼GB2312
3.漢字機內碼=國際碼+8080H
機內碼就是5050H+8080H=D0D0H
ASCII碼是八位的一個位元組
最高位為0,這樣可以區分和漢字編碼的區別。
Unicode是歐洲提出來的編碼。
如果大段的數據包中的位元組是大於A0A0H的雙位元組信息,可以初步認定為漢字內容編碼。
說明一下,漢字你在數據包中只能獲得機內碼。區位碼是輸入碼,不在計算機當中的,呵呵
『伍』 機內碼和國標碼什麼意思,怎麼轉換
機內碼是漢字在計算機內部使用的編碼,國標碼是在中國大陸使用最廣泛的漢字編碼字元集。其轉換規則是:機內碼是將國標碼的每個位元組都加上128,即將兩個位元組的最高位由0改1。
在漢字計算機編碼標准中,最大的漢字編碼是台灣的標准CNS11643,(4.0)共收錄可考證之繁簡、日、韓語漢字共76,067個,但並不普及,只有在戶政系統等少數環境使用。台港民間通用的大五碼收錄繁體漢字13053個。
GB18030是中華人民共和國現時最新的內碼字集,GBK收錄簡體、繁體及日語、韓語漢字20912個,而早期的GB2312收錄簡體漢字6763個。而Unicode的中日韓統一表意文字基本字集則收錄漢字20902個,另有兩個擴展區,總數亦高達七萬多字。
(5)什麼是國際碼什麼是機內碼擴展閱讀:
國標碼(「國標」是中華人民共和國國家標準的簡稱)在中國大陸使用。GB2312收錄6763個漢字,GBK收錄20912個漢字,最新的GB18030收錄27533個漢字。BIG5碼。收錄13053個漢字。在台灣和香港使用的一位元組或兩位元組編碼。
Unicode並不被中國政府很好的接受。中國政府要求在中國大陸出售的軟體必須支持GB18030編碼。在國際通信化和軟體設計領域,CJK編碼收集了漢語、日語、韓語中的漢字集。
『陸』 什麼是國標碼機內碼/機外碼字型碼
計算機中漢字的表示也是用二進制編碼,同樣是人為編碼的。根據應用目的的不
同,漢字編碼分為外碼、交換碼、機內碼和字形碼。1.外碼(輸入碼)�
外碼也叫輸入碼,是用來將漢字輸入到計算機中的一組鍵盤符號。英文字母只有26個,可以把所有的字元都放到鍵盤上,而使用這種辦法把所有的漢字都放到鍵盤上,是不可能的。所以漢字系統需要有自己的輸入碼體系,使漢字與鍵盤能建立對應關系。目前常用的輸入碼有拼音碼、五筆字型碼、自然碼、表形碼、認知碼、區位碼和電報碼等,一種好的編碼應有編碼規則簡單、易學好記、操作方便、重碼率低、輸入速度快等優點,每個人可根據自己的需要進行選擇。在後面的章節中,重點介紹智能全拼輸入法和五筆字型輸入法。�
2.交換碼�
計算機內部處理的信息,都是用二進制代碼表示的,漢字也不例外。而二進制代碼使用起來是不方便的,於是需要採用信息交換碼。我國標准總局1981年制定了中華人民共和國國家標准GB2312--80《信息交換用漢字編碼字元集--基本集》,即國標碼。國標碼字元集中收集了常用漢字和圖形符號7445個,其中圖形符號682個,漢字6763個,按照漢字的使用頻度分為兩級,第一級為常用漢字3755個,第二級為次常用漢字3008個。為了避開ASCII字元中的不可列印字元0100001--1111110(十六進制為21-7E),國標碼表示漢字的范圍為2121--7E7E(十六進制)。�
區位碼是國標碼的另一種表現形式,把國標GB2312--80中的漢字、圖形符號組成一個94×94的方陣,分為94個「區」,每區包含94個「位」,其中「區」的序號由01至94,「位」的序號也是從01至94。94個區中位置總數=94×94=8836個,其中7445個漢字和圖形字元中的每一個佔一個位置後,還剩下1391個空位,這1391個位置空下來保留備用。所以給定「區」值和「位」值,用四位數字就可以確定一個漢字或圖形符號,其中前兩位是「區」號。後兩位是「位」號,如「普」字的區位碼是「3853」,「通」字的區位碼是「4508」。區位碼編碼的最大優點是沒有重碼,但由於編碼缺少規律,很難記憶。使用區位碼的主要目的是為了輸入一些中文符號或無法用其它輸入法輸入的漢字、製表符以及日語字母、俄語字母、希臘字母等。94個區可以分為五組:�
01--15區:是各種圖形符號、製表符和一些主要國家的語言字母,其中01--09區為標准符號區,共有682個常用符號。�
10--15區:為自定義符號區,可留作用戶自己定義。�
16--55區:是一級漢字區,共有3755個常用漢字,以拼音為序排列。�
56--87區:是二級漢字區,共有3008個次常用漢字,以部首為序排列。�
88--94區:自定義漢字區,可留作用戶自己定義。�
3.機內碼�
根據國標碼的規定,每一個漢字都有了確定的二進制代碼,但是這個代碼在計算機內部處理時會與ASCII碼發生沖突,為解決這個問題,把國標碼的每一個位元組的首位上加1。由於ASCII碼只用7位,所以,這個首位上的「1」就可以作為識別漢字代碼的標志,計算機在處理到首位是「1」的代碼時把它理解為是漢字的信息,在處理到首位是「0」的代碼時把它理解為是ASCII碼。經過這樣處理後的國標碼就是機內碼。�
漢字的機內碼、國際碼和區位碼之間的關系是:�
(漢字機內碼前兩位)16=(國標碼前兩位)16+80H=(區碼)16+A0H�
(漢字機內碼後兩位)16=(國標碼後兩位)16+80H=(區碼)16+A0H�
把用十六進製表示的機內碼的前兩位和機內碼的後兩位連起來,就得到完整的用十六進製表示的機內碼。在微機內部漢字代碼都用機內碼,在磁碟上記錄漢字代碼也使用機內碼。�
4.漢字的字形碼�
字形碼是漢字的輸出碼,輸出漢字時都採用圖形方式,無論漢字的筆畫多少,每個漢字都可以寫在同樣大小的方塊中。為了能准確地表達漢字的字形,對於每一個漢字都有相應的字形碼,目前大多數漢字系統中都是以點陣的方式來存儲和輸出漢字的字形。所謂點陣就是將字元(包括漢字圖形)看成一個矩形框內一些橫豎排列的點的集合,有筆畫的位置用黑點表示,沒筆畫的位置用白點表示。在計算機中用一組二進制數表示點陣,用0表示白點,用1表示黑點。一般的漢字系統中漢字字形點陣有16×16、24×24、48×48幾種,點陣越大對每個漢字的修飾作用就越強,列印質量也就越高。通常用16×16點陣來顯示漢字,每一行上的16個點需用兩個位元組表示,一個16×16點陣的漢字字形碼需要2×16=32個位元組表示,這32個位元組中的信息是漢字的數字化信息,即漢字字模。下面以「口」為例看看16×16點陣字形是怎樣存放的(如圖3--1)。�
如果我們把這個「口」字圖形的「.」處用「0」代替,就可以很形象地得到「口」的字形碼:0000H 0004H 3FFAH 2004H 2004H 2004H 2004H 2004H 2004H 2004H 2004H 2004H 3FFAH 2004H 0000H 0000H。計算機要輸出「口」時,先找到顯示字型檔的首址,根據「口」的機內碼經過計算,再去找到「口」的字形碼,然後根據字形碼(要用二進制)通過字元發生器的控制在屏幕上進行依次掃描,其中二進制代碼中是「0」的地方空掃,是「1」的地方掃出亮點,於是就可以得到「口」的字元圖形。�
字模按構成字模的字體和點陣可分為宋體字模、楷體字模等等,這些是基本字模。基本字模經過放大、縮小、反向、旋轉等交換可以得到美術字體,如長體、扁體、粗體、細體等等。漢字還可以分為簡體和繁體兩種,ASCII字元也可分為半形字元和全形字元。漢字字模按國標碼的順序排列,以二進制文件形式存放在存儲器中,構成漢字字模字型檔,亦稱為漢字字形庫,稱漢字型檔。����
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 . . . . . . . . . . . . . . . .
1 . . . . . . . . . . . . . 1 . .
2 . . 1 1 1 1 1 1 1 1 1 1 1 1 . .
3 . . 1 . . . . . . . . . . 1 . .
4 . . 1 . . . . . . . . . . 1 . .
5 . . 1 . . . . . . . . . . 1 . .
6 . . 1 . . . . . . . . . . 1 . .
7 . . 1 . . . . . . . . . . 1 . .
0 . . 1 . . . . . . . . . . 1 . .
1 . . 1 . . . . . . . . . . 1 . .
2 . . 1 . . . . . . . . . . 1 . .
3 . . 1 . . . . . . . . . . 1 . .
4 . . 1 1 1 1 1 1 1 1 1 1 1 1 . .
5 . . 1 . . . . . . . . . . 1 . .
6 . . . . . . . . . . . . . . . .
7 . . . . . . . . . . . . . . . .
圖1-6 「口」字的16×16點陣字形圖
參考資料: http://www.sxftc.e.cn/course/school/pc_basic/jiaoan/1.4.htm
『柒』 請問漢字國際碼與機內碼有什麼區別
漢字編碼用兩個位元組進行編碼,每個位元組的最高位為0,這就是國標碼。但如果就這樣放入電腦,就會與一個位元組的ASCII沖突。為此,規定放入機器時每個位元組的最高位都置為1,這就是機內碼。
可以將機內碼看作是國標碼的變形。它們的區別就是每個位元組的最高位是否為1。
『捌』 區位碼、國際碼和機內碼有什麼關系啊
計算機處理漢字信息的前提條件是對每個漢字進行編碼,這些編碼統稱為漢字編碼。漢字信息在系統內傳送的過程就是漢字編碼轉換的過程。漢字交換碼:漢字信息處理系統之間或通信系統之間傳輸信息時,對每一個漢字所規定的統一編碼,我國已指定漢字交換碼的國家標准「信息交換用漢字編碼字元集——基本集」,代號為GB 2312—80,又稱為「國標碼」。國標碼:所有漢字編碼都應該遵循這一標准,漢字機內碼的編碼、漢字字型檔的設計、漢字輸入碼的轉換、輸出設備的漢字地址碼等,都以此標准為基礎。GB 2312—80就是國標碼。該碼規定:一個漢字用兩個位元組表示,每個位元組只有7位,與ASCII碼相似。區位碼:將GB 2312—80的全部字元集組成一個94×94的方陣,每一行稱為一個「區」,編號為0l~94;每一列稱為一個「位」,編號為0l~94,這樣得到GB 2312—80的區點陣圖,用區點陣圖的位置來表示的漢字編碼,稱為區位碼。機內碼:為了避免ASCII碼和國標碼同時使用時產生二義性問題,大部分漢字系統都採用將國標碼每個位元組高位置1作為漢字機內碼。這樣既解決了漢字機內碼與西文機內碼之間的二義性,又使漢字機內碼與國標碼具有極簡單的對應關系。漢字機內碼、國標碼和區位碼三者之間的關系為:區位碼(十進制)的兩個位元組分別轉換為十六進制後加20H得到對應的國標碼;機內碼是漢字交換碼(國標碼)兩個位元組的最高位分別加1,即漢字交換碼(國標碼)的兩個位元組分別加80H得到對應的機內碼;區位碼(十進制)的兩個位元組分別轉換為十六進制後加A0H得到對應的機內碼。