问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
参考代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
char a[9]={0};
int len,i,j;
double num=0;
gets(a);
len=strlen(a);
for(i=0;i<len;i++){
if(a[i]>='0'&&a[i]<='9')
num+=pow(16,len-i-1)*(a[i]-'0');
else
if(a[i]>='A'&&a[i]<='F')
num+=pow(16,len-i-1)*(a[i]-'A'+10);
}
printf("%.0f\n",num);
return 0;
}
测试结果: