机内码是汉字在计算机内部使用的编码,国标码是在中国大陆使用最广泛的汉字编码字符集。其转换规则是:机内码是将国标码的每个字节都加上128,即将两个字节的最高位由0改1。
汉字分为输入码、区位码、国标码与机内码。
机内码是国家标准局颁布的《信息交换用汉字编码字符集基本集》(代号为GB231280)规定的汉字交换码作为国家标准汉字编码,是汉字在计算机内部存储、传送、交换的内部编码。
国标码是中国汉字通行的国际标准为我国于1981年制订的“信息交换用汉字编码字符集”,其标准号为GB2312—80,简称国际码,是我国应用最广泛的汉字编码字符集。
国标码(“国标”是中华人民共和国国家标准的简称)在中国大陆使用。GB2312收录6763个汉字,GBK收录20912个汉字,最新的GB18030收录27533个汉字。
汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变。
例如:“保”字的国标码为3123H,前字节为00110001B,后字节为00100011B,高位改1为10110001B和10100011B即为B1A3H,因此,“保”字的机内码就是B1A3H。
扩展资料:
区位码转换为国标码的方式:
国标码是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,;这样就得了一个与国标码有一个相对位置差的代码,再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码。
如:“保”字的国标码为3123H,它是经过下面的转换得到的:1703D-1103H-+20H-3123H。
参考资料来源:百度百科-机内码
参考资料来源:百度百科-国际码
1、区位码
将汉字用区号01~94和位号01~94来表示汉字的编码,是一个4位十进制数,前两位表示区号,后两位表示位号,每一行称为一个“区”,编号为01-94,每一列称为一个“位”,编号为01-94,这种用来表示每个字符所处位置的图称为“区位图”。
用字符所在区位图中的位置来表示字符的代码称为“区位码”。比如“啊”的区位码为1601。
2、国标码
对这些编号进行编码的结果就得到“国家标准代码”,简称为“国标码”,也称“汉字交换码”
国标码由两个字节组成,其高字节和低字节的最高位都为0,与7位标准ASCII码类似。
编码方法是现将十进制表示的区码和位码转换为十六进制表示的区码和位码,再讲这个代码的高字节(第一个字节)和低字节(第二个字节)分别加上20H(100000B),就得到国标码。每个字节加20H的原因是为了避开ASCII码表的32个控制字符。
如“啊”的区位码为1601,计算“啊”的国标码,首先将“啊”的区码和位码分别加32,得区码16+32=48=30H,位码01+32=33=21H,所以“啊”的国标码为3021H。
3、机内码
为了解决ASCII码和国标码在同事使用时产生二义性,讲国标码的高字节和低字节的最高位b7都变成1,或者说每个字节都加上0x80,这样得到的代码被称为机内码,常被简写成“内码”。
已知“啊”的国标码为3021H,得知二进制编码:(0011000)(00100001),将每个字节最高位分别置1,得(10110000)(10100001)为二进制机内码,转换成十六进制为B0A1H(机内码)。
机内码=国标码+8080H
扩展资料:
汉语拼音推广应用,并逐步过渡到汉字和汉语拼音文字并存并用,这是一种双轨制。汉字信息处理领域中,音码和形码的并存并用,同样是一种双轨制。因此,不少人认为,采用双轨制好,理由有以下5点:
对掌握普通话的人来说,使用音码比形码方便,速度比较快。形码虽然较慢,但能输入任何汉字(包括古字)。采用双轨,操作员认识的字可按音输入,不认识的字按形输入,会普通话的人可按音输入,方音重的人可按形输入。
对于用字量少的单位,按音输入无问题,但对用字量多的单位来说,按音输入就不如按形输入,因为一般人只能念出一部分汉字。
按形输入(尤其是整体输入)对于中文信息处理的某类工作,如统计汉字,非常适合;但是对于其他类工作,例如统计汉语的音(声韵调)则无能为力。按音输入则正相反。双轨正好是相辅相成。
有的形码可以照顾多种汉字(如日本的汉字、南朝鲜的汉字),而音码能分词连写,便于作进一步的信息处理。
适当的双轨方案,不会增加设备上的麻烦。如不考虑采用整字输入,一般均可使用现有的小键盘。
参考资料来源:百度百科——汉字编码
区位码与国标码转换步骤如下:
1、区码与位码分别转换成十六进制数表示;
2、区位码的十六进制表示+2020H=国标码。
以具字为例,具字的区位码为:3063
1、将30转换成16进制表示为:1E,63转换成16进制表示为:3F,区位码十六进制数表示为:1E3FH
2、1E3FH+2020H=3E5FH
所以具字的国标码为:3E5FH
区位码的使用方法:
在DOS下的各汉字系统中,同时按Alt键和F1键即可调用区位码输入方法。而在Windows中常用Ctrl+空格键和Ctrl+Shift键调出区位码。如“2901”代表“健”字,“4582”代表“万”字,“8150”代表“楮”字,这些都是汉字。
用区位码还可以输入特殊符号,比如,“0189”代表“※”(符号),“0528”代表“ゼ”(日本语),“0711”代表“Й”(俄文),“0949”代表“┭”(制表符)。
区位码、国标码与机内码的转换关系
(1)区位码先转换成十六进制数表示
(2)(区位码的十六进制表示)+2020H=国标码;
(3)国标码+8080H=机内码
举例:以汉字“大”为例,“大”字的区内码为2083
解:1、区号为20,位号为83
2、将区位号2083转换为十六进制表示为1453H
3、1453H+2020H=3473H,得到国标码3473H
4、3473H+8080H=B4F3H,得到机内码为B4F3H小结:字符编码的两种表示方式:ASCII(字符的表示);GB2312(国标码,汉字编码)
若某汉字的国标码是5031H,则该汉字的机内码是( D0B1H )。汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变。
若某汉字的国标码是5031H,则该汉字的机内码=国标码+128(十进制)=5031H(十六进制)+128(十进制)=5031H(十六进制)+8080H(十六进制)=D0B1H (十六进制)。
扩展资料:
汉字国标码和区位码的转换:
国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,这样就得了一个与国标码有一个相对位置差的代码。
再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码。如:“保”字的国标码为3123H,它是经过下面的转换得到的:1703D-1103H-+20H-3123H。
参考资料来源:百度百科-汉字国标码