XOR lógico en C++
-
XORlógico en C++ -
Usar
XORlógico con operandos booleanos en C++ -
Usar
XORlógico con operandos no booleanos en C++ -
Usar
XORlógico con expresiones complejas en C++ -
Implemente el
XORlógico utilizando la operaciónmod 2en C++
Aprenderemos en este tutorial cómo implementar XOR lógico en C++.
XOR lógico en C++
En C++, aunque tenemos OR lógico (||) y AND lógico (&&), no tenemos XOR lógico. Utilizando los operadores existentes, podemos imitar la funcionalidad de XOR lógico.
El operador lógico XOR no está presente en C++ porque es simplemente un operador equivalente, no igual a con valores booleanos.
Entonces, una sintaxis general sería: A y B son valores booleanos.
A logical XOR B is equivalent to A!=B
Si miramos la tabla de verdad de XOR, sabemos que XOR no es más que un verificador de desigualdad para valores booleanos. Así que podemos usar el operador no igual a (!=) para imitar el XOR lógico.
Usar XOR lógico con operandos booleanos en 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";
}
Producción :
Yes
Usar XOR lógico con operandos no booleanos en C++
Aquí tenemos que hacer modificaciones. Como los valores no son booleanos, primero tenemos que convertirlos a booleanos y luego aplicar el operador no igual a (!=).
#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";
}
Producción :
NO
Nosotros usamos ! aquí para convertir los valores a booleanos y negarlos para que dos enteros positivos desiguales (true) se evalúen como false.
Usar XOR lógico con expresiones complejas en C++
Hemos entendido que primero necesitamos convertir los valores a booleanos y luego realizar la operación lógica XOR. Extendemos esta idea para realizar operaciones lógicas XOR para operaciones complejas.
#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";
}
Podemos ver que (a<b) XOR lógico (x>=y) se escribe como !(a < b) != !(x >= y).
Producción :
Yes
Implemente el XOR lógico utilizando la operación mod 2 en C++
Otra forma de implementar el XOR lógico entre dos valores booleanos es mediante el uso de la operación de módulo 2. Un XOR B lógico se puede escribir como (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;
}
Producción :
XOR(0, 0): 0
XOR(1, 0): 1
Artículo relacionado - C++ Operator
- Implemente la instrucción if con múltiples condiciones en C++
- Operador de flecha vs. Operador de puntos en C++
- Operador de negación unaria en C++
- Precedencia de operadores y asociatividad en C++
- Sobrecargue el operador de soporte en C++
- Sobrecargar operadores de inserción de flujo de entrada y salida en C++
