1.机内码与区位码
机内码高位字节=(区号)H+A0H
机内码低位字节=(位号)H+A0H
2.国标码与区位码
国标码高位字节=(区号)H+20H
国标码低位字节=(位号)H+20H
3.区位码用两个10进制数表示,另外两种码用两个十六进制数表示.
4."编"的区位码为1764,下面举例来看如何转成另外两种码:
a.机内码
高位字节=(17)(十进制)+A0H(十六进制)=11H+A0H=b1H
低位字节=(64)(十进制)+A0H(十六进制)=40H+A0H=e0H
所以,机内码为b1e0
b.国标码
高位字节=(17)(十进制)+20H(十六进制)=11H+20H=31H
低位字节=(64)(十进制)+20H(十六进制)=40H+20H=60H
所以,国标码为3160
例子程序:
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned char hz[2]="编";
printf("区位码:%x%x\n",hz[0]-0xa0,hz[1]-0xa0);
printf("国际码:%x%x\n",hz[0]-0x80,hz[1]-0x80);
printf("机内码:%x%x\n",hz[0],hz[1]);
printf("说明:‘编’的十进制区位码为:1764");
return 0;
}