Description
问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535
#include <cstdio> #include <iostream> #include <cmath> #include <string> #include <cstring> #include <algorithm> #include <queue> #include <stack> using namespace std; #define ll long long char a[20]; ll s[20], sum, x; int main() { sum = 0; x = 1; memset(a, 0, sizeof(a)); while(cin >> a) { sum = 0; x = 1; for(int i = strlen(a)-1; i >= 0; i--) { if(a[i] >= 'A' && a[i] <= 'Z')sum += (ll)((a[i]-'A')+10)*x; else if(a[i] >= '0' && a[i] <= '9')sum += (ll)(a[i]-'0')*x; x *= 16; } printf("%lld ", sum); memset(a, 0, sizeof(a)); } return 0; }