int fun(const char* str)
{
assert(str != NULL);
if (str[0] != '0' || str[1] != 'x' && str[1] != 'X')
{
return 0;
}
else
{
str++;
}
int sum = 0;
while(isxdigit(*str++))//检查是否是16进制数
{
if (isdigit(*str)) //检查是否为数字
{
sum = sum*16 + *str - '0';
}
else if (*str >= 'a' && *str <= 'f')
{
sum = sum*16 + *str - 'a' + 10;//因为abcdef表示10-15
}
else if(*str >= 'A' && *str <= 'F')
{
sum = sum*16 + *str - 'A' + 10;
}
}
return sum;
}
16进制转10进制
最新推荐文章于 2022-09-06 10:50:15 发布