区位码 国际码 机内码 转换

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;
}


 



你可能感兴趣的:(区位码 国际码 机内码 转换)