http://lx.lanqiao.org/problem.page?gpid=T50
基础练习 十六进制转十进制
时间限制:1.0s 内存限制:512.0MB
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
分析:
直接模拟进制转换。
AC代码:
1 #include2 #include 3 #include 4 int main() 5 { 6 __int64 s=0; 7 int len,i; 8 char a[10]; 9 scanf("%s",a);10 len=strlen(a);11 for(i=0;i ='A'&&a[i]<='F')14 a[i]=a[i]-'A'+10;15 else16 a[i]-='0';17 s=s+a[i]*pow(16,len-i-1);18 }19 printf("%I64d\n",s);20 return 0;21 }