Revista Informática

Operador xor binario en c++ - Disyunción exclusiva de dos números decimales

Publicado el 10 marzo 2015 por Francves

C++ operadores logicos
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.
ADisyuncion exclusivaB1      0      11      1      00      1      10      0      0
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:
  1. Encuentra desafíos de programación en HackerRank
  2. 22 guías y libros gratis para aprender a programar en c++
  3. Valor Absoluto de un número en c++
  4. Operaciones básicas para vectores de objetos en c++ (Acceso, Inserción, Tamaño y eliminación)
  5. Algoritmo - Factorial de un número en C++


Volver a la Portada de Logo Paperblog