Java学习记录0002 | 关于进制转换

本文详细介绍了Java中二进制、八进制和十六进制与十进制之间的转换方法,包括基本原理、示例代码,并展示了如何使用内置函数进行转换。
摘要由CSDN通过智能技术生成

1. 二、八、十六进制转换成十进制


        Java中的二进制以0b或者0B开头,二进制数转换成十进制的方法是用二进制的每一位乘以2的其位数-1.

        如将二进制数0b1010转换成十进制数应为:0*2^0+1*2^1+0*2^2+1*2^3=10;

示例如下:

public class Practice02 {
    public static void main(String[] args) {
        int number = 0b1010;
        System.out.println(number);
    }
}

        


Java中的八进制以0开头,同二进制相似,八进制数转换成十进制数的方法是用八进制的每一位乘以8的其位数-1.

        如将八进制数01010转换成十进制数应为:0*8^0+1*8^1+0*8^2+1*8^3=520;

示例如下:

public class Practice02 {
    public static void main(String[] args) {
        int number = 01010;
        System.out.println(number);
    }
}

        


        Java中的十进制以0x或0X开头,同上,十六进制数转换成十进制数的方法是用十六进制的每一位乘以16的其位数-1.

        如将十六进制数0x1010转换成十进制数应为:0*16^0+1*16^1+0*16^2+1*16^3=4112;

示例如下:

public class Practice02 {
    public static void main(String[] args) {
        int number = 0x1010;
        System.out.println(number);
    }
}



2. 十进制转换成二、八、十六进制

        十进制数转换成其他进制数可用该数不断除以其他进制位,直到商小于进制位,再将最后的商和余数倒过来即得.

        如10转换成二进制应为:10/2余0商5;5/2余1商2;2/2余0商1. 可得出10的二进制为0b1010.

        100转换成八进制应为:100/8余4商12;12/8余4商1. 可得出100的八进制为0144.

        1000转换成十六进制应为:1000/16余8商62;62/16余14商3. 可得出1000的十六进制为0x3e8.

示例如下:

public class Practice02 {
    public static void main(String[] args) {
        int binary = 0b1010;
        int octal = 0144;
        int hexadecimal = 0x3e8;
        System.out.println(binary);
        System.out.println(octal);
        System.out.println(hexadecimal);
    }
}



3. 二进制转换成八、十六进制

        二进制转换成八、十六进制可从二进制数的低位(右边)开始分别以三位、四位为一组转换成对应进制.

        如0b1010转换成八进制应该为:(1)(010)=12.

        0b01100100转换成十六进制应该为:(0110)(0100)=64.

示例如下:

public class Practice02 {
    public static void main(String[] args) {
        int binary1 = 0b1010;
        int binary2 = 0b01100100;
        System.out.println(Integer.toOctalString(binary1));
        System.out.println(Integer.toHexString(binary2));
    }
}



4. 八、十六进制转换成二进制

        八、十六进制转换成二进制需从低位开始把八、十六进制的每一位转成对应的三位、四位一组的二进制.

        如01010转换成二进制应该为:(001)(000)(001)(000)=0b001000001000.

         0x3e8转换成二进制应该为:(0011)(1110)(1000)=0b001111101000.

示例如下:

public class Practice02 {
    public static void main(String[] args) {
        int octal = 01010;
        int hexadecimal = 0x3e8;
        System.out.println(Integer.toBinaryString(octal));
        System.out.println(Integer.toBinaryString(hexadecimal));
    }
}

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值