#include<iostream>#include<string>usingnamespace std;intmain(){
string s;
cin >> s;int leth = s.length();longlong sum =0;for(int i =0; i < leth; i++){if(s[i]>='A'&& s[i]<='F')
sum = sum *16+ s[i]-'A'+10;else
sum = sum *16+ s[i]-'0';}
cout << sum << endl;return0;}
#include<iostream>#include<string>#include<cmath>usingnamespace std;intmain(){
string s;longlong sum =0;
cin >> s;int t =0;//int为每一位十六进制对应的十进制数,即按位展开的基数for(int i = s.size()-1; i >=0; i--){//这里要区分sizeof(s)与s.size()的区别if(s[i]>='A'&& s[i]<='F')
t = s[i]-55;//A为65 但A到F超过10,原应为:减去A+10if(s[i]>='0'&& s[i]<='9')
t = s[i]-'0';
sum += t *pow(16,(float)(s.size()- i -1));//这里曾有pow函数的重载问题,整理其用法}
cout <<sum << endl;return0;}