admin 管理员组文章数量: 887021
2024年1月4日发(作者:int二维数组)
汉字区位码、国标码(交换码)和机内码转换方法
一般换算全部用十六进制。机内码、国际码是十六进制的,区位码是十进制的。具体换算步骤:(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=DH
2、国标码=区位码+2020H=1D0DH+2020H=3D2DH
3、机内码=国标码+8080H=3D2DH+8080H=BDADH
or 机内码=区位码+A0A0H=1D0DH+A0A0H=BDADH
3、扩展【扩展内容主要与为什么要加2020H或8080H这些有关】:
区位码:
每个汉字都有唯一的定位码,定位码一个字节,定位码一个字节,总共占用两个字节。
国标码:
。共7445个字符,其中
一级3755个,二级3008个,图形符号682个【一级汉字按拼音排序,二级用部首排序】,全部
国家标准代码被放置在94个区域中,每个区域中有94个矩阵。每个字节占用8位,主要使用7位编码(高位为0)。
- 为啥要将区位码转为国标码?
汉字编码之前,已经有了标准的ASCII,开发者
只沿用了ASCII中32个控制字符其他ASCII被
覆盖。通过32D=20H的关系,不难发现,加上2020H是为了绕开ASCII的控制字符。
机内码:
- 计算机内存储和处理汉字信息的代码,使用两个字节表示,每个字节最高位为1
- 为啥要将国标码转为机内码?
国标码中除了前面32个控制字符外,其他ASCII内容被覆盖,这使得使用者在使用采用ASCII码
编码的网页或文本内容不兼容,只能看到乱码。为了解决这个问题,我们应该在国标代码的基础上补充
充ASCII的32个控制字符
外的其他字符。已知道标准的ASCII码最高位为0,国标码的最高位也
是0。那么只需要在国标码的基础上将最高位改为1即可。通过=80H的关系,不难发
现,加上8080H是为了在国标码基础上解决ASCII字母等符号的兼容性问题
一、区位码
为了适应计算机处理汉字信息的需要,1981年我国颁布了GB2312国家标准。该标准选出6763个常用汉字(其中,一级常用汉字3755个,二级汉字3008个)和682个非汉字字符,并为每个字符规定了标准代码,以便在不同的计算机系统之间进行汉字文本交换。
GB2312字符集构成一个94行、94列的二维表,行号称为区号,列号称为位号,每一个汉字或符号在码表中的位置用它所在的区号和位号来表示。
为了处理与存储的方便,每个汉字的区号和位号在计算机内部分别用一个字节来表示。例如,"学"字的区号为49,位号为07,它的区位码即为4907,用2个字节的二进制数表示为:
二、国标交换码
区位码无法用于汉字通信,因为它可能与通信使用的控制码(00H~1FH)(即0~31)发生冲突。(因为ASCII码编码中分控制信号编码和有型字符编码,前32个是控制码,如回车、换行、退格等,为避开这些控制码,国标码规定在区位码的基础上加20H,即32的16进制数)ISO2022规定每个汉字的区号和位号必须分别加上32(即二进制数),经过这样的处理而得的代码称为国标交换码,简称交换码或国际码,因此,"学"字的国标交换码计算为:
+ +
--------------------------
用十六进制数表示即为5127H。
三、机内码
由于文本中通常混合使用汉字和西文字符,汉字信息如果不予以特别标识,就会与单字节的ASCII码混淆。此问题的解决方法之一是将一个汉字看成是两个扩展ASCII码,使表示GB2312汉字的两个字节的最高位都为1。这种高位为1的双字节汉字编码即为GB2312汉字的机内码,简称为内码。
因此,"学"字的机内码为:
用16进制表示即为D1A7H。
一项。 最后需要指出的是,汉字的输入码和汉字的内码是不同的概念。无论何种编码输入法(如拼音、吴彼字体等。)用来输入一个汉字,其内码是一样的。
四、总结
区位码、国标码与机内码的转换关系
方法:
(1)区位码先转换成十六进制数表示
(2)(区位码的十六进制表示)+2020H=国标码;
(3)国标码+8080H=机内码
举例:以汉字"大"为例,"大"字的区内码为2083
示例解析:
1、区号为20,位号为83
2、将区位号2083转换为十六进制表示为1453H
3、1453H+2020H=3473H,得到国标码3473H
4、3473H+8080H=B4F3H,得到机内码为B4F3H
5、1453H+A0A0H=B4F3H,得到机内码为B4F3H
6、机内码B4F3H-A0A0H=1453H的区位码
大字的区码是20H(32区,83位)
.机内码、国际码、区位码之间如何换算
一般换算全部用十六进制。机内码、国际码是十六进制的,区位码是十进制的。具体换算步骤:(H表示十六进制,D表示十进制)1、将四位数的区位码分为两部分,2、将这两个两位数换算为十六进制,运用公式进行计算。国际码=区位码(十六进制)+2020H机内码=国际码+8080H例如:某汉字的区位码是2534。34D=22H则国际码=1922H+2020H=3952H,机内码=3952H+8080H=B9D2H扩展资料区位码、国标码与机内码都是汉字的编码形式,国标码是基础,指国家标准汉字编码。即
《信息交换用汉字编码字符集(基本集)》,该字符集有汉字6763个。每个汉字有一个固定的区位。区位码与国标码的区别在于,经过扩展的区位码字符数量及范围就超过了GB-2312。但其区位号与大陆用的就完全不相同。机内码是为了避免ASCII码和国标码同时使用时产生两义性问题,大部分汉字系统都采用将国标码每个字节高位置1作为汉字机内码。
2.区位码转换国标码
区位码+2020H=国标码 (运用此公式时要先把区位码按要求转成16进制)1)首先把2020分成 20 和 20 两部分转换成16进制 转化后是1414H2) 国标码=1414H+2020H=3434H
3.区位码怎么转换成国标码
(1)区位码先转换成十六进制数表示 (2)(区位码的十六进制表示)+2020H=国标码;(3)国标码+8080H=机内码
举例:以汉字“字的区内码为2083 解”
4.区位码和国标码的关系
区位码与国标码转换步骤如下:1、区码与位码分别转换成十六进制数表示;2、区位码的十六进制表示+2020H=国标码。具字的区位码为:63转换成16进制表示为:区位码十六进制数表示为:1E3FH2、1E3FH+2020H=3E5FH所以具字的国标码为:若是知道汉字不清楚汉字区位码,或者知道区位码不清楚区位码表示的汉字我们可以通过百度查询1、打开百度,汉字区位码查询;
5.如何将一个汉字位置码转换成国家标准码?
版权声明:本文标题:汉字区位码、国标码(交换码)和机内码转换方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1704315045h454385.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论