?输入的十六进制数,通过字符型存放在a[]数组中。首先将字符型转为int型(将a转为10等等)存放在b[]数组中。在与10^n相乘在相加得出结果。
#include<stdio.h>#include<math.h>//16进制转10进制int main(void){char a[20]; //输入16进制数int b[20] = { 0 }; //将输入的16进制转为int型int i = 0, j = 0;int sum = 0;int c = 0;//最终10进制数gets(a);//printf(“%s\n”, a); //输出初始//将其从char型强转为int型 存入 b[]中while (a[sum] != ‘\0’){ if ((a[sum] >= ‘a’) && (a[sum] <= ‘z’)){b[sum] = a[sum] – ‘a’ + 10;sum++;continue;}if ((a[sum] >= ‘A’) && (a[sum] <= ‘Z’)){b[sum] = a[sum] – ‘A’ + 10;sum++;continue;}b[sum] = a[sum] – ‘0’;sum++;}//将每转为16进制for (i = 0; i < 便宜香港vps sum; i++){b[sum – i – 1] = b[sum – i – 1] * pow(16, i);}//累加得出结果for (j = 0; j < sum; j++){c = c + b[j];}printf(“%d”, c);return 0;}
?