Logisches XOR in C++
-
Logisches
XOR
in C++ -
Verwendung von logisches
XOR
mit booleschen Operanden in C++ -
Verwendung von logisches
XOR
mit nicht-booleschen Operanden in C++ -
Verwendung von logisches
XOR
mit komplexen Ausdrücken in C++ -
Implementieren Sie das logische
XOR
mit dermod 2
-Operation 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