Java Long reverseBytes 메서드

JavaBeginner
지금 연습하기

소개

이 랩에서는 Java 의 Long 클래스에 있는 reverseBytes() 메서드에 대해 배우겠습니다. 이 메서드는 전달된 long 값의 2 의 보수 이진 표현에서 바이트의 순서를 반전시키는 데 사용됩니다.

Java 클래스 생성

먼저, ~/project 디렉토리에 Java 클래스를 생성해야 합니다. 클래스 이름을 ReverseBytesDemo.java로 지정하겠습니다.

public class ReverseBytesDemo {

}

main 메서드 추가

다음으로, 클래스에 main 메서드를 추가해야 합니다. 이 메서드는 프로그램의 진입점이 됩니다.

public static void main(String[] args) {

}

reverseBytes() 메서드 사용

이제 reverseBytes() 메서드를 사용하여 long 값의 바이트 순서를 반전시켜 보겠습니다.

long a = 342;
long reversedValue = Long.reverseBytes(a);

System.out.println("Original value: " + a);
System.out.println("Reversed value: " + reversedValue);

이 코드는 다음과 같이 출력됩니다:

Original value: 342
Reversed value: 6197234562238513152

사용자 입력 사용

사용자 입력을 받아 입력 값의 바이트 순서를 반전시킬 수도 있습니다. 사용자 입력을 받도록 코드를 수정해 보겠습니다.

Scanner scanner = new Scanner(System.in);

System.out.print("Enter a number: ");
long userInput = scanner.nextLong();

long reversedValue = Long.reverseBytes(userInput);

System.out.println("Original value: " + userInput);
System.out.println("Reversed value: " + reversedValue);

이 코드는 사용자에게 숫자를 입력하라는 메시지를 표시한 다음 입력 값의 바이트 순서를 반전시킵니다. javac ReverseBytesDemo.java && java ReverseBytesDemo 명령을 사용하여 코드를 실행하십시오.

예외 처리

try-catch 블록을 사용하여 사용자 입력을 받을 때 발생할 수 있는 모든 예외를 처리할 수 있습니다.

Scanner scanner = new Scanner(System.in);

try {
    System.out.print("Enter a number: ");
    long userInput = scanner.nextLong();

    long reversedValue = Long.reverseBytes(userInput);

    System.out.println("Original value: " + userInput);
    System.out.println("Reversed value: " + reversedValue);
} catch (InputMismatchException e) {
    System.out.println("Invalid input. Please enter a valid number.");
}

이 코드는 사용자가 유효하지 않은 입력을 입력할 때 발생할 수 있는 예외를 처리하기 위해 try-catch 블록을 사용합니다.

음수 값 테스트

음수로 reverseBytes() 메서드를 테스트해 보겠습니다.

long a = -23;
long reversedValue = Long.reverseBytes(a);

System.out.println("Original value: " + a);
System.out.println("Reversed value: " + reversedValue);

이 코드는 다음을 출력합니다.

Original value: -23
Reversed value: -1585267068834414593

이진 표현 출력

Long.toBinaryString() 메서드를 사용하여 원래 값과 반전된 값의 이진 표현을 출력할 수도 있습니다.

System.out.println("Original value in binary: " + Long.toBinaryString(a));
System.out.println("Reversed value in binary: " + Long.toBinaryString(reversedValue));

이 코드는 다음을 출력합니다.

Original value in binary: 1111111111111111111111111111111111111111111111111111111111101001
Reversed value in binary: 1010101100000000000000000000000000000000000000000000000000000000

반전된 값의 이진 표현은 각 8 비트 그룹이 반전된 원래 이진 표현임을 유의하십시오.

사용자 정의 함수 사용

reverseBytes() 메서드를 캡슐화하기 위해 사용자 정의 함수를 작성해 보겠습니다.

public class ReverseBytesDemo {

    public static long reverseBytes(long value) {
        return Long.reverseBytes(value);
    }

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        try {
            System.out.print("Enter a number: ");
            long userInput = scanner.nextLong();

            long reversedValue = reverseBytes(userInput);

            System.out.println("Original value: " + userInput);
            System.out.println("Reversed value: " + reversedValue);

            System.out.println("Original value in binary: " + Long.toBinaryString(userInput));
            System.out.println("Reversed value in binary: " + Long.toBinaryString(reversedValue));

        } catch (InputMismatchException e) {
            System.out.println("Invalid input. Please enter a valid number.");
        }

    }
}

사용자 정의 함수 실행

이제 사용자 정의 함수가 설정되었으므로, 수정된 main() 메서드를 다시 실행하여 테스트할 수 있습니다.

Scanner scanner = new Scanner(System.in);

try {
    System.out.print("Enter a number: ");
    long userInput = scanner.nextLong();

    long reversedValue = reverseBytes(userInput);

    System.out.println("Original value: " + userInput);
    System.out.println("Reversed value: " + reversedValue);

    System.out.println("Original value in binary: " + Long.toBinaryString(userInput));
    System.out.println("Reversed value in binary: " + Long.toBinaryString(reversedValue));

} catch (InputMismatchException e) {
    System.out.println("Invalid input. Please enter a valid number.");
}

javac ReverseBytesDemo.java && java ReverseBytesDemo 명령을 사용하여 코드를 실행하십시오.

요약

이 랩에서는 long 값의 2 의 보수 이진 표현의 바이트 순서를 반전시키는 데 사용되는 Long 클래스의 Java reverseBytes() 메서드에 대해 배웠습니다. 또한 사용자 입력을 사용하는 방법, 예외 처리 방법, 이진 표현을 출력하는 방법, 그리고 메서드를 사용자 정의 함수로 캡슐화하는 방법에 대해서도 배웠습니다. 이러한 단계를 따르면 이제 자신의 Java 프로그램에서 reverseBytes() 메서드를 사용할 수 있습니다.