#include <iostream> #include <cstdio> #include <string> #include <algorithm> using namespace std; /** * char转int * @param target * @return */ int char2Int(char target); /** * 将m进制的num转化为十进制 * @param num * @param m */ void convertM2Ten(string num, int m); /** * 进制转换--北京大学 * @return */ int main() { string hexNum; while (cin >> hexNum) { hexNum = hexNum.substr(2); //16进制转10进制 convertM2Ten(hexNum, 16); } return 0; } int char2Int(char target) { if (0 <= target && target <= '9') { //0~9直接减去字符0即可 return target - '0'; } else { //大于等于10,则先减去字符A(注意题目是大写还是小写),再加上10 return target - 'A' + 10; } } void convertM2Ten(string num, int m) { // int number = 0; // for (int i = 0; i < num.size(); ++i) { // number *= m; // number += char2Int(num[i]); // } int number = 0; int x = 1; for (int i = num.size() - 1; i >= 0; --i) { number += char2Int(num[i]) * x; x *= m; } cout << number << endl; }