进制转换

短除法:

由于一个数可以表示成

[x = a_n * k^{n-1} + a_{n-1} * k^{n-2} + cdots + a_1 * k^0 ]

所以, x % k 取出末尾的

[a_1 * k^0 ]

此时让 x / k ,得到a1,让所有项的次数减一,得

[x = a_n * k^{n-2} + a_{n-1} * k^{n-3} + cdots + a_2 * k^0 ]

此时继续取模就可以得到a2,重复之前的流程直到x = 0

// 进制数没有写成英文字母(用十进制数表示,并用空格分割)
public String conversionBase(long n, long base) {
    String symbol = "";
    if (n < 0) {
        symbol = "-";
        n = -n;
    }
    String res = "";
    while (n != 0) {
        long mod = n % base;
        res = mod + " " + res;
        n /= base;
    }
    return symbol + res;
}
原文地址:https://www.cnblogs.com/xyqxyq/p/14413006.html