int hex_char_value(char c)
{
if(c >= '0' && c <= '9')
return c - '0';
else if(c >= 'a' && c <= 'f')
return (c - 'a' + 10);
else if(c >= 'A' && c <= 'F')
return (c - 'A' + 10);
assert(0);
return 0;
}
int hex_to_decimal(const char* szHex, int len)
{
int result = 0;
for(int i = 0; i < len; i++)
{
result += (int)pow((float)16, (int)len-i-1) * hex_char_value(szHex[i]);
}
return result;
}
写完以上代码后,又突然想到可以用 sscanf() 实现同样的功能:
int x;
sscanf("abc", "%x", x);
//x = 2748
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。