金牌会员
 
- 积分
- 1331
- 金钱
- 1331
- 注册时间
- 2016-8-1
- 在线时间
- 229 小时
|
发表于 2018-10-24 14:19:24
|
显示全部楼层
[mw_shl_code=c,true]WCHAR ff_convert ( /* Converted code, 0 means conversion error */
WCHAR chr, /* Character code to be converted */
UINT dir /* 0: Unicode to OEMCP, 1: OEMCP to Unicode */
)
{
const WCHAR *p;
WCHAR c;
int i, n, li, hi;
if (chr < 0x80) { /* ASCII */
c = chr;
} else {
if (dir) { /* OEMCP to unicode */
p = oem2uni;
hi = sizeof oem2uni / 4 - 1;
} else { /* Unicode to OEMCP */
p = uni2oem;
hi = sizeof uni2oem / 4 - 1;
}
li = 0;
for (n = 16; n; n--) {
i = li + (hi - li) / 2;
if (chr == p[i * 2]) break;
if (chr > p[i * 2])
li = i;
else
hi = i;
}
c = n ? p[i * 2 + 1] : 0;
}
return c;
}
[/mw_shl_code]
这个好像就是你所说的二分法
|
|