- 描述
- 将十六进制数转换成十进制数
- 输入
- 第一行有一个整数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;
}