十进制转任意进制
//获取字母
char get(int x) {
if(x < 9) return x + '0';
else return x - 10 + 'A';
}
//十进制 转换为 其他进制
// n 为要被转换的十进制数,to 为要转换的进制
string to_num(int n, int to) {
string num;
while(n) {
num += get(n % to);
n /= to;
}
reverse(num.begin(), num.end());
return num;
}
任意进制转十进制
//把字母拆散
int uget(char x) {
if(x <= '9') return x - '0';
else return x - 'A' + 10;
}
//其他进制 转换为 十进制
// s为其他进制数,base是s的进制
int num_to10(string s, int base) {
int num = 0;
for(int i = 0; i < s.size(); i ++) {
num = num * base + uget(s[i]);
}
return num;
}