Java Long reverseBytes()-Methode

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir uns mit der reverseBytes()-Methode der Long-Klasse in Java beschäftigen, die dazu verwendet wird, die Reihenfolge der Bytes der binären Zweierkomplement-Darstellung des übergebenen long-Werts umzukehren.

Erstellen einer Java-Klasse

Zunächst müssen wir eine Java-Klasse im Verzeichnis ~/project erstellen. Nennen wir sie ReverseBytesDemo.java.

public class ReverseBytesDemo {

}

Fügen Sie die Hauptmethode hinzu

Als nächstes müssen wir der Klasse die main-Methode hinzufügen. Dies wird der Einstiegspunkt für unser Programm sein.

public static void main(String[] args) {

}

Verwenden der reverseBytes()-Methode

Nun verwenden wir die reverseBytes()-Methode, um die Bytes eines long-Werts umzukehren.

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

System.out.println("Originalwert: " + a);
System.out.println("Umgekehrter Wert: " + reversedValue);

Dieser Code wird folgendes ausgeben:

Originalwert: 342
Umgekehrter Wert: 6197234562238513152

Verwenden von Benutzereingaben

Wir können auch Benutzereingaben entgegennehmen und die Bytes des Eingabewerts umkehren. Ändern wir unseren Code, um Benutzereingaben entgegenzunehmen.

Scanner scanner = new Scanner(System.in);

System.out.print("Geben Sie eine Zahl ein: ");
long userInput = scanner.nextLong();

long reversedValue = Long.reverseBytes(userInput);

System.out.println("Originalwert: " + userInput);
System.out.println("Umgekehrter Wert: " + reversedValue);

Dieser Code fordert den Benutzer auf, eine Zahl einzugeben, und kehrt dann die Bytes des Eingabewerts um. Führen Sie den Code mit dem Befehl javac ReverseBytesDemo.java && java ReverseBytesDemo aus.

Behandlung von Ausnahmen

Wir können Ausnahmen, die bei der Benutzereingabe auftreten können, mit einem try-catch-Block behandeln.

Scanner scanner = new Scanner(System.in);

try {
    System.out.print("Geben Sie eine Zahl ein: ");
    long userInput = scanner.nextLong();

    long reversedValue = Long.reverseBytes(userInput);

    System.out.println("Originalwert: " + userInput);
    System.out.println("Umgekehrter Wert: " + reversedValue);
} catch (InputMismatchException e) {
    System.out.println("Ungültige Eingabe. Bitte geben Sie eine gültige Zahl ein.");
}

Dieser Code verwendet einen try-catch-Block, um Ausnahmen zu behandeln, die auftreten können, wenn der Benutzer eine ungültige Eingabe macht.

Testen eines negativen Werts

Lassen Sie uns die reverseBytes()-Methode mit einer negativen Zahl testen.

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

System.out.println("Originalwert: " + a);
System.out.println("Umgekehrter Wert: " + reversedValue);

Dieser Code wird folgendes ausgeben:

Originalwert: -23
Umgekehrter Wert: -1585267068834414593

Ausgabe der binären Darstellung

Wir können auch die binäre Darstellung der ursprünglichen und umgekehrten Werte mit der Long.toBinaryString()-Methode ausgeben.

System.out.println("Originalwert in binär: " + Long.toBinaryString(a));
System.out.println("Umgekehrter Wert in binär: " + Long.toBinaryString(reversedValue));

Dieser Code wird folgendes ausgeben:

Originalwert in binär: 1111111111111111111111111111111111111111111111111111111111101001
Umgekehrter Wert in binär: 1010101100000000000000000000000000000000000000000000000000000000

Beachten Sie, dass die binäre Darstellung des umgekehrten Werts die ursprüngliche binäre Darstellung ist, wobei jede Gruppe von 8 Bits umgekehrt ist.

Verwenden einer benutzerdefinierten Funktion

Schreiben wir eine benutzerdefinierte Funktion, um die reverseBytes()-Methode zu kapseln.

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("Geben Sie eine Zahl ein: ");
            long userInput = scanner.nextLong();

            long reversedValue = reverseBytes(userInput);

            System.out.println("Originalwert: " + userInput);
            System.out.println("Umgekehrter Wert: " + reversedValue);

            System.out.println("Originalwert in binär: " + Long.toBinaryString(userInput));
            System.out.println("Umgekehrter Wert in binär: " + Long.toBinaryString(reversedValue));

        } catch (InputMismatchException e) {
            System.out.println("Ungültige Eingabe. Bitte geben Sie eine gültige Zahl ein.");
        }

    }
}

Ausführen der benutzerdefinierten Funktion

Jetzt, nachdem wir unsere benutzerdefinierte Funktion eingerichtet haben, können wir sie testen, indem wir die modifizierte main()-Methode erneut ausführen.

Scanner scanner = new Scanner(System.in);

try {
    System.out.print("Geben Sie eine Zahl ein: ");
    long userInput = scanner.nextLong();

    long reversedValue = reverseBytes(userInput);

    System.out.println("Originalwert: " + userInput);
    System.out.println("Umgekehrter Wert: " + reversedValue);

    System.out.println("Originalwert in binär: " + Long.toBinaryString(userInput));
    System.out.println("Umgekehrter Wert in binär: " + Long.toBinaryString(reversedValue));

} catch (InputMismatchException e) {
    System.out.println("Ungültige Eingabe. Bitte geben Sie eine gültige Zahl ein.");
}

Führen Sie den Code mit dem Befehl javac ReverseBytesDemo.java && java ReverseBytesDemo aus.

Zusammenfassung

In diesem Lab haben wir uns mit der Java-reverseBytes()-Methode der Long-Klasse beschäftigt, die dazu verwendet wird, die Reihenfolge der Bytes der Zweierkomplement-Binärdarstellung des übergebenen long-Werts umzukehren. Wir haben auch gelernt, wie man Benutzereingaben verwendet, Ausnahmen behandelt, die binäre Darstellung ausgibt und die Methode in einer benutzerdefinierten Funktion kapselt. Wenn Sie diese Schritte befolgen, sollten Sie jetzt in der Lage sein, die reverseBytes()-Methode in Ihren eigenen Java-Programmen zu verwenden.