编程题] 进制转换
时间限制:1秒
空间限制:32768K
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
输入例子1:
0xA
输出例子1:
10
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
char a[1000];
int n;
while(scanf("%s",a)!=EOF)
{
int i,sum=0;
n=strlen(a);
for(i=n-1;i>=2;i--)
{
if(a[i]=='A')
{
sum+=10*pow(16,n-1-i);
}
else if(a[i]=='B')
{
sum+=11*pow(16,n-1-i);
}
else if(a[i]=='C')
{
sum+=12*pow(16,n-1-i);
}
else if(a[i]=='D')
{
sum+=13*pow(16,n-1-i);
}
else if(a[i]=='E')
{
sum+=14*pow(16,n-1-i);
}
else if(a[i]=='F')
{
sum+=15*pow(16,n-1-i);
}
else
{
sum+=(a[i]-'0')*pow(16,n-1-i);
}
}
printf("%d\n",sum);
}
return 0;
}