文章目录
任意进制转换为10进制
假设一个R进制的数为 An-1An-2An-3…A0
将其转换为10进制的公式为
y = An-1*Rn-1 + An-1*Rn-2 + … + A0*R0
R0的值为1, 因此也可以写为
y = An-1*Rn-1 + An-1*Rn-2 + … + A0 (公式1)
10进制转任意进制
公式1可以变形为
y = A0 + R * W, 其中 W = An-1*Rn-2 + … +A1
A0为y/R
的余数
W 为y/R
的商
然后对W执行相同的过程, 分别得到A1, A2, … , An-1
JAVA实现代码
以下是10进制与62进制的互转方式, 62进制用0-9a-zA-Z
中的字符表示
public static String radix10To62(long num) {
if(num<0) {
throw new IllegalArgumentException("must be n