题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <iostream> #include <string> #include <map> #include <cmath> using namespace std; const array<char, 16> ss = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int main() { map<char, int> mm; for (int i =0; i < ss.size(); ++i) { mm[ss[i]] = i; } string input; cin >> input; int i = 0; int res = 0; string::reverse_iterator backItor = input.rbegin(); for (; backItor < input.rend(); backItor++) { char s = *backItor; if (s == 'x'|| s == 'X') { break; } //2 res += pow(16, i) * mm[s]; ++i; } cout << res; return 0; } // 64 位输出请用 printf("%lld")