赞
踩
内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
将十六进制数按权展开累加即可
用string类型存放十六进制数,用for循环和switch_case_default语句进行赋值运算
- #include <iostream>
- #include <string>
- #include <cmath>
-
- using namespace std;
-
- int main()
- {
- long long p = 0;
- string s;
- cin >> s;
- for (unsigned i = 0; i < s.length(); i++)
- {
- switch(s[i])
- {
- case '0': p += 0 * pow(16,s.length()-i-1); break;
- case '1': p += 1 * pow(16,s.length()-i-1); break;
- case '2': p += 2 * pow(16,s.length()-i-1); break;
- case '3': p += 3 * pow(16,s.length()-i-1); break;
- case '4': p += 4 * pow(16,s.length()-i-1); break;
- case '5': p += 5 * pow(16,s.length()-i-1); break;
- case '6': p += 6 * pow(16,s.length()-i-1); break;
- case '7': p += 7 * pow(16,s.length()-i-1); break;
- case '8': p += 8 * pow(16,s.length()-i-1); break;
- case '9': p += 9 * pow(16,s.length()-i-1); break;
- case 'A': p += 10 * pow(16,s.length()-i-1); break;
- case 'B': p += 11 * pow(16,s.length()-i-1); break;
- case 'C': p += 12 * pow(16,s.length()-i-1); break;
- case 'D': p += 13 * pow(16,s.length()-i-1); break;
- case 'E': p += 14 * pow(16,s.length()-i-1); break;
- case 'F': p += 15 * pow(16,s.length()-i-1); break;
- default: break;
- }
- }
- cout << p;
- return 0;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。