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