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);
    }
分类: Java

毛巳煜

高级软件开发全栈架构师

工信部备案号:辽ICP备17016257号-2