![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#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。 ", digital16, digital10); }