XOR lógico en C++
-
XOR
lógico en C++ -
Usar
XOR
lógico con operandos booleanos en C++ -
Usar
XOR
lógico con operandos no booleanos en C++ -
Usar
XOR
lógico con expresiones complejas en C++ -
Implemente el
XOR
lógico utilizando la operaciónmod 2
en 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++