文章

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 进行授权

热门标签