10进制和36进制内的互转
10进制和36进制内的互转
R进制转10进制
1
2
3
4
5
6
7
8
int to_Dec(int radix, string num) {
int res = 0;
for (char c: num) {
int val = isdigit(c) ? c - '0' : toupper(c) - 'A' + 10;
res = res * radix + val; //R进制转10进制递推公式
}
return res;
}
10进制转R进制
1
2
3
4
5
6
7
8
9
10
11
string dec_To(int radix, int num) {
if (num == 0) return "0";
string res;
while (num) {
int rema = num % radix;
res += (rema < 10) ? ('0' + rema) : ('A' + rema - 10);
num /= radix;
}
reverse(res.begin(), res.end());
return res;
}
本文由作者按照 CC BY 4.0 进行授权