c语言中16进制转换为十进制
小沫Joe:
[code=csharp]
//我写了一个蛮粗暴的(适用于输入只有0xAB这种的情况)
#include
#include
#include
int main()
{
char a[20];
int i,sum=0,n=0;
gets(a);
int len=strlen(a);
//printf("%d\n",len);
for(i=len-1;i>=2;i--)
{
if(a[i]=='A') sum+=10*pow(16,n);
else if(a[i]=='B') sum+=11*pow(16,n);
else if(a[i]=='C') sum+=12*pow(16,n);
else if(a[i]=='D') sum+=13*pow(16,n);
else if(a[i]=='E') sum+=14*pow(16,n);
else if(a[i]=='F') sum+=15*pow(16,n);
else if(a[i]=='1') sum+=1*pow(16,n);
else if(a[i]=='2') sum+=2*pow(16,n);
else if(a[i]=='3') sum+=3*pow(16,n);
else if(a[i]=='4') sum+=4*pow(16,n);
else if(a[i]=='5') sum+=5*pow(16,n);
else if(a[i]=='6') sum+=6*pow(16,n);
else if(a[i]=='7') sum+=7*pow(16,n);
else if(a[i]=='8') sum+=8*pow(16,n);
else if(a[i]=='9') sum+=9*pow(16,n);
//printf("%d\n",sum);
n++;
}
printf("%d",sum);
return 0;
}
[/code]
|