题解 | #进制转换#
进制转换
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")