百练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;
}
天晴了,起飞吧
原文地址:https://www.cnblogs.com/jianqiao123/p/10639918.html