Метод обратного порядка битов для целых чисел в Java

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

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

Введение

В Java метод reverse() используется для возврата значения, полученного путём обращения порядка битов в двоичном представлении целого значения в дополнительном коде. В этом практическом занятии мы узнаем, как использовать метод reverse(), и реализуем его в нескольких примерах.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/operators("Operators") java/BasicSyntaxGroup -.-> java/variables("Variables") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/BasicSyntaxGroup -.-> java/output("Output") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/wrapper_classes("Wrapper Classes") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/operators -.-> lab-117736{{"Метод обратного порядка битов для целых чисел в Java"}} java/variables -.-> lab-117736{{"Метод обратного порядка битов для целых чисел в Java"}} java/if_else -.-> lab-117736{{"Метод обратного порядка битов для целых чисел в Java"}} java/output -.-> lab-117736{{"Метод обратного порядка битов для целых чисел в Java"}} java/user_input -.-> lab-117736{{"Метод обратного порядка битов для целых чисел в Java"}} java/exceptions -.-> lab-117736{{"Метод обратного порядка битов для целых чисел в Java"}} java/wrapper_classes -.-> lab-117736{{"Метод обратного порядка битов для целых чисел в Java"}} java/string_methods -.-> lab-117736{{"Метод обратного порядка битов для целых чисел в Java"}} end

Напишите пример программы

Напишите следующий код для реализации примера программы:

import java.lang.Integer;

public class IntegerReverse {
    public static void main(String[] args) {
        int positiveValue = 202;
        int negativeValue = -50;

        System.out.println("Original Positive Number:" + positiveValue);
        System.out.println("Binary Representation:" + Integer.toBinaryString(positiveValue));
        System.out.println("Number after reversal:" + Integer.reverse(positiveValue));

        System.out.println("\nOriginal Negative Number:" + negativeValue);
        System.out.println("Binary Representation:" + Integer.toBinaryString(negativeValue));
        System.out.println("Number after reversal:" + Integer.reverse(negativeValue));
    }
}

В этом шаге мы научились импортировать пакет java.lang.Integer в наш класс. Мы определили две целочисленные переменные и присвоили им значения.

С использованием метода toBinaryString() мы преобразовали эти значения в их двоичные числа, вызвав его внутри метода System.out.println(). Затем мы вызвали метод reverse() для этих двух переменных, чтобы получить их обратное двоичное представление.

Скомпилируйте и запустите программу

Скомпилируйте и запустите программу, выполнив следующую команду в терминале.

javac IntegerReverse.java && java IntegerReverse

Вывод будет выглядеть так:

Original Positive Number:202
Binary Representation:11001010
Number after reversal:1392508928

Original Negative Number:-50
Binary Representation:11111111111111111111111111001110
Number after reversal:1946157055

Реализуйте программу, определенную пользователем

Теперь мы напишем программу, определенную пользователем, которая принимает int в качестве ввода от пользователя и возвращает результат метода reverse(). Напишите следующий код:

import java.util.Scanner;

public class IntegerReverse {
    public static void main(String[] args) {
        try {
            Scanner scanner = new Scanner(System.in);
            System.out.print("Enter any integer value: ");
            int inputValue = scanner.nextInt();

            System.out.println("Original Number:" + inputValue);
            System.out.println("Binary Representation:" + Integer.toBinaryString(inputValue));
            System.out.println("Number after reversal:" + Integer.reverse(inputValue));
        } catch (Exception e) {
            System.out.println("Invalid Input");
        }
    }
}

В этой программе мы использовали класс Scanner для получения ввода от пользователя. Мы вывели сообщение для пользователя, просив его ввести любое целое значение. После получения значения ввода мы вывели исходное число, а также его двоичное представление. Наконец, мы применили метод reverse() к значению ввода и вывели результат.

Скомпилируйте и запустите программу

Скомпилируйте и запустите программу, выполнив следующую команду в терминале.

javac IntegerReverse.java && java IntegerReverse

Вы увидите следующий вывод:

Enter any integer value: 78
Original Number:78
Binary Representation:1001110
Number after reversal:1912602624

Протестируйте программу с недействительным вводом

Теперь протестируйте программу, введя недействительные входные данные (например, значения, не являющиеся целыми числами).

Enter any integer value: abcd
Invalid Input

Это сообщение означает, что введенное значение не было допустимым целым числом.

Резюме

В этом практическом занятии мы научились использовать метод reverse() в Java для обращения двоичного представления целого числа. Мы реализовали два примера, один из предоставленных примеров и один, определенный пользователем, для иллюстрации использования этого метода. Мы использовали класс Scanner для получения значения ввода от пользователя.