汉子区位码为2643对应机内码具体算法

如题所述

BA CB
区位码

26
43
区位码换算成十六进制Hex的
1A
2B
Hex国标码=区位码+20
Hex内码=国标码+80 =区位码+A0
1A+A0=BA
2B+A0=CB

国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,;这样就得了一个与国标码有一个相对位置差的代码,再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码。如:“保”字的国标码为3123H,它是经过下面的转换得到的:1703D->1103H->+2020H->3123H。
(20h就是十进制的32,上文提到了“但为了与标准ASCII码兼容,每个字节中都不能再用32个控制功能码和码值为32的空格以及127的操作码”)

根据国标码的规定,每一个汉字都有了确定的二进制代码,但是这个代码在计算机内部处理时会与ASCII码发生冲突,为解决这个问题,把国标码的每一个字节的首位上加1(128D=80H)。由于ASCII码只用7位,所以,这个首位上的“1”就可以作为识别汉字代码的标志,计算机在处理到首位是“1”的代码时把它理解为是汉字的信息,在处理到首位是“0”的代码时把它理解为是ASCII码。经过这样处理后的国标码就是机内码。

汉字的机内码、国际码和区位码之间的关系是:

(汉字机内码前两位)H=(国标码前两位)H+80H=(区码)H+A0H

(汉字机内码后两位)H=(国标码后两位)H+80H=(位码)H+A0H
A0H=160D
温馨提示:答案为网友推荐,仅供参考
相似回答