您的位置:首页 > 其它

atoi_hex

2011-08-18 22:15 99 查看
_LIT(KText, "F12A01");

TInt num_hex = atoi_hex(KText);

#define is_hex_num0(a) ((a) >= '0' && (a) <= '9')
#define is_hex_numa(a) ((a) >= 'a' && (a) <= 'f')
#define is_hex_numA(a) ((a) >= 'A' && (a) <= 'F')
#define unichar_to_int(ch, num) do {\
if (is_hex_num0(ch)) {\
num = (num * 0x10) + (ch - '0');\
}\
else if (is_hex_numa(ch)) {\
num = (num * 0x10) + (ch - 'a') + 0xa;\
}\
else if (is_hex_numA(ch)) {\
num = (num * 0x10) + (ch - 'A') + 0xA;\
}\
else\
num = KErrGeneral;\
} while(0)

TInt atoi_hex(const TDesC& buf)//like this: _LIT(KText, "F12A01");
{
TInt i = 0;
TInt num = 0;
TInt len = buf.Length();
while(i < len)
{
TInt8 ch = buf[i++];
unichar_to_int(ch, num);
if (num == KErrGeneral)
return KErrGeneral;
}
return num;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: