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



