题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <iostream>
using namespace std;
int main() {
string str;
cin>>str;
int sum = 0;
int bit;
for(int i=2; i<str.size(); i++){
//取出每一位
int temp;
if(str[i]=='A'||str[i]=='a'){
temp = 10;
}else if(str[i]=='B'||str[i]=='b'){
temp = 11;
}else if(str[i]=='C'||str[i]=='c'){
temp = 12;
}else if(str[i]=='D'||str[i]=='d'){
temp = 13;
}else if(str[i]=='E'||str[i]=='e'){
temp =14;
}else if(str[i]=='F'||str[i]=='f'){
temp = 15;
}else{
temp = str[i]-'0';
}
bit = str.size()-i-1; //所在位 从低位0开始
//求当前数字所在位的权重
for(int j=0; j<bit; j++){
temp*=16;
}
sum+=temp;
}
cout<<sum<<endl;
}
// 64 位输出请用 printf("%lld")