第1个回答 2010-02-16
//十六进制转化为十进制
#include<stdio.h>
int CiFang(int n);
int main()
{
char a[21]; //记录十六进制数
int i,j,s=0;
printf("16进制数是:");
gets(a); //不要超过20位
for(i=0;a[i]!='\0';i++);
for(j=i-1;j>-1;j--)
{
if(a[j]<='9'&&a[j]>='0')
{
s+=(a[j]-48)*CiFang(i-j-1);
}
else if(a[j]<='F'&&a[j]>='A')
s+=(a[j]-55)*CiFang(i-j-1);
else
{
printf("error input!");
break;
}
}
printf("\n他的十进制数是:%d",s);
getchar();
return 0;
}
int CiFang(int n)
{
int i,s=1;
for(i=0;i<n;i++)
s*=16;
return s;
}
例如:输入0F00,输出3840