正常思路:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll get(string a){
int mul,i=0;
ll sum=0;
for(int j=a.length()-1; j>=0; j--){
if(a[j]-'0'<10){
mul=a[j]-'0';
}else{
switch(a[j]){
case 'A':mul=10;break;
case 'B':mul=11;break;
case 'C':mul=12;break;
case 'D':mul=13;break;
case 'E':mul=14;break;
case 'F':mul=15;break;
}
}
sum+= mul*pow(16,i);
i++;
}
return sum;
}
int main() {
string a;
cin>>a;
cout<<get(a)<<endl;
return 0;
}
简单思路:使用该思路前提是注意数据范围,切忌溢出
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
ll t;
//%x是小写字母16进制,%X是大写字母
scanf("%X",&t);
cout<<t;
return 0;
}