题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <iostream>
using namespace std;
int main() {
int a, b;
string str;
getline(cin,str);
//cout<<stoi(str,0,16);
int t = 1;
int sum=0;
for(int i = str.size()-1;i>1;i--)
{
//取0x之后的值,所以从后往前,直到下标为1就停止
//从最后一位取值,如果该值-'0'>=0并且-'9'<=0就说明他时10以内的数字,转换成数字直接加就行
//t为权重,到第二位,每个数都代表一个16
if(str[i]-'0'>=0&&str[i]-'9'<=0)
sum+=(str[i]-'0')*t;
else
sum+=(str[i]-'A'+10)*t;
t*=16;
}
cout<<sum<<endl;
}
// 64 位输出请用 printf("%lld")
查看20道真题和解析
汤臣倍健公司氛围 434人发布