题解 | 进制转换
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
// ASCII字符转换
int transfer(char c1)
{
int dif = c1 - 48;
if(dif < 10) return dif;
if(dif >= 10) return c1 - 55;
return 0;
}
int main() {
string str;
while(cin >> str)
{
int index = str.find('x');
int sum = 0;
// std::cout << index;
for(int i = str.size() - 1; i > index; i--)
{
// 将字符转换成对应数字
int num = transfer(str[i]);
// std::cout << num << endl;
// 计算每一位的权重
int end = str.size() - i - 1;
while(end-- > 0) num = num * 16;
// std::cout << num << endl;
sum += num;
}
std::cout << sum;
}
return 0;
}
// 64 位输出请用 printf("%lld")

查看13道真题和解析