区位码、交换码、机内码
- 格式:doc
- 大小:356.50 KB
- 文档页数:5
区位码,汉字交换码和汉字机内码的概念是什么?它们之间有什么关系?区位码:1981年国家颁布了GB2312汉字标准共有6763个,其中一级3755,二级3008,还有682非汉字字符。
并为每个字符规定了标准编码,便于在计算机内部相互转换。
作为GB2312标准只是定义了一张94×94的二维表。
其中行为区号,列为位号。
这样可以利用区号和位号来找到其中的汉字。
这种编码就是我们所说的区位码。
比如陈(1934) 区号:19 位号:34,为了处理与存储的方便,每个汉字的区号和位号在计算机内部分别用一个字节来表示区位码无法于汉字进行通信,因为ASCII码中规定了OOH-1F作为控制码使用,这样就发生了冲突。
由于计算机不是中国人发明的所以只能听从于国际标准ISO2022规定区号和位号都加上32(20H),这样就防止冲突。
经过加上32以后的编码称为国际交换码陈-区号:19+32= 5100010011+00100000=00110011位号:34+32=6600100010+00100000=01000010即5166 16进制3342由于文本中通常混合使用汉字和西文字符,汉字信息如果不予以特别标识,就会与单字节的ASCII码混淆。
此问题的解决方法之一是将一个汉字看成是两个扩展ASCII码,使表示GB2312汉字的两个字节的最高位都为1。
这种高位为1的双字节汉字编码即为GB2312汉字的机内码,简称为“内码”.00110011最高位变为1则从33变为B301000010最高位变为1则从42变为C2这样一来,陈的机内码应该为B3C2这里要说明的是不管你是采用什么样的输入法输入汉字,其汉字的机内码都是相同的。
如果要从一个汉字的机内码转换为区位码,其实就是相反的方向进行运算.。
汉字区位码、国标码(交换码)和机内码转换方法一般换算全部用十六进制。
机内码、国际码是十六进制的,区位码是十进制的。
具体换算步骤:(H表示十六进制,D表示十进制)1.将四位区号分为两部分,两位数为一组。
2.把这两个数字转换成十六进制,用公式计算。
国际码=区位码(十六进制)+2020H机内码=国际码+8080H例如:某汉字的区位码是2534。
则25D=19H,34D=22H则国际码=1922H+2020H=3952H,机内码=3952H+8080H=B9D2H 1、转换关系:【设转为十六进制的区位码为区位码I;转换原因在第3点】•区位码I=区位码的区码(前两位)和位码(后两位)分别转十六进制再按原顺序组合起来•国标码•=区位码I+2020H 【2020H不拆分】•机内码=国标码+8080H【8080H不拆分】•机内码=区位码I+A0A0H【A0A0H不拆分】注意:区位码是十进制表示,由区(行)和位(列)组成一个二维结构,所以转换过程需要将区位码拆分后分别转十六进制。
2、例子:•将“江”的区位码2913转为机内码【末尾D代表十进制,末尾H代表十六进制】:1、2913D中区和位分别转十六进制:29D=1DH,13D=DH2、国标码=区位码+2020H=1D0DH+2020H=3D2DH3、机内码=国标码+8080H=3D2DH+8080H=BDADHor 机内码=区位码+A0A0H=1D0DH+A0A0H=BDADH3、扩展【扩展内容主要与为什么要加2020H或8080H这些有关】:区位码:每个汉字都有唯一的定位码,定位码一个字节,定位码一个字节,总共占用两个字节。
国标码:。
共7445个字符,其中一级3755个,二级3008个,图形符号682个【一级汉字按拼音排序,二级用部首排序】,全部国家标准代码被放置在94个区域中,每个区域中有94个矩阵。
每个字节占用8位,主要使用7位编码(高位为0)。
- 为啥要将区位码转为国标码?汉字编码之前,已经有了标准的ASCII,开发者只沿用了ASCII中32个控制字符其他ASCII被覆盖。
1.查一下国标码、区位码、汉字内码一样么?有什么区别?答:国家标准汉字交换码(国标码):我国制定了“中华人民共和国国家标准信息交换汉字编码”,标准代号为GB2312—80,这种编码又称为国标码。
在国标码的字符集中共收录了一级汉字3755个,二级汉字3008 个,图形符号682个,三项字符总计7445个。
国标码是指1980年中国制定的用于不同的具有汉字处理功能的计算机系统间交换汉字信息时使用的编码。
国际码是二字节码, 用两个七位二进制数编码表示一个汉字。
目前国标码收入6763个汉字, 其中一级汉字(最常用)3755个, 二级汉字3008个, 另外还包括682个西文字符、图符。
一级汉字为常用字,按拼音顺序排列,二级汉字为次常用字,按部首排列。
国标码的范围是2121H—7E7EH。
区位码:国标码是一个四位十六进制数,区位码是一个四位的十进制数,每个国标码或区位码都对应着一个唯一的汉字或符号,但因为十六进制数我们很少用到,所以大家常用的是区位码,它的前两位叫做区码,后两位叫做位码在国标GB2312—80中规定,所有的国标汉字及符号分配在一个94行、94列的方阵中,方阵的每一行称为一个“区”,编号为01区到94区,每一列称为一个“位”,编号为01位到94位,方阵中的每一个汉字和符号所在的区号和位号组合在一起形成的四个阿拉伯数字就是它们的“区位码”。
区位码的前两位是它的区号,后两位是它的位号。
用区位码就可以唯一地确定一个汉字或符号,反过来说,任何一个汉字或符号也都对应着一个唯一的区位码。
汉字“母”字的区位码是3624,表明它在方阵的36区24位,问号“?”的区位码为0331,则它在03区3l位。
所有的汉字和符号所在的区分为以下四个组:(1)01区到15区。
图形符号区,其中01区到09区为标准符号区,10区到15区为自定义符号区。
01区到09区的具体内容如下;1)01区。
一般符号202个,如间隔符、标点、运算符、单位符号及制表符;2)02区。
汉字的机内码是指在计算机中表示一个汉字的编码。
机内码与区位码稍有区别。
汉字区位码的区码和位码的取值均在1~94之间,如直接用区位码作为机内码,就会与基本ASCII码混淆。
为了避免机内码与基本ASCII码的冲突,需要避开基本ASCII码中的控制码(00H~1FH),还需与基本ASCII码中的字符相区别。
为了实现这两点,可以先在区码和位码分别加上20H,在此基础上再加80H(此处“H”表示前两位数字为十六进制数)。
经过这些处理,用机内码表示一个汉字需要占两个字节,分别称为高位字节和低位字节,这两位字节的机内码按如下规则表示:高位字节=区码+20H+80H(或区码+A0H)低位字节=位码+20H+80H(或位码+AOH)由于汉字的区码与位码的取值范围的十六进制数均为01H~5EH(即十进制的01~94),所以汉字的高位字节与低位字节的取值范围则为A1H~FEH(即十进制的161~254)。
例如,汉字“啊”的区位码为1601,区码和位码分别用十六进制表示即为1001H,它的机内码的高位字节为B0H,低位字节为A1H,机内码就是B0A1H。
2603 = 1A03H 区位码+ A0A0H= BAA3H 机内码[本帖最后由rossini23 于2006-10-11 13:28 编辑]计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字编码。
汉字信息在系统内传送的过程就是汉字编码转换的过程。
汉字交换码:汉字信息处理系统之间或通信系统之间传输信息时,对每一个汉字所规定的统一编码,我国已指定汉字交换码的国家标准“信息交换用汉字编码字符集——基本集”,代号为GB 2312—80,又称为“国标码”。
国标码:所有汉字编码都应该遵循这一标准,汉字机内码的编码、汉字字库的设计、汉字输入码的转换、输出设备的汉字地址码等,都以此标准为基础。
GB 2312—80就是国标码。
该码规定:一个汉字用两个字节表示,每个字节只有7位,与ASCII码相似。
考点三文字编码基础再现1、ASCII码ASCII码全称为“美国国家信息交换标准代码”,通常用来对英文字符进行编码。
该编码使用7位二进制数,共可以表示128个字符。
一个ASCII码存储时占用1字节,存储ASCII时在最高位加“0”。
ASCII码中的数字、字母按顺序依次排列。
2、汉字编码汉字在计算机内采用二进制编码,我国最早采用的汉字编码是GB2312。
每个汉字用2个字节进行编码,每个字节的最高位用“1”填充。
汉字的输入码(外码):是利用汉字相关特征对指定汉字进行编制的输入代码,包括:音码、形码、音形结合码、自然码、流水码等。
汉字的输出码(字形码):用来存储汉字的字体形状汉字的交换码:计算机系统间交换汉字通常采用GB2312标准。
处理码又称内码,用UltraEdit或WinHex工具软件观察内码时,ASCII码只占1个字节,汉字占2个字节。
典例3.(2008.10月高考)小王用“UltraEdit”软件观察“春眠不觉晓’,这几个字.显示的十六进制内码如第4题图(见附图页)所示,从中可以看出字符”眠”的内码是A.C3DFH B.B4BAH C.B4H D.C3H解析:在计算机内部一个汉字占两个字节,一个ASCII占一个字节。
选A。
即时训练31、(考试说明)用WinHex软件观察“IT行业”四个字符,显示的十六进制内码如图所示,则字符“T”的内码用二进制数表示应该是第5题图(A)(10011000)2(B)(1010100)2(C)(110110)2(D)(1101)2解析:在计算机内部一个汉字占两个字节,一个ASCII占一个字节。
字符T对应十六进制54,再转化为二进制为1010100。
故选B。
2.(2008年10月浙江省高考)制订ASCII码、汉字国标码、商品条形码等标准化编码主要是为了信息表达的A.自由化 B.规范化 C.形象化 D.通俗化解析:考查信息标准化编码的意义,故选B。
3.(2009年3月浙江省高考)汉字点阵是一种用黑白两色点阵来表示汉字字形的编码,一个16×16点阵字模的存储容量为A.1字节B.16字节C.32字节D.64字节解析:一个点阵对应二进制1位(比特,bit或b),16×16÷8=32字节。
区位码、国标码、机内码⼀、区位码1980年,为了使每⼀个有⼀个全国统⼀的,我国颁布了第⼀个汉字编码的: GB2312-80《信息交换⽤汉字编码》基本集,这个字符集是我国中⽂信息处理技术的发展基础,也是⽬前国内所有汉字系统的统⼀标准。
是⼀个四位⼗六进制数,区位码是⼀个四位的⼗进制数,每个国标码或区位码都对应着⼀个唯⼀的汉字或符号,但因为⼗六进制数我们很少⽤到,所以⼤家常⽤的是区位码,它的前两位叫做区码,后两位叫做位码。
汉字库分布情况如下:⼀级汉字 16-55区⼆级汉字 56-87区三级汉字 1-9区空闲未⽤ 10-15区 通常,在DOS下的各中,同时按Alt键和F1键即可调⽤区位码输⼊⽅法。
⽽在Windows中常⽤Ctrl+空格键和Ctrl+Shift键调出区位码。
如“2901”代表“健”字,“4582”代表“万”字,“8150”代表“楮”字,这些都是汉字,⽤区位码还可以很轻松地输⼊特殊符号,⽐如,“0189”代表“※”(符号),“0528”代表“ゼ”(⽇本语),“0711”代表“Й”(俄⽂),“0949”代表“┭”(制表符)。
在区位码中,01-09区为特殊字符,10-55区为⼀级汉字(3755个最常⽤的汉字,按拼⾳字母的次序排列),56-87区为⼆级汉字(3008个汉字,按部⾸次序排列),在区位码汉字输⼊⽅法中,汉字编码⽆重码,在熟练掌握汉字的区位码后,录⼊汉字的速度是很快的,但若想记忆住全部区位码是相当困难的,常使⽤于录⼊特殊符号,如制表符、希腊字母等,这⾥简单介绍⼏个区。
区位码 - 部分国际区位编码 区号:01 【各类符号】0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 190100 、。
· ¯ ˇ ¨ 〃々 - ~‖ … ' ' " " 〔〕0120 〈〉《》「」『』〖〗【】 ± × ÷ ∶∧∨ ∑ ∏0140 ∪∩∈∷ √ ⊥∥∠⌒⊙∫∮≡≌≈∽∝ ≠ ≮≯0160 ≤ ≥ ∞ ∵∴♂♀ ° ′″℃$ ¤ ¢£ ‰ § № ☆★0180 ○●◎◇◆□■△▲※→←↑↓〓 区号:02 【各类数字】0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 190200 ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ⒈⒉⒊0220 ⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶0240 ⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③0260 ④⑤⑥⑦⑧⑨⑩⼀⼆三四五六七⼋九⼗0280 ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ 区号:03 【符号、字母】0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 190300 !"#¥%&'()*+,-./01230320 456789:;<=>?@ABCDEFG0340 HIJKLMNOPQRSTUVWXYZ[0360 \]^_`abcdefghijklmno0380 pqrstuvwxyz{|} ̄ 区号:06 【罗马字母】0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 190600 ΑΒΓ Δ ΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ0620ΥΦΧΨΩαβγδεζη0640θικλ µ νξοπρστυφχψω0660 0680 区号:08 【汉语拼⾳】0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 190800 ā á ǎ à ē é ě è ī í ǐ ì ō ó ǒ ò ū ú ǔ0820 ù ǖǘǚǜ ü ê ㄅㄆㄇ0840 ㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛ0860 ㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ0880 区号:09 【制表字符】0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 190900 ─━│┃┄┅┆┈┉┉┊┋┌┍┎┏0920 ┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣0940 ┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷0960 ┸┹┺┻┼┽┾┿╀╁┃╃╄╅╆╇╈╉╊╋0980⼆、机外码机外码⽬前常⽤的机外码主要有区位码,国标码,⾸尾码,拼⾳码,五笔字型等三、国标码中国国家标准汉字信息交换码⼆、区位码、国标码、机内码汉字机内码,⼜称“汉字ASCII码”,简称“内码”,指计算机内部存储,处理加⼯和传输汉字时所⽤的由0和1符号组成的代码。
国标码、机内码、区位码国家标准代码:国标码国家标准代码,简称国标码。
是中华人民共和国的中文常用汉字编码集,亦为新加坡采用。
国家标准强制标准冠以“GB”,推荐标准冠以“GB/T”,国标码是一个四位十六进制数。
现时中华人民共和国官方强制使用GB 18030标准,但较旧的计算机仍然使用GB 2312。
“GB”在计算机领域中常常表示GB 2312-80或GB 18030-2005。
两者是汉语编码系统的标准,在中国大陆和新加坡用于简体中文。
机内码:国标码是不可能在计算机内部直接采用的,于是,;汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变,如:由上面我们知道,“保”字的国标码为3123H,前字节为00110001B,后字节为00100011B,高位改1为10110001B和10100011B 即为B1A3H,因此,“保”字的机内码就是B1A3H。
区位码1980年,为了使每一个汉字有一个全国统一的代码,我国颁布了第一个汉字编码的国家标准:GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。
区位码是一个四位的十进制数,每个区位码都对应着一个唯一的汉字或符号,但因为十六进制数我们很少用到,所以大家常用的是区位码,它的前两位叫做区码,后两位叫做位码。
ASCⅡ目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII 码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。
适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。
简介因为1位二进制数可以表示(2^1)2种状态:0、1;而2位二进制数可以表示(2^2)4种状态:00、01、10、11;依次类推,7位二进制数可以表示(2^7)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。
汉字的编码1.汉字信息的交换码汉字信息交换码简称交换码,也叫国标码。
规定了7 445个字符编码,其中有682个非汉字图形符和6763个汉字的代码。
有一级常用字3 755个,二级常用字3 008个。
两个字节存储一个国标码。
国标码的编码范围是2121 H一7E7EH。
区位码和国标码之间的转换方法是将一个汉字的十进制区号和十进制位号分别转换成十六进制数,然后再分别加上20H,就成为此汉字的国标码:汉字国标码=区号(十六进制数)+20H位号(十六进制数)+ 20H而得到汉字的国标码之后,我们就可以使用以下公式计算汉字的机内码:汉字机内码=汉字国标码+8080H2.汉字偷入码汉字输人码也叫外码,都是由键盘上的字符和数字组成的。
目前流行的编码方案有全拼输人法、双拼输入法、自然码输人法和五笔输人法等。
3.汉字内码汉字内码是在计算机内部对汉字进行存储、处理的汉字代码,它应能满足存储、处理和传输的要求。
一个汉字输人计算机后就转换为内码。
内码需要两个字节存储,每个字节以最高位置‘1”作为内码的标识。
4.汉字字型码汉字字型码也叫字模或汉字输出码。
在计算机中,8个二进制位组成一个字节,它是度量空间的基本单可见一个16 x 16点阵的字型码需要16 x 16/8=32字节存储空间。
汉字字型通常分为通用型和精密型两类。
5.汉字地址码汉字地址码是指汉字库中存储汉字字型信息的逻辑地址码。
它与汉字内码有着简单的对应关系,以简化内码到地址码的转换。
6.各种汉字代码之间的关系汉字的输人、处理和输出的过程,实际上是汉字的各种代码之间的转换过程。
如图1- 1表示了这些汉字代码在汉字信息处理系统中的位置及它们之间的关系.。
汉字的国标码机内码区位码区别文字编码系列--汉字的国标码,机内码,区位码(gbcode查出的是区位码)1.国标码:“国家标准信息交换用汉字编码”(GB2312-80标准),简称国标码。
国标码是二字节码, 用两个七位二进制数编码表示一个汉字。
2.区位码:为了使每一个汉字有一个全国统一的代码,区位码是国家规定的94*94的一个方阵,其中每行叫做一个区,每列叫做一个位,组合起来就组成了区位码,我们可以在相关网站查询某个汉字的区位码,例如汉字“我”的区位码是46 50 ,标识“我”在46区,50位。
3.机内码:机内码是在计算机中存储的汉子编码。
三者之间的关系。
国标码=16进制的区位码+2020H机内码=国标码+8080H例如“我”的的区位码是46 50 这是10进制的转化为16进制:2E32H(46==2E,50==32)所以“我”的国标码:2E32H+2020H=4E52H所以“我”机内码:4E52H+8080H=CED2(其实就是把二进制国标码的最高位置1,注意看E和2都没有变化)机内码转化为2进制就可以再计算机中存储,这里面转化为10进制可以输出。
CED2的10进制为:52946,这里我们打开记事本,按住alt建,输入52946即可以看见“我”,因为52946是“我”的机内码的10进制。
这里面有两个问题:1.为什么不用区位码直接表示国标码,为要加上2020H?2.机内码为什么要在国标码的基础上加上8080H,而不是直接只用国标码作为机内码?这里我先解决第二个问题,国标码就是由2个ASCII码组成,为什么呢(这里简单介绍一下,后面会详细说明)?因为在英文中只有26个字母,所以用一个字节就可以表示了,用一个字节的话可以表示2^8个符号,就是256个符号,绰绰有余啊,于是外国人制订了规范,规定0-127(00000000-01111111)个字符他们用了,用来表示英文字符和一些符号,就是ASCII码,但是汉字有很多,256个根本就不够,于是国家就用两个ASCII来表示一个汉字,就是2个字节标识一个汉字,例如“保”的区位码为:1703,所以国标码为:1703的10进制+2020H=3123H,然而:31H 和23H在ASCII中式有值的,31H在ASCII中表示数字1,23H表示的是“#”(这个可以在网上查询),那么如果我以国标码作为机内码的话,如果内存中有两个字节为31H和23H,那么到底是表示汉字“保”呢?还是字符1#呢?这样就有了歧义,但是解决办法就有了,0-127不是被英文字符占了吗?那么我就用127之后的来表示不就可以了吗?于是我把汉字的两个字节每个字节机上128(16进制就是80H),于是问题解决了,汉字“保”的机内码变为:3123H+8080H=B2A3H(10进制就是45475),打开记事本按住alt+45475看看是不是“保”,这样就不会和英文的ASCII冲突了。
GB2312汉字区位码、交换码和机内码转换方法
1981年我国颁布了GB2312字符集。
该字符集收录了6763个常用汉字和682个非汉字字符, GB2312字符集构成一个94行、94列的二维表,行号称为区号,列号称为位号,每一个汉字或符号在码表中的位置用它所在的区号和位号来表示。
例如,“学”字的区号为
49,位号为07,“学”字的区位码
...即为4907
用二进制数表示为:0011000100000111B
用十六进制数表示为:3107H
汉字的区位码习惯采用十进制
区位码无法用于汉字通信,因为它可能与通信使用的控制码(00H~1FH)(即0~31)发生冲突。
ISO2022规定每个汉字的区号和位号必须分别加上32(即二进制数00100000B十六进制数20H),经
过这样的处理而得的代码称为国标交换码
...,因
...或国标码
.....,简称交换码
此,“学”字的国标交换码为:
用十进制来表示为:8139
49 07
+ 32 + 32
8139
用二进制来表示为:0101000100100111B
00110001 00000111B
+ 00100000 + 00100000B
01010001 00100111B
用十六进制数表示为5127H。
31 07H
+ 20 + 20H
5127H
汉字的交换码(国标码)习惯采用十六进制
由于文本中通常混合使用汉字和西文字符,汉字信息如果不予以特别标识,就会与单字节的ASCII码混淆。
如“学”的交换码与“Q’”的ASCII码相同。
此问题的解决方法是将一个汉字看成是两个扩展ASCII码,使表示GB2312汉字的两个字节的最高位都为1。
这种高位为1的双字节汉字编码即为GB2312汉字的机内码,简称为内码。
因此,“学”字的机内码为:11010001 10100111
也就是两个字节各加10000000B(80H)
用16进制表示即为D1A7H。
区位码、国标码、机内码的转换
1.机内码与区位码
机内码高位字节=(区号)H+A0H
机内码低位字节=(位号)H+A0H
2.国标码与区位码
国标码高位字节=(区号)H+20H
国标码低位字节=(位号)H+20H
3.区位码用两个10进制数表示,另外两种码用两个十六进制数表示.
4."德"的区位码为2134,下面举例来看如何转成另外两种码:
a.机内码
高位字节=(21)(十进制)+A0H(十六进制)=15H+A0H=B5H
低位字节=(34)(十进制)+A0H(十六进制)=22H+A0H=C2H
所以,机内码为B5C2
b.国标码
高位字节=(21)(十进制)+20H(十六进制)=15H+20H=35H
低位字节=(34)(十进制)+20H(十六进制)=22H+20H=42H
所以,国标码为3542
改为1
改为1
●国标码=区位码+2020H
●机内码=国标码+8080H
●机内码=区位码+A0A0H
区位码、国标码与机内码的转换关系
方法:
(1)区位码先转换成十六进制数表示
(2)(区位码的十六进制表示)+2020H=国标码;
(3)国标码+8080H=机内码
例1:以汉字“大”为例,“大”字的区位码为2083
示例解析:
1、区号为20,位号为83
2、将区位号2083转换为十六进制表示为1453H
3、1453H+2020H=3473H,得到国标码3473H
4、3473H+8080H=B4F3H,得到机内码为B4F3H
例2:比如陈(1934) 区号:19 位号:34,为了处理与存储的方便,每个汉字的区号和位号在计算机内部分别用一个字节来表示
区位码无法于汉字进行通信,因为ASCII码中规定了OOH-1F作为控制码使用,这样就发生了冲突。
由于计算机不是中国人发明的所以只能听从于国际标准ISO2022规定区号和位号都加上32,这样就防止冲突。
经过加上32以后的编码称为国际交换码陈-区号:19+32= 51
00010011+00100000=00110011
位号:34+32=66
00100010+00100000=01000010
即5166 16进制3342
由于文本中通常混合使用汉字和西文字符,汉字信息如果不予以特别标识,就会与单字节的ASCII码混淆。
此问题的解决方法之一是将一个汉字看成是两个扩展ASCII码,使表示GB2312汉字的两个字节的最高位都为1。
这种高位为1的双字节汉字编码即为GB2312汉字的机内码,简称为“内码”. 00110011最高位变为1则从33变为B3
01000010最高位变为1则从42变为C2
这样一来,陈的机内码应该为B3C2。