问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> #include <string> using namespace std; int main() { string s; while (cin >> s) { int len = s.length(); long long sum = 0; for (int i = 0; i < len; i++) { if (s[i] >= 'A' && s[i] <= 'F') { sum = sum * 16 + s[i] - 'A' + 10; } else { sum = sum * 16 + s[i] - '0'; } } cout << sum; } return 0; } |
❤ 点击这里 -> 订阅《PAT | 蓝桥 | LeetCode学习路径 & 刷题经验》by 柳婼