1樓:匿名使用者
1、機外碼就是你外界輸入的字元,這個字元輸入後會有一個相對應的區位碼(就是一個94*94的棋盤格格,你輸入的漢子會對應裡面的一個格子,行+列就是我們這裡的區+位),2、區位碼經過換算可以變成國標碼(所以區位碼→國標碼這一步只是表示轉換下而已),3、國標碼再經過換算可以變成機內碼(一般是16進位制數表示)。
下面我再解釋下為什麼要這樣換算來換算去。
漢子國標碼是我們國家搞的,是針對漢子編碼的一個標準。但是在它之前已經有了ascii碼,ascii碼是西文字元。所以兩種標準一起存在於電腦裡面就會有衝突的可能,比如同一個數值一個不小心既可以是國標碼也可以是ascii碼,那樣就亂套了。
所以我們這邊要對國標碼進行一定的換算,使它避開ascii碼的數值範圍,換算以後的國標碼就成了機內碼,這樣它就可以很妥當的跟ascii碼共存了。
2樓:做而論道
早期的漢字編碼,與計算機無關。
比如:電報碼、區位碼、四角號碼。
電報碼,用四位十進位制數,代表一個漢字。
密電碼,就不必說了。
區位碼,**於中文打字機。
中文打字機採用的是「活字印刷術」。
要把一個個「活字」排列的字盤中。
需要打那個漢字,就從字盤中,撿起那個「活字」打在紙上。
字盤中的「活字」,有 94 行(稱為 01~94 區)、94 列(01~94 位)。
每一個漢字,都有一個明確的區號、位號。
組合起來,這就是【區位碼】。
漢字「中」,位於第 54 行 48 列,其區位碼就是 5448。
區位碼中的區號、位號,都是十進位制數。
計算機專家,以區位碼為基礎,制定了【國標碼】。
這些專家很懶,就是把區號位號,都加上 32,就成了【國標碼】。
這個式子,是用二進位制相加的,和,在一個位元組之內。
所以,國標碼,是用兩個位元組,表示一個漢字。
加 32,如果用十六進位制表示,就是加上 20h。
簡言之:用十六進位制的區號位號,加上 20h,就是【國標碼】
漢字「中」的區位碼是 5448。十六進位制是 3630h。
加上 2020h,就得到了「中」的國標碼:5650h。
國標碼制定出來之後,才發現,閉門造車了!
國標碼和 ascii 碼,混淆了,無法共用。
微軟出頭解決了這個問題。
把國標碼的兩個位元組的最高位都加上 1,就成了可以實用的【機內碼】。
在兩個位元組最高位加一,就是加上 8080h。
漢字「中」的區位碼是 5448。
「中」的國標碼是 5650h。
「中」的機內碼是 d6d0h。
總結:
區位碼,這是最基本的編碼。
國標碼 = 區位碼 + 2020h ;這是標準,但是不好用。
機內碼 = 國標碼 + 8080h ;這是實用的編碼。
= 區位碼 + a0a0h 。
3樓:
機內碼(16進位制)-8080(16進位制)=國標碼。
機內碼和國標碼如何轉換?
4樓:太平洋電腦網
區位碼、國標碼與機內碼的轉換關係。
(1)區位碼先轉換成十六進位制數表示。
(2)(區位碼的十六進位制表示)+2020h=國標碼;
(3)國標碼+8080h=機內碼。
舉例:以漢字「大」為例,「大」字的區內碼為2083解:1、區號為20,位號為83
2、將區位號2083轉換為十六進位制表示為1453h3、1453h+2020h=3473h,得到國標碼3473h4、3473h+8080h=b4f3h,得到機內碼為b4f3h小結:字元編碼的兩種表示方式:ascii(字元的表示);gb2312(國標碼,漢字編碼)
機內碼與國際碼之間的換算關係
丿染指流年丶丶 國際碼 區位碼 十六進位制 2020h 機內碼 國際碼 8080h 機內碼 國際碼是十六進位制的,但是區位碼是十進位制的。一般換算全部用十六進位制,值得特別注意 區位碼從十進位制轉換為十六進位制是兩位兩位分別轉換的。漢字的機內碼採用變形國標碼,其變換方法為 將國標碼的每個位元組都加上...
如何將區位碼轉換為機內碼的具體步驟
獅子最愛冥王星 轉換過程細緻複雜,每個環節都要注意,避免出錯。具體方法如下 1 一般換算全部用十六進位制。機內碼 國際碼是十六進位制的,區位碼是十進位制的。其中 h表示十六進位制,d表示十進位制 2 將四位數的區位碼分為兩部分,兩位數一組。將這兩個兩位數換算為十六進位制,運用公式進行計算。3 國際碼...
某漢字的區位碼是5448,它的機內碼是D6D0H,怎么算的
解析 國際碼 區位碼 2020h,漢字機內碼 國際碼 8080h。1.5448,區號54 36h 位號48 30h 2.為了儲存方便,區號位號分別用一個 區位碼是十進位制,要按區和位分別轉換為16進位制。54d 36h,48d 30h,所以區位碼的16進位制是3630h,這步應該知道吧?所以3630...