Преобразование целого числа в двоичное в Java

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы узнаем, как преобразовать целое число в двоичный формат на Java. Существует несколько методов для выполнения этой конвертации, и мы рассмотрим наиболее часто используемые методы.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) 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().

Каждый метод имеет свои достоинства и недостатки, и вы можете использовать тот, который лучше подходит для ваших целей.