En matemática discreta se manejan conceptos como la conjunción, disyunción, disyunción exclusiva y la negación. En esta entrada nos centraremos en la disyunción exclusiva y como podemos aplicarla programando en c++ con el operador XOR binario (a ^ b).
Inicialmente recordemos un poco sobre la tabla de verdad de este conectivo lógico.
A
Esto es: Cuando ambas proposiciones son verdaderas o ambas son falsas, entonces la disyunción exclusiva es falsa. Cuando una de ellas es verdaderas y la otra es falsa, entonces la disyunción exclusiva es verdadera. A nivel de bits, si un bit toma el valor de 1 y el otro 0 entonces el resultado del operador xor (a ^ b) es 1, de lo contrario será 0.
Desarrollemos un programa en c++ que lea dos números decimales a ^ b, aplicaremos el operador xor en dichos números y su resultado que será otro número decimal lo mostraremos por pantalla.
#include <iostream>
using namespace std;
int main(){
int a,b, c;
cin >> a >> b;
c = a ^ b;
cout << c;
}
Entrada de prueba:
15
10
Salida:
5
¿Como se realiza la operación? El número 15 en binario es 1111 y el 10 es 1010. Su disyunción exclusiva se obtiene comparando bit con bit.
Te podría interesar: De sistema decimal a sistema binario en c++ y Java
1111
1010
------
0101
Donde 0101 es igual a:
0101
2^2 + 2^0 = 5
También te podría interesar:
- Encuentra desafíos de programación en HackerRank
- 22 guías y libros gratis para aprender a programar en c++
- Valor Absoluto de un número en c++
- Operaciones básicas para vectores de objetos en c++ (Acceso, Inserción, Tamaño y eliminación)
- Algoritmo - Factorial de un número en C++