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