进制转换

短除法:

由于一个数可以表示成

\[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;
}
posted @ 2021-02-18 18:13  xyee  阅读(84)  评论(0编辑  收藏  举报