蓝桥杯 十六进制转十进制
- 问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
- 输入样例
FFFF
- 输出样例
65535
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
long long sum = 0;
map<char,int> m;
m['0'] = 0;
m['1'] = 1;
m['2'] = 2;
m['3'] = 3;
m['4'] = 4;
m['5'] = 5;
m['6'] = 6;
m['7'] = 7;
m['8'] = 8;
m['9'] = 9;
m['A'] = 10;
m['B'] = 11;
m['C'] = 12;
m['D'] = 13;
m['E'] = 14;
m['F'] = 15;
for(int i = s.length() - 1,j = 0;i>=0;i--,j++){
sum+=m[s[i]] * pow(16,j);
}
cout<<sum;
}