首页 > 编程知识 正文

Java进制转换的解析

时间:2023-11-22 16:36:28 阅读:308331 作者:AXDX

Java语言中,我们可以对不同的数值进行二进制、八进制、十进制、十六进制等进制的转换。这些基于不同基数的数制系统在计算机科学和工程编程中都起到了重要地位。在Java中,我们可以使用内置的方法进行进制转换。

一、十进制到其他进制的转换

Java的Integer和Long类中提供了转换数制的方法:toString()。此方法可以将十进制的数转为其他任何2到36之间的进制的字符串。

public class DecimalConvert {
    public static void main(String[] args) {
        int decimal = 15;
        System.out.println(Integer.toString(decimal,2));  // 输出:1111(二进制)
        System.out.println(Integer.toString(decimal,8));  // 输出:17(八进制)
        System.out.println(Integer.toString(decimal,16)); // 输出:f(十六进制)
    }
}

二、其他进制到十进制的转换

在Java中,可以通过Integer的parseInt()方法或者Long的parseLong()方法把二进制、八进制、十六进制的字符串形式转为十进制的整数。

public class ConvertToDecimal {
    public static void main(String[] args) {
        String binary = "1111";
        System.out.println(Integer.parseInt(binary,2));  // 输出:15

        String octal = "17";
        System.out.println(Integer.parseInt(octal,8));   // 输出:15

        String hex = "f";
        System.out.println(Integer.parseInt(hex,16));    // 输出:15
    }
}

三、其他进制间的转换

在Java中,要想实现其他进制之间的转换,常见的做法是先将源进制转换为十进制,然后再将十进制转换为目标进制。

public class ConvertBetweenNonDecimal {
    public static void main(String[] args) {
        // 二进制转成八进制
        String binary = "1010";
        int decimal = Integer.parseInt(binary, 2); // 先二进制转十进制
        System.out.println(Integer.toString(decimal, 8)); // 再十进制转八进制 输出:12

        // 八进制转十六进制
        String octal = "12";
        decimal = Integer.parseInt(octal, 8); // 先八进制转十进制
        System.out.println(Integer.toString(decimal, 16)); // 再十进制转16进制输出:a
    }
}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。