题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <iostream> #include <string> using namespace std; int main() { string a; getline(cin, a); int num = 0; int length = a.length(); int time16 = 1;//16的0次幂 for (int i = 0; i < length; i++) { int last = length - i-1;//计算字符串最后一位的下标,注意一定减1 if (a[last]=='0'){ } else if (a[last]>='1' && a[last]<='9') { num = num + ((a[last]-48) * time16); } else if (a[last]>='A' && a[last]<='F') { num = num + ((a[last]-55) * time16); } time16 = 16 * time16; //C++中,^ 操作符表示按位异或运算,不是幂运算.可以使用 pow 函数来计算幂。 } cout << num <<"\n"; return 0; }