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

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

时间限制:1.0s   内存限制:512.0MB
   
问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
 
分析:
  十六进制转化为十进制的方法:
    十六进制从个位开始,将每一位所对应的十进制数 * pow (16, j) 求和
 
C/C++代码实现(AC):
  
 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <cmath>
 6 #include <stack>
 7 #include <map>
 8 #include <queue>
 9 
10 using namespace std;
11 
12 int main()
13 {
14     char s[10];
15     scanf("%s", s);
16     long long len = strlen(s), temp = 0;
17     for (int i = len - 1, j = 0; i >= 0; --  i, ++ j)
18         if (s[i] >= '0' && s[i] <= '9' )temp += pow (16, j) * (s[i] - '0');
19         else temp += pow(16, j) * (s[i] - 'A' + 10);
20     printf("%lld\n", temp);
21     return 0;
22 }

 

posted @ 2018-05-13 22:25  GetcharZp  阅读(183)  评论(0编辑  收藏  举报