Bitweise XOR-Operator in Java

JavaJavaBeginner
Jetzt üben

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

Einführung

Der XOR-Operator ist ein bitweiser Operator, der in Java verwendet wird, um einzelne Bits der Operanden zu vergleichen. In Java wird der XOR-Operator durch das Caret-Zeichen (^) dargestellt. Er wird verwendet, um zwei Bits zu vergleichen und gibt true zurück, wenn und nur wenn die beiden zu vergleichenden Bits unterschiedlich sind.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/operators("Operators") java/BasicSyntaxGroup -.-> java/booleans("Booleans") java/BasicSyntaxGroup -.-> java/variables("Variables") java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/BasicSyntaxGroup -.-> java/output("Output") java/StringManipulationGroup -.-> java/strings("Strings") java/DataStructuresGroup -.-> java/arrays("Arrays") subgraph Lab Skills java/data_types -.-> lab-117997{{"Bitweise XOR-Operator in Java"}} java/operators -.-> lab-117997{{"Bitweise XOR-Operator in Java"}} java/booleans -.-> lab-117997{{"Bitweise XOR-Operator in Java"}} java/variables -.-> lab-117997{{"Bitweise XOR-Operator in Java"}} java/for_loop -.-> lab-117997{{"Bitweise XOR-Operator in Java"}} java/output -.-> lab-117997{{"Bitweise XOR-Operator in Java"}} java/strings -.-> lab-117997{{"Bitweise XOR-Operator in Java"}} java/arrays -.-> lab-117997{{"Bitweise XOR-Operator in Java"}} end

Verwendung von XOR mit primitiven Datentypen

In Java kann der XOR-Operator mit jedem primitiven Datentyp verwendet werden. Lasst uns die Wahrheitstafel von XOR mit primitiven Datentypen verifizieren.

public class XOR {
    public static void main(String[] args) {
        System.out.println("0 XOR 0: " + (0 ^ 0)); // Ausgabe: 0
        System.out.println("0 XOR 1: " + (0 ^ 1)); // Ausgabe: 1
        System.out.println("1 XOR 0: " + (1 ^ 0)); // Ausgabe: 1
        System.out.print("1 XOR 1: " + (1 ^ 1)); // Ausgabe: 0
    }
}

Um den Code auszuführen, speichern Sie ihn in die Datei ~/project/XOR.java und führen Sie die folgenden Befehle im Terminal aus:

cd ~/project/
javac XOR.java
java XOR

Verwendung von XOR mit booleschen Werten

XOR kann auch mit booleschen Werten arbeiten. Lasst uns die Tabelle mit booleschem true und false neu erstellen.

public class XOR {
    public static void main(String[] args) {
        System.out.println("False XOR False: " + (false ^ false)); // Ausgabe: false
        System.out.println("False XOR True: " + (false ^ true)); // Ausgabe: true
        System.out.println("True XOR False: " + (true ^ false)); // Ausgabe: true
        System.out.print("True XOR True: " + (true ^ true)); // Ausgabe: false
    }
}

Um den Code auszuführen, speichern Sie ihn in die Datei ~/project/XOR.java und führen Sie die folgenden Befehle im Terminal aus:

cd ~/project/
javac XOR.java
java XOR

Verwendung von XOR mit ganzzahligen Werten

Der XOR-Operator kann auf ganze Zahlen verwendet werden, die nicht 0 oder 1 sind. Der XOR-Operator wird auf die einzelnen Bits des binären Äquivalents der ganzen Zahl angewendet.

public class XOR {
    public static void main(String[] args) {
        System.out.println("9 XOR 15: " + (9 ^ 15)); // Ausgabe: 6
        System.out.println("1 XOR 20: " + (1 ^ 20)); // Ausgabe: 21
        System.out.println("7 XOR 7: " + (7 ^ 7)); // Ausgabe: 0
        System.out.print("32 XOR 0: " + (32 ^ 0)); // Ausgabe: 32
    }
}

Um den Code auszuführen, speichern Sie ihn in die Datei ~/project/XOR.java und führen Sie die folgenden Befehle im Terminal aus:

cd ~/project/
javac XOR.java
java XOR

Finden der nicht wiederkehrenden ganzen Zahl mit XOR

Der XOR-Operator kann auch verwendet werden, um die nicht wiederkehrende ganze Zahl in einem Array von ganzen Zahlen zu finden.

public class XOR {
    public static int nonRepeatingInteger(int[] numArray) {
        int xor = numArray[0];
        for (int i = 1; i < numArray.length; i++)
            xor = xor ^ numArray[i];
        return xor;
    }

    public static void main(String[] args) {
        int[] arr = {10, 12, 5, 6, 10, 6, 12};
        int nonRepeatingNum = nonRepeatingInteger(arr);
        System.out.print("The non-repeating integer is: " + nonRepeatingNum);
    }
}

Um den Code auszuführen, speichern Sie ihn in die Datei ~/project/XOR.java und führen Sie die folgenden Befehle im Terminal aus:

cd ~/project/
javac XOR.java
java XOR

Die Ausgabe wird sein:

The non-repeating integer is: 5

Finden des XOR von binären Zeichenketten

XOR funktioniert nur für primitive Datentypen. Wir können jedoch unsere eigene Methode schreiben, die den XOR-Operator und zusätzliche Logik verwendet, um das XOR von zwei binären Zeichenketten zu finden.

public class XOR {
    public static String binaryStringXOR(String binStr1, String binStr2) {
        String xor = "";
        // Fügen von Nullen hinzu, um die beiden Zeichenketten gleich lang zu machen
        if (binStr1.length() > binStr2.length()) {
            String temp = "";
            for (int i = 0; i < binStr1.length() - binStr2.length(); i++)
                temp += "0";
            binStr2 = temp + binStr2;
        } else if (binStr2.length() > binStr1.length()) {
            String temp = "";
            for (int i = 0; i < binStr2.length() - binStr1.length(); i++)
                temp += "0";
            binStr1 = temp + binStr1;
        }
        for (int i = 0; i < binStr1.length(); i++) {
            xor += binStr1.charAt(i) ^ binStr2.charAt(i);
        }
        return xor;
    }

    public static void main(String[] args) {
        System.out.println("1001 XOR 1111: " + binaryStringXOR("1001", "1111"));
        System.out.println("1 XOR 10100: " + binaryStringXOR("1", "10100"));
        System.out.println("0111 XOR 1: " + binaryStringXOR("0111", "1"));
        System.out.print("100000 XOR 0: " + binaryStringXOR("100000", "0"));
    }
}

Um den Code auszuführen, speichern Sie ihn in die Datei ~/project/XOR.java und führen Sie die folgenden Befehle im Terminal aus:

cd ~/project/
javac XOR.java
java XOR

Die Ausgabe wird sein:

1001 XOR 1111: 0110
1 XOR 10100: 10101
0111 XOR 1: 0110
100000 XOR 0: 100000

Zusammenfassung

In diesem Lab haben wir die grundlegenden Konzepte der XOR-Operation in Java kennengelernt. Wir haben gezeigt, wie die XOR-Operatoren auf boolesche und ganzzahlige Datentypen verwendet werden können. Wir haben auch eine Methode implementiert, um das XOR von zwei binären Zeichenketten zu finden, und eine Methode, um die nicht wiederkehrende ganze Zahl in einem Array von ganzen Zahlen zu finden.