#include <stdio.h>
#include <string.h>
int hextodec(char t[]);
int mypow(int s);
int main()
{
char t[100]={'\0'};
printf("请输入一个十六进制数:");
scanf("%s",t);
int k=hextodec(t);
printf("该数转化成十进制数为%d",k);
}
int mypow(int s)
{
int t=1;
for(int i=0;i<s;i++) t*=16;
return t;
}
int hextodec(char t[])
{
int sum=0;
size_t len=strlen(t);
for(size_t i=0;i<len;i++)
{
if(t[i]>='0' && t[i]<='9') sum+=(t[i]-'0')*mypow(len-i-1);
else
{
if(t[i]>='a' && t[i]<='f') sum+=(t[i]-'W')*mypow(len-i-1);
if(t[i]>='A' && t[i]<='F') sum+=(t[i]-'7')*mypow(len-i-1);
}
}
return sum;
}