#include #include #include #include using namespace std; // 符号转化为数字 int get_num(char c) { if (isdigit(c)) { return c - '0'; } if ('a' <= c && c <= 'z') { return c - 'a' + 10; } if ('A' <= c && c <= 'Z') { return c - 'A' + 10; } return 0; } // 数字转化为符号 char get_char(int num) { return '0'; } //将字符串根据进制转化为数字 int to_num(string& number, int base) { int n = number.size(); long long num = 0; for (int i = 0; i < n; i++) { char ch = number[i]; num *= base; num += get_num(ch); } return num; } //将数字根据进制转化为字符串 string tostring(int num, int base) { if (num == 0) return "0"; string ans; while (num > 0) { ans += get_char(num % base); num /= base; } reverse(ans.begin(), ans.end()); return ans; } string convertBase(string& num, int st_base, int en_base) { return tostring(to_num(num, st_base), en_base); } int main() { string number; int st_base, en_base; cout << "输入数字:"; cin >> number; cout << "输入源进制(2-16):"; cin >> st_base; cout << "输入目标进制(2-16):"; cin >> en_base; string ans = convertBase(number, st_base, en_base); cout << "转换后的数字是:" << ans << endl; return 0; }