基础练习 十六进制转十进制

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 #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\n",s);

20     return 0;

21 }
View Code

 

你可能感兴趣的:(十六进制)