请教区位码转为机内码问题

2024-11-22 14:09:04
推荐回答(1个)
回答1:

我们现在习惯上说的 国标码 GB2312-1980 指的就是 你说的 内码。
------------------------------------------------------------
按老概念分 区位码、国标码和机内码
区号,十进制,位号 十进制
区位码 = 区号 * 100 + 位号
国标码 = ( 区号 + 0x20) 左移 8 位 和 (位号 + 0x20) 组成 4位 十六进制
机内码 = 国标码 + 0x8080 = 我们现在习惯上说的 国标码 GB2312
3063 --> 0xbedf --> 具
------------------------------------------------------------

程序:
int q=30,w=63,qw,GB,JN;
qw = q * 100 + w;
GB = ((q+ 0x20) << 8) | (w + 0x20);
JN = GB + 0x8080;
printf("GB=%x JN=%x",GB,JN);