二进制、八进制、十进制、十六进制的相互转化(超详细案例)

public class RadixExchange {

    public static void main(String[] args) {
//      decimalToSomeRadix();   //十进制向二进制、八进制、十六进制转换
//      someRadixToDecimal();   //二进制、八进制、十六进制向十进制转换    
        someRadixToOtherRadix();    //二进制、八进制、十六进制相互转换
    }
    public static void decimalToSomeRadix () {
        // 1. 十进制(decimal)转换为二进制(binary)
        System.out.println("十进制 (20) -> 二进制 (" + Integer.toBinaryString(20) + ")");

        // 2. 十进制(decimal)转化为八进制(octal)
        System.out.println("十进制 (20) -> 八进制 (" + Integer.toOctalString(20) + ")");

        // 3. 十进制(decimal)转化为十六进制(hexadecimal)
        System.out.println("十进制 (20) -> 十六进制 (" + Integer.toHexString(20) + ")");
    }
    public static void someRadixToDecimal() {
        // 1. 二进制(binary)转化为十进制(decimal)
        System.out.println("二进制 (110) -> 十进制 (" + Integer.valueOf("110", 2) + ")");

        // 2. 八进制(octal)转化为十进制(decimal)
        System.out.println("八进制 (034) -> 十进制 (" + Integer.valueOf("34", 8) + ")");

        // 3. 十六进制(hexadecimal)转化为十进制(decimal)
        System.out.println("十六进制 (0x4a, 0X4a) -> 十进制 (" + Integer.valueOf("4a", 16) + ")");
    }
    public static void someRadixToOtherRadix() {
        //1. 二进制(binary)转化为八进制(hexadecimal)[思想:二进制 -> 十进制 -> 八进制] 
        int binToDec = Integer.valueOf("10101", 2);
        String decToOct = Integer.toOctalString(binToDec);
        System.out.println("二进制 (10110) -> 八进制 (" + decToOct + ")");

        //2. 二进制(binary)转化为十六进制(octal)[思想:二进制 -> 十进制 -> 十六进制]
        int binToDec02 = Integer.valueOf("10101", 2);
        String decToHex = Integer.toHexString(binToDec);
        System.out.println("二进制 (10110) -> 十六进制 (" + decToHex + ")");

        //3. 八进制(octal)转化为二进制(binary)[思想:八进制 -> 十进制 -> 二进制]
        int octToDec = Integer.valueOf("31", 8);
        String decToBin = Integer.toBinaryString(octToDec);
        System.out.println("八进制 (031) -> 二进制 (" + decToBin + ")");

        //4. 十六进制(hexadecimal)转化为二进制(binary)[思想:十六进制 -> 十进制 -> 二进制]
        int hexToDec = Integer.valueOf("8a", 16);
        String decToBin02 = Integer.toBinaryString(hexToDec);
        System.out.println("十六进制 (0x8a, 0X8a) -> 二进制 (" + decToBin02 + ")");

        //5. 八进制(octal)转化为十六进制(hexadecimal) [八进制 -> 十进制 -> 十六进制]
        int octToDec02 = Integer.valueOf("31", 8);
        String decToHex02 = Integer.toHexString(octToDec02);
        System.out.println("八进制 (031) -> 十六进制 (" + decToHex02 + ")");

        //6. 十六进制(hexadecimal)转化为八进制(octal)[八进制 -> 十进制 -> 十六进制]
        int hexToDec02 = Integer.valueOf("19", 16);
        String decToOct02 = Integer.toOctalString(hexToDec02);
        System.out.println("十六进制 (0x19, 0X19) -> 八进制 (" + decToOct02 + ")");
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值