16进制转换成10进制
#include <stdio.h>
int main()
{
char b[]="11";int i;int j;
int len,a[20],sum=0;
len=strlen(b);
for(i=0;i<len;i++)
{
switch(b[i])
{case '0':a[i]=0;break;
case '1':a[i]=1;break;
case '2':a[i]=2;break;
case '3':a[i]=3;break;
case '4':a[i]=4;break;
case '5':a[i]=5;break;
case '6':a[i]=6;break;
case '7':a[i]=7;break;
case '8':a[i]=8;break;
case '9':a[i]=9;break;
case 'a':a[i]=10;break;
case 'b':a[i]=11;break;
case 'c':a[i]=12;break;
case 'd':a[i]=13;break;
case 'e':a[i]=14;break;
case 'f':a[i]=15;break;
default: printf("error\n");}
}
for(i=0;i<len;i++)
{
for(j=i;j<len-1;j++)
a[i]*=16;
len--;
sum+=a[i];
}
printf("%d",sum);
getch();
}
最后已位没加上,不知道杂会事
如:1a 结果事16,不是26