Java 整数转二进制

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将学习如何在 Java 中将整数转换为二进制数。有多种方法可以实现这种转换,我们将介绍最常用的几种方法。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("`Java`")) -.-> java/BasicSyntaxGroup(["`Basic Syntax`"]) java(("`Java`")) -.-> java/StringManipulationGroup(["`String Manipulation`"]) java(("`Java`")) -.-> java/DataStructuresGroup(["`Data Structures`"]) java(("`Java`")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["`Object-Oriented and Advanced Concepts`"]) java(("`Java`")) -.-> java/SystemandDataProcessingGroup(["`System and Data Processing`"]) java/BasicSyntaxGroup -.-> java/operators("`Operators`") java/BasicSyntaxGroup -.-> java/while_loop("`While Loop`") java/BasicSyntaxGroup -.-> java/output("`Output`") java/StringManipulationGroup -.-> java/stringbuffer_stringbuilder("`StringBuffer/StringBuilder`") java/DataStructuresGroup -.-> java/arrays("`Arrays`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/wrapper_classes("`Wrapper Classes`") java/SystemandDataProcessingGroup -.-> java/math_methods("`Math Methods`") java/SystemandDataProcessingGroup -.-> java/string_methods("`String Methods`") subgraph Lab Skills java/operators -.-> lab-117748{{"`Java 整数转二进制`"}} java/while_loop -.-> lab-117748{{"`Java 整数转二进制`"}} java/output -.-> lab-117748{{"`Java 整数转二进制`"}} java/stringbuffer_stringbuilder -.-> lab-117748{{"`Java 整数转二进制`"}} java/arrays -.-> lab-117748{{"`Java 整数转二进制`"}} java/wrapper_classes -.-> lab-117748{{"`Java 整数转二进制`"}} java/math_methods -.-> lab-117748{{"`Java 整数转二进制`"}} java/string_methods -.-> lab-117748{{"`Java 整数转二进制`"}} end

使用 toBinaryString() 方法

toBinaryString() 方法是将整数转换为二进制字符串的最简单方式。该方法是 Integer 类的一个方法,在将 int 转换为二进制后返回一个字符串。

public static String toBinaryString(int val)

这里的 val 是我们想要转换为二进制数制的值。该方法将以字符串格式返回二进制值。

public class IntegerToBinaryConverter {
    public static void main(String[] args) {
        int val = 183;
        System.out.println("Value in binary system is: " + Integer.toBinaryString(val));
    }
}

输出:Value in binary system is: 10110111

使用长除法方法

这种方法完全基于数学原理。我们通过考虑 32 位二进制表示,声明一个大小为 32 的整数数组。每次我们将数字除以 2,并将余数存储在整数数组中。最后,为了得到结果,我们以相反的顺序遍历数组。

public class IntegerToBinaryConverter {
    public static void main(String[] args) {
        int val = 183;
        int num[] = new int[32];
        int pos = 0;
        while (val > 0) {
            num[pos++] = val % 2;
            val = val / 2;
        }
        System.out.print("Value in binary system is: ");
        for (int i = pos - 1; i >= 0; i--) {
            System.out.print(num[i]);
        }
    }
}

输出:Value in binary system is: 10110111

使用位操作

通过使用右移运算符,我们可以将任何值减半,由于我们在位级别操作,这是一种非常低成本的运算;其余部分与上述示例中提到的内容相同。最后,我们通过反转存储在 StringBuilder 对象中的值来打印二进制形式的结果。

public class IntegerToBinaryConverter {
    public static void main(String[] args) {
        int val = 183;
        StringBuilder binary = new StringBuilder(32);
        while (val > 0) {
            binary.append(val % 2);
            val >>= 1;
        }
        binary.reverse().toString();
        System.out.print("Value in binary system is: " + binary.reverse().toString());
    }
}

输出:Value in binary system is: 10110111

使用 Integer.toString() 方法

java.lang.Integer 类中,还有一种有趣的方式是使用 Integer.toString() 方法。该方法接受第一个参数作为数字,第二个参数作为基数(基数表示数制的进制),例如 2 表示二进制,8 表示八进制,16 表示十六进制;在我们的例子中,我们将基数设置为 2 以表示二进制数。

public class IntegerToBinaryConverter {
    public static void main(String[] args) {
        int val = 183;
        System.out.print("Value in binary system is: " + Integer.toString(val, 2));
    }
}

输出:Value in binary system is: 10110111

总结

在本实验中,我们学习了如何使用四种不同的方法在 Java 中将整数转换为二进制数制。第一种方法是使用内置的 toBinaryString() 方法,第二种方法是使用长除法,第三种方法是使用位操作,第四种方法是使用 Integer.toString() 方法。

每种方法都有其优缺点,你可以根据需求选择最适合的方法。

您可能感兴趣的其他 Java 教程