关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

C和C++中:十六进制转十进制的方法源码

发布时间:2020-01-16 17:05:10

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



/template/Home/Zkeys/PC/Static