百练4003 十六进制转十进制(水题)
- 描述
- 将十六进制数转换成十进制数
- 输入
- 第一行有一个整数T,表示共有T组数据
接下来T行,每一行为一个16进制无符号正整数,位数不超过8位,数中的a-f均为大写字母,数前没有多余的0 - 输出
- 输出共T行,每一行是一组数据的十进制表示,数字前不得有多余的0。
十进制数小于2^31 - 样例输入
-
4 A F FFFE 10001
- 样例输出
-
10 15 65534 65537
#include <iostream> #include <string> #include <string.h> #include <math.h> using namespace std; int main(){ int n; int k; int sum = 0; char s[10]; cin >> n; for (int i = 0; i < n; i++){ cin >> s; k = strlen(s); for (int j = 0; j < k; j++){ if (s[j] >= 'A'&&s[j] <= 'F'){ s[j] = s[j] - 55; } else if (s[j] >= '0'&&s[j] <= '9'){ s[j] = s[j] - 48; } sum += (s[j] * pow(16, k - j - 1)); } cout << sum << endl; sum = 0; } return 0; }
天晴了,起飞吧