溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

漢字區(qū)位碼、國標(biāo)碼(交換碼)和機(jī)內(nèi)碼轉(zhuǎn)換方法

發(fā)布時(shí)間:2020-08-07 08:35:10 來源:網(wǎng)絡(luò) 閱讀:11151 作者:cdlaowang 欄目:網(wǎng)絡(luò)安全


一、區(qū)位碼

為了適應(yīng)計(jì)算機(jī)處理漢字信息的需要,1981年我國頒布了GB2312國家標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)選出6763個(gè)常用漢字(其中,一級常用漢字3755個(gè),二級漢字3008個(gè))和682個(gè)非漢字字符,并為每個(gè)字符規(guī)定了標(biāo)準(zhǔn)代碼,以便在不同的計(jì)算機(jī)系統(tǒng)之間進(jìn)行漢字文本交換。

GB2312字符集構(gòu)成一個(gè)94行、94列的二維表,行號稱為區(qū)號,列號稱為位號,每一個(gè)漢字或符號在碼表中的位置用它所在的區(qū)號和位號來表示。

為了處理與存儲的方便,每個(gè)漢字的區(qū)號和位號在計(jì)算機(jī)內(nèi)部分別用一個(gè)字節(jié)來表示。例如,"學(xué)"字的區(qū)號為49,位號為07,它的區(qū)位碼即為4907,用2個(gè)字節(jié)的二進(jìn)制數(shù)表示為:

00110001 00000111

漢字區(qū)位碼、國標(biāo)碼(交換碼)和機(jī)內(nèi)碼轉(zhuǎn)換方法

二、國標(biāo)交換碼

區(qū)位碼無法用于漢字通信,因?yàn)樗赡芘c通信使用的控制碼(00H~1FH)(即0~31)發(fā)生沖突。(因?yàn)锳SCII碼編碼中分控制信號編碼和有型字符編碼,前32個(gè)是控制碼,如回車、換行、退格等,為避開這些控制碼,國標(biāo)碼規(guī)定在區(qū)位碼的基礎(chǔ)上加20H,即32的16進(jìn)制數(shù))ISO2022規(guī)定每個(gè)漢字的區(qū)號和位號必須分別加上32(即二進(jìn)制數(shù)00100000),經(jīng)過這樣的處理而得的代碼稱為國標(biāo)交換碼,簡稱交換碼或國際碼,因此,"學(xué)"字的國標(biāo)交換碼計(jì)算為:

00110001 00000111

+00100000 +00100000

--------------------------

01010001 00100111

用十六進(jìn)制數(shù)表示即為5127H。

三、機(jī)內(nèi)碼

由于文本中通?;旌鲜褂脻h字和西文字符,漢字信息如果不予以特別標(biāo)識,就會與單字節(jié)的ASCII碼混淆。此問題的解決方法之一是將一個(gè)漢字看成是兩個(gè)擴(kuò)展ASCII碼,使表示GB2312漢字的兩個(gè)字節(jié)的最高位都為1。這種高位為1的雙字節(jié)漢字編碼即為GB2312漢字的機(jī)內(nèi)碼,簡稱為內(nèi)碼。

因此,"學(xué)"字的機(jī)內(nèi)碼為:

11010001 10100111

用16進(jìn)制表示即為D1A7H。

最后要指出的是,漢字的輸入編碼與漢字的機(jī)內(nèi)碼是不同范疇的概念。不管采用什么樣的編碼輸入法(例如拼音、五筆字型等)來輸入一個(gè)漢字,其機(jī)內(nèi)碼都是相同的。

四、總結(jié)

區(qū)位碼、國標(biāo)碼與機(jī)內(nèi)碼的轉(zhuǎn)換關(guān)系

方法:

(1)區(qū)位碼先轉(zhuǎn)換成十六進(jìn)制數(shù)表示

(2)(區(qū)位碼的十六進(jìn)制表示)+2020H=國標(biāo)碼;

(3)國標(biāo)碼+8080H=機(jī)內(nèi)碼

舉例:以漢字"大"為例,"大"字的區(qū)內(nèi)碼為2083

示例解析:

1、區(qū)號為20,位號為83

2、將區(qū)位號2083轉(zhuǎn)換為十六進(jìn)制表示為1453H

3、1453H+2020H=3473H,得到國標(biāo)碼3473H

4、3473H+8080H=B4F3H,得到機(jī)內(nèi)碼為B4F3H

5、1453H+A0A0H=B4F3H,得到機(jī)內(nèi)碼為B4F3H

6、機(jī)內(nèi)碼B4F3H-A0A0H=1453H的區(qū)位碼

大字的區(qū)碼是20H(32區(qū),83位)


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI