|
编译器是IAR,5.3的,优化选择NONE了,很简单的1个计算
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
ulong zk_addr = 0;//字库起始地址
uchar nm[2] = {0};//汉字内码
zk_addr = 0x00+((nm[0]-0xa0-1)*0x5e+(nm[1]-0xa0-1))*0x20;
//汉字在字库中的起始地址,此公式为GB2312标准字库地址计算公式
等效就是这个,当汉字是 啊 这个字的时候,内码就是b0a1
zk_addr = 0x00 + ( (0xb0-0xa0-1)*94 + (0xa1-0xa0-1)) * 32;
结果 zk_addr = 42949466880 晕死.....
如果 uint zk_addr = 0;//字库起始地址
结果就正确了 zk_addr = 45120
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|