Java中 进制转换是在编译时转换的, 而不是运行时
public static void main(String[] args) {
/*
* 任意进制转 十进制
* 系数: 每一位上的数值本身就是系数
* 基数: 几进制,基数就是几
* 权: 从右向左,从0开始编号
* 每一个位上的 系数 * 基数 ^ 权次幂 相加
* 例如:
* ===========================================================
* 二进制的 10010 = 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0
* ************** = 1*(2*2*2*2) + 0*(2*2*2) + 0*(2*2) + 1*(2) + 0*1
* 转换十进制结果 = 16 + 0 + 0 + 2 + 0 = 18
* ===========================================================
* 八进制的 10210 = 1*8^4 + 0*8^3 + 2*8^2 + 1*8^1 + 0*8^0
* ************** = 1*(8*8*8*8) + 0*(8*8*8) + 2*(8*8) + 1*(8) + 0*1
* 转换十进制结果 = 4096 + 0 + 128 + 8 + 0 = 4232
* ===========================================================
* 十六进制 10310 = 1*16^4 + 0*16^3 + 3*16^2 + 1*16^1 + 0*16^0
* ************** = 1*(16*16*16*16) + 0*(16*16*16) + 3*(16*16) + 1*(16) + 0*1
* 转换十进制结果 = 65536 + 0 + 768 + 16 + 0 = 66320
*/
System.out.println("以十制的形式输出:");
System.out.println(10010); // 整数默认为 十进行
System.out.println(0b10010); // 以 0b开头 二进制
System.out.println(010210); // 以0开头 八进制
System.out.println(0x10310); // 以0x开头 十六进制
/*
* 十进制转 二进制 使用除法
* 十进制 1101 = 1101 / 2 = 550 余 1
* *********** = 550 / 2 = 275 余 0
* *********** = 275 / 2 = 137 余 1
* *********** = 137 / 2 = 68 余 1
* *********** = 68 / 2 = 34 余 0
* *********** = 34 / 2 = 17 余 0
* *********** = 17 / 2 = 8 余 1
* *********** = 8 / 2 = 4 余 0
* *********** = 4 / 2 = 2 余 0
* *********** = 2 / 2 = 1 余 0
* *********** = 1 / 2 = 0 余 1
* 将结果倒序拼起来 = 10001001101
*/
System.out.println(0b10001001101);
/*
* 十进制转 八进制 使用除法
* 十进制 12306 = 12306 / 8 = 1538 余 25 取第一位小数 2
* ************ = 1538 / 8 = 192 余 25 取第一位小数 2
* ************ = 192 / 8 = 24 余 0
* ************ = 24 / 8 = 3 余 0
* ************ = 3 / 8 = 0 余 375 取第一位小数 3
*/
System.out.println(030022);
}