Méthode Java Long Reverse Bytes

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à utiliser la méthode reverseBytes() de la classe Long en Java, qui est utilisée pour inverser l'ordre des octets de la représentation binaire à complément à deux de la valeur long passée.

Créer une classe Java

Tout d'abord, nous devons créer une classe Java dans le répertoire ~/projet. Appelons-la ReverseBytesDemo.java.

public class ReverseBytesDemo {

}

Ajouter la méthode principale

Ensuite, nous devons ajouter la méthode main à notre classe. Celle-ci sera le point d'entrée de notre programme.

public static void main(String[] args) {

}

Utilisation de la méthode reverseBytes()

Maintenant, utilisons la méthode reverseBytes() pour inverser les octets d'une valeur long.

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

System.out.println("Valeur d'origine : " + a);
System.out.println("Valeur inversée : " + reversedValue);

Ce code produira la sortie suivante :

Valeur d'origine : 342
Valeur inversée : 6197234562238513152

Utilisation de l'entrée utilisateur

Nous pouvons également prendre l'entrée de l'utilisateur et inverser les octets de la valeur d'entrée. Modifions notre code pour prendre l'entrée de l'utilisateur.

Scanner scanner = new Scanner(System.in);

System.out.print("Entrez un nombre : ");
long userInput = scanner.nextLong();

long reversedValue = Long.reverseBytes(userInput);

System.out.println("Valeur d'origine : " + userInput);
System.out.println("Valeur inversée : " + reversedValue);

Ce code invite l'utilisateur à entrer un nombre puis inverse les octets de la valeur d'entrée. Exécutez le code en utilisant la commande javac ReverseBytesDemo.java && java ReverseBytesDemo.

Gérer les exceptions

Nous pouvons gérer toute exception qui peut se produire lors de la saisie d'entrée utilisateur en utilisant un bloc try-catch.

Scanner scanner = new Scanner(System.in);

try {
    System.out.print("Entrez un nombre : ");
    long userInput = scanner.nextLong();

    long reversedValue = Long.reverseBytes(userInput);

    System.out.println("Valeur d'origine : " + userInput);
    System.out.println("Valeur inversée : " + reversedValue);
} catch (InputMismatchException e) {
    System.out.println("Entrée invalide. Veuillez entrer un nombre valide.");
}

Ce code utilise un bloc try-catch pour gérer toute exception qui peut se produire lorsque l'utilisateur entre une entrée invalide.

Tester une valeur négative

Essayons la méthode reverseBytes() avec un nombre négatif.

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

System.out.println("Valeur d'origine : " + a);
System.out.println("Valeur inversée : " + reversedValue);

Ce code produira la sortie suivante :

Valeur d'origine : -23
Valeur inversée : -1585267068834414593

Affichage de la représentation binaire

Nous pouvons également afficher la représentation binaire des valeurs d'origine et inversée en utilisant la méthode Long.toBinaryString().

System.out.println("Valeur d'origine en binaire : " + Long.toBinaryString(a));
System.out.println("Valeur inversée en binaire : " + Long.toBinaryString(reversedValue));

Ce code produira la sortie suivante :

Valeur d'origine en binaire : 1111111111111111111111111111111111111111111111111111111111101001
Valeur inversée en binaire : 1010101100000000000000000000000000000000000000000000000000000000

Remarque : la représentation binaire de la valeur inversée est la représentation binaire d'origine avec chaque groupe de 8 bits inversé.

Utilisation d'une fonction définie par l'utilisateur

Écrivons une fonction définie par l'utilisateur pour encapsuler la méthode 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("Entrez un nombre : ");
            long userInput = scanner.nextLong();

            long reversedValue = reverseBytes(userInput);

            System.out.println("Valeur d'origine : " + userInput);
            System.out.println("Valeur inversée : " + reversedValue);

            System.out.println("Valeur d'origine en binaire : " + Long.toBinaryString(userInput));
            System.out.println("Valeur inversée en binaire : " + Long.toBinaryString(reversedValue));

        } catch (InputMismatchException e) {
            System.out.println("Entrée invalide. Veuillez entrer un nombre valide.");
        }

    }
}

Exécution de la fonction définie par l'utilisateur

Maintenant que nous avons configuré notre fonction définie par l'utilisateur, nous pouvons la tester en exécutant à nouveau la méthode main() modifiée.

Scanner scanner = new Scanner(System.in);

try {
    System.out.print("Entrez un nombre : ");
    long userInput = scanner.nextLong();

    long reversedValue = reverseBytes(userInput);

    System.out.println("Valeur d'origine : " + userInput);
    System.out.println("Valeur inversée : " + reversedValue);

    System.out.println("Valeur d'origine en binaire : " + Long.toBinaryString(userInput));
    System.out.println("Valeur inversée en binaire : " + Long.toBinaryString(reversedValue));

} catch (InputMismatchException e) {
    System.out.println("Entrée invalide. Veuillez entrer un nombre valide.");
}

Exécutez le code en utilisant la commande javac ReverseBytesDemo.java && java ReverseBytesDemo.

Récapitulatif

Dans ce laboratoire, nous avons appris sur la méthode reverseBytes() de la classe Long en Java, qui est utilisée pour inverser l'ordre des octets de la représentation binaire à complément à deux de la valeur long passée. Nous avons également appris à utiliser l'entrée utilisateur, à gérer les exceptions, à afficher la représentation binaire et à encapsuler la méthode dans une fonction définie par l'utilisateur. En suivant ces étapes, vous devriez maintenant être en mesure d'utiliser la méthode reverseBytes() dans vos propres programmes Java.