题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <iostream> #include <string> #include <math.h> using namespace std; int main() { string Hx16str; int Ostr = 0; int n = 0; while (cin >> Hx16str) { // 注意 while 处理多个 case Hx16str = Hx16str.substr(2,Hx16str.length()-2); for (int i = Hx16str.length() - 1; i >= 0; i--) { switch (Hx16str[i]) { case 'A': Ostr += 10*pow(16,n++); break; case 'B': Ostr += 11*pow(16,n++); break; case 'C': Ostr += 12*pow(16,n++); break; case 'D': Ostr += 13*pow(16,n++); break; case 'E': Ostr += 14*pow(16,n++); break; case 'F': Ostr += 15*pow(16,n++); break; default: Ostr += (Hx16str[i] - 48)*pow(16,n++); break; } } cout << Ostr << endl; } } // 64 位输出请用 printf("%lld")