Logisches XOR in C++

Suraj P 12 Oktober 2023
  1. Logisches XOR in C++
  2. Verwendung von logisches XOR mit booleschen Operanden in C++
  3. Verwendung von logisches XOR mit nicht-booleschen Operanden in C++
  4. Verwendung von logisches XOR mit komplexen Ausdrücken in C++
  5. Implementieren Sie das logische XOR mit der mod 2-Operation in C++
Logisches XOR in C++

In diesem Tutorial lernen wir, wie man logisches XOR in C++ implementiert.

Logisches XOR in C++

In C++ haben wir zwar logisches ODER (||) und logisches UND (&&), aber kein logisches XOR. Mit den vorhandenen Operatoren können wir die Funktionalität des logischen XOR nachahmen.

Der logische XOR-Operator ist in C++ nicht vorhanden, da er einfach ein äquivalenter ungleich-Operator mit booleschen Werten ist.

Eine allgemeine Syntax wäre also: A und B sind boolesche Werte.

A logical XOR B is equivalent to A!=B

Wenn wir uns die Wahrheitstabelle von XOR ansehen, wissen wir, dass XOR nichts anderes als ein Ungleichheits-Checker für boolesche Werte ist. Wir können also den Operator ungleich (!=) verwenden, um ein logisches XOR nachzuahmen.

Verwendung von logisches XOR mit booleschen Operanden in C++

#include <bits/stdc++.h>
using namespace std;

int main() {
  bool a = 0;
  bool b = 1;

  if (a != b) {
    cout << "Yes\n";
  }

  else
    cout << "NO\n";
}

Ausgabe:

Yes

Verwendung von logisches XOR mit nicht-booleschen Operanden in C++

Hier müssen wir Anpassungen vornehmen. Da die Werte nicht boolesch sind, müssen wir sie zuerst in boolesche Werte umwandeln und dann den Operator ungleich (!=) anwenden.

#include <bits/stdc++.h>
using namespace std;

int main() {
  int a = 10;
  int b = 20;

  if ((!a) != (!b)) {
    cout << "Yes\n";
  } else
    cout << "NO\n";
}

Ausgabe:

NO

Wir verwendeten ! hier, um die Werte in boolesche Werte umzuwandeln und zu negieren, sodass zwei ungleiche positive ganze Zahlen (true) als false gewertet würden.

Verwendung von logisches XOR mit komplexen Ausdrücken in C++

Wir haben verstanden, dass wir zuerst die Werte in boolesche Werte umwandeln und dann die logische XOR-Operation ausführen müssen. Wir erweitern diese Idee, um logische XOR-Operationen für komplexe Operationen durchzuführen.

#include <bits/stdc++.h>
using namespace std;

int main() {
  int a = 10;
  int b = 20;

  int x = 50;
  int y = 100;

  if (!(a < b) != !(x >= y)) {
    cout << "Yes\n";
  } else
    cout << "NO";
}

Wir können sehen, dass (a<b) Logisches XOR (x>=y) geschrieben wird als !(a < b) != !(x >= y).

Ausgabe:

Yes

Implementieren Sie das logische XOR mit der mod 2-Operation in C++

Eine weitere Möglichkeit, logisches XOR zwischen zwei booleschen Werten zu implementieren, ist die Verwendung der Modulo-2-Operation. A logical XOR B kann geschrieben werden als (A+B) % mod 2.

#include <bits/stdc++.h>
using namespace std;

bool XOR(bool x, bool y) { return (x + y) % 2; }

int main() {
  cout << "XOR(0, 0): " << XOR(0, 0) << endl;
  cout << "XOR(1, 0): " << XOR(1, 0) << endl;
}

Ausgabe:

XOR(0, 0): 0
XOR(1, 0): 1
Autor: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

Verwandter Artikel - C++ Operator