汉字机内码
汉字在计算机内部其内码是唯一的。因为汉字处理系统要保证中西文的兼容,当系统中同时存在ASCII码和汉字国标码时,将会产生二义性。例如:有两个字节的内容为30H和21H,它既可表示汉字“啊”的国标码,又可表示西文“0”和“!”的ASCII码。为此,汉字机内码应对国标码加以适当处理和变换。
GB码的机内码为二字节长的代码,它是在相应GB码的每个字节最高位上加“1”,即
汉字机内码=汉字国标码+8080H
例如,上述“啊”字的国标码是3021H,其汉字机内码则是B0A1H。
汉字国标码亦可称为汉字交换码,主要用于汉字信息处理系统之间或者通信系统之间交换信息使用,简称GB码。该标准共收集常用汉字6 763个,另外还有各种图形符号682个,共计7 445个。
GB码规定每个汉字、图形符号都用两个字节表示,每个字节只使用低七位编码,因此最多能表示出128×128=16 384个汉字。
区位码将汉字编码码中的6 763个汉字分为94个区,每个区中包含94个汉字(位),区和位组成一个二维数组,每个汉字在数组中对应一个唯一的区位码。汉字的区位码定长4位,前2位表示区号,后2位表示位号,区号和位号用十进制数表示,区号从01到94,位号也从01到94。例如,“中”字在54区的48位上,其区位码为“54-48”,“国”字在25区的90位上,其区位码为“25-90”。
需要注意的是:汉字区位码并不等于汉字国标码,它们两者之间的关系可用以下公式表示:
国标码=区位码(十六进制)+2020H
例15:已知汉字“春”的区位码为“20-26”,计算它的国标码。
区位码:第1字节 第2字节
20 26 十进制
↓ ↓
14H 1AH 十六进制
+20H +20H
国标码: 34H 3AH
)

