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



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 exclusivaB
1      0      1
1      1      0
0      1      1
0      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++


¡Ayúdanos a seguir creciendo, comparte en tus Redes Sociales!

Siguiente
« Prev Post
Anterior
Next Post »

1 comentarios:

Click here for comentarios
Anónimo
admin
13 de julio de 2015, 23:55 ×

¿y cómo debería hacerse para aplicar el operador XOR con dos archivos cualesquiera (de video, imagen, texto, etc) de tal forma que el operador lo haga bit por bit comenzando por el primero hasta el último del archivo de menor tamaño...?

Congrats bro Anónimo you got PERTAMAX...! hehehehe...
Reply
avatar