#include <stdio.h>
#include <string.h>
#include <math.h>
int htoi(char s[]){
unsigned int len = strlen(s);
unsigned int i = 0;
int sum = 0;
while(len){
--len;
if ('a' <= s[len] && s[len] <= 'f'){
sum += (s[len] - 'a' + 10) * pow(16, i++);
}else if ('A' <= s[len] && s[len] <= 'F'){
sum += (s[len] - 'A' + 10) * pow(16, i++);
}else if (s[len] == 'X' || s[len] == 'x'){
break;
}else{
sum += (s[len] - '0' + 0) * pow(16, i++);
}
}
return sum;
}
main()
{
char digital16[] = "0x000a34";
int digital10;
digital10 = htoi(digital16);
printf("16进制是%s, 对应的10进制是%ld。\n", digital16, digital10);
}