题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <iostream>
using namespace std;
int main() {
string str;
int sum=0,num;
cin >> str;
num = str.size();
while(num > 2){//从最后一个字符想前计算和判断,即:num-1 > 1
int sum1=1;
int num1 = str.size()-num;
while(num1)//循环计算16相乘的结果
{
sum1 *= 16;
num1--;
}
if(isdigit(str[num-1])){//判断该位置是否为数字
sum += (int(str[num-1])-48)*sum1;//利用ASCII来计算结果
}else{
sum += (int(str[num-1])-55)*sum1;
}
sum1 = 1;
num--;
}
cout << sum;//输出
return 0;
}
