普通方法直接转化为十进制
代码
#include<stdio.h>
#include<string.h>
#include<math.h>
int getN(char s)
{
char nn;
switch(s)
{
case '0':nn=0;break;
case '1':nn=1;break;
case '2':nn=2;break;
case '3':nn=3;break;
case '4':nn=4;break;
case '5':nn=5;break;
case '6':nn=6;break;
case '7':nn=7;break;
case '8':nn=8;break;
case '9':nn=9;break;
case 'A':nn=10;break;
case 'B':nn=11;break;
case 'C':nn=12;break;
case 'D':nn=13;break;
case 'E':nn=14;break;
case 'F':nn=15;break;
}
return nn;
}
int main()
{
char s[9];
gets(s);
char i;
long long sum=0;
for(i=strlen(s)-1;i>=0;i--)
{
int num=getN(s[i]);
sum+=num*pow(16,strlen(s)-i-1);
}
printf("%lld\n",sum);
return 0;
}