代码如下:
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main() {
string a;
getline(cin,a);
int n=a.size();
long long sum=0; //转换后的十进制数,要是长整型才可以
for (int i=0;i<n;i++){
int num; //字符数字转成int数字存到num中
if (a[i]>='0' && a[i]<='9') num=a[i]-'0';
else num=a[i]-'A'+10;
sum=sum+num*pow(16,n-(i+1)); //将每个位置的位权数值结合并加到转换后的数字上
}
cout<<sum<<endl;
return 0;
}
注意:10位的16进制数字转换成10进制,要存放在long long 类型中,如果是int类型会数据溢出,结果不对