题目描述
编写函数long change(char s[]),其作用是将参数表示的十六进制数转换为相应的十进制整数
输入
测试数据的个数
第一个十六进制数
第二个十六进制数
…
输出
第一个十进制数
第二个十进制数
…
示例输入1 <-复制
3
1234
F8
AB12
示例输出1
4660
248
43794
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
int main() {
int longchange(char s[]);
int t;
char a[1000];
cin >> t;
while (t--) {
cin >> a;
cout << longchange(a) << endl;
}
return 0;
}
int longchange(char s[]) {
int len = strlen(s);
int wei[100]; int j = 0;
for (int i = 0; i < len; i++) {
switch (s[i])
{
case'A':wei[j++] = 10;
break;
case'B':wei[j++] = 11;
break;
case'C':wei[j++] = 12;
break;
case'D':wei[j++] = 13;
break;
case'E':wei[j++] = 14;
break;
case'F':wei[j++] = 15;
break;
default:wei[j++] = int(s[j] - '0');
break;
}
}
int sum = 0;
for (int k = len - 1; k >= 0; k--) {
sum += pow(16, k) * wei[len - 1 - k];
}
return sum;
}