机内码是汉字在计算机内部使用的编码,国标码是在中国大陆使用最广泛的汉字编码字符集。其转换规则是:机内码是将国标码的每个字节都加上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。
参考资料来源:百度百科-机内码
参考资料来源:百度百科-国际码
机内码=国标码+8080H。
即:5E48H+8080H=DEC8H。
国标码的机内码为二字节长的代码,它是在相应国标码的每个字节最高位上加“1”,即
汉字机内码=汉字国标码+8080H
例如,“啊”字的国标码是3021H,其汉字机内码则是B0A1H。
汉字机内码的基础是汉字国标码。
扩展资料:
国际码编码规则:
汉字用两个字节表示,原则上,两个字节可以表示 256×256=65536 种不同的符号,作为汉字编码表示的基础是可行的。
但考虑到汉字编码与其它国际通用编码,如ASCII 西文字符编码的关系,我国国家标准局采用了加以修正的两字节汉字编码方案,只用了两个字节的低7位。
这个方案可以容纳 128×128=16384 种不同的汉字,但为了与标准ASCII码兼容,每个字节中都不能再用32个控制功能码和码值为32的空格以及127的操作码。
所以每个字节只能有94个编码。这样,双七位实际能够表示的字数是:94×94=8836个
机内码编码原则:
汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变。
如:我们知道,“保”字的国标码为3123H,前字节为00110001B,后字节为00100011B,高位改1为10110001B和10100011B 即为B1A3H,因此,“保”字的机内码就是B1A3H。
参考资料来源:百度百科-机内码
机内码与国际码之间的换算关系:
国际码=区位码(十六进制)+2020H
机内码=国际码+8080H
机内码、国际码是十六进制的,但是区位码是十进制的。一般换算全部用十六进制,值得特别注意:区位码从十进制转换为十六进制是两位两位分别转换的。
汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变。
如:“保”字的国标码为3123H,前字节为00110001B,后字节为00100011B,高位改1为10110001B和10100011B 即为B1A3H,因此,保字的机内码就是B1A3H。
扩展资料:
国标码(“国标”是中华人民共和国国家标准的简称)在中国大陆使用。GB2312收录6763个汉字,GBK收录20912个汉字,最新的GB18030收录27533个汉字。BIG5码。收录13053个汉字。在台湾和香港使用的一字节或两字节编码。
Unicode并不被中国政府很好的接受。中国政府要求在中国大陆出售的软件必须支持GB18030编码。在国际通信化和软件设计领域,CJK编码收集了汉语、日语、韩语中的汉字集。
国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,;这样就得了一个与国标码有一个相对位置差的代码,再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码。
参考资料:百度百科—机内码
参考资料:百度百科—国际码
区位码、国标码与机内码的转换关系
(1)区位码先转换成十六进制数表示
(2)(区位码的十六进制表示)+2020H=国标码;
(3)国标码+8080H=机内码
举例:以汉字“大”为例,“大”字的区内码为2083
解:1、区号为20,位号为83
2、将区位号2083转换为十六进制表示为1453H
3、1453H+2020H=3473H,得到国标码3473H
4、3473H+8080H=B4F3H,得到机内码为B4F3H小结:字符编码的两种表示方式:ASCII(字符的表示);GB2312(国标码,汉字编码)
国标码:是指我国1980年公布的“信息交换汉字编码字符集”,代号为“GB2312-80”。由连续的两个字节组成。
机内码:在计算机内表示汉字的代码是汉字机内码,汉字机内码由国标码演化而来,把表示国标码的两个字节(每个字节可转化为8位二进制数,不足8位前面补零)的最高位分别加“1”,就变成汉字机内码。
技巧算法:
(1) 区位码先转换成十六进制数表示
(2)(区位码的十六进制表示)+2020H=国标码;
(3) 国标码+8080H=机内码 ;其实8080H=(1000000010000000)^2
例1:已知汉字“大”的国标码为3473H,其机内码。
答:(34)H= (00110100)^2, 在高位(最左边)分别加“1”后变为(10110100)^2=(B4)H;
(73)H=(01110011)^2,在高位(最左边)分别加“1”后变为(11110011)^2=(F3)H;
答案:B4F3H。
或3473H+8080H=B4F3H,得到机内码为B4F3H。
例2:区位码2083求国标码。
答:1、区号为20,位号为83 。
2、将区位号2083转换为十六进制表示为1453H ;(20)^10=(14)H;(83)^10=(53)H;
3、1453H+2020H=3473H,得到国标码3473H 。
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点:
对掌握普通话的人来说,使用音码比形码方便,速度比较快。形码虽然较慢,但能输入任何汉字(包括古字)。采用双轨,操作员认识的字可按音输入,不认识的字按形输入,会普通话的人可按音输入,方音重的人可按形输入。
对于用字量少的单位,按音输入无问题,但对用字量多的单位来说,按音输入就不如按形输入,因为一般人只能念出一部分汉字。
按形输入(尤其是整体输入)对于中文信息处理的某类工作,如统计汉字,非常适合;但是对于其他类工作,例如统计汉语的音(声韵调)则无能为力。按音输入则正相反。双轨正好是相辅相成。
有的形码可以照顾多种汉字(如日本的汉字、南朝鲜的汉字),而音码能分词连写,便于作进一步的信息处理。
适当的双轨方案,不会增加设备上的麻烦。如不考虑采用整字输入,一般均可使用现有的小键盘。
参考资料来源:百度百科——汉字编码