初级会员

- 积分
- 55
- 金钱
- 55
- 注册时间
- 2016-4-23
- 在线时间
- 15 小时
|
5金钱
按照GBK编码规则,每个内码由2个字节组成,第一字节从0X81~0XFE,第二个字节从(0X40~0XFE)-1,一共能代表23940个汉字可是为什么在cc936文件中的大数组一共有
for(i=0;;i++)
{
if(!uni2oem)
break;
}
printf("\r\ncount of uni2oem=%d",i+2); ====一共43586个值????他们是怎么对应起来的;
也因此关于ff_convert()函数中的二分法就不太理解了,sizeof(uni2oem or oem2uni)=87172,是数组个数的两倍能对应起来,hi = sizeof uni2oem / 4 - 1=;这里就不太理解(原子哥以前回答的一个帖子是
“
4个字节表示一个组。
UNICODE占2字节,GBK占2字节,一组就是4字节。
16,表示最多进行16次二分,你可以算算2的16次方可以表示多大的表。 | ”
没太明白,因此 hi = sizeof oem2uni / 4 - 1,然后li=0;i = li + (hi - li) / 2;不就是在0到二分之数组大小之间用二分法,而对于另一部分就没有进行对比了呀?
求助各位,这里是我哪里理解错了?
|
|