logo

Operador XOR bit a bit de C++

  • El operador XOR bit a bit también se conoce como Exclusivo o
  • Se denota usando el '^'
  • Como su nombre lo indica, funciona en el nivel de bits de los operandos.
  • El operador Bitwise XOR pertenece a la categoría de operadores Bitwise.
  • En el operador OR exclusivo bit a bit (XOR), se requieren dos operandos, y estos dos operandos están separados por el símbolo XOR, es decir, '^'.
  • Para determinar la salida o resultado que surge después de aplicar el operador XOR en dos operandos, debemos seguir la tabla de verdad lógica del operador XOR.
  • La tabla de verdad XOR es la tabla matemática construida utilizando la lógica adecuada del operador XOR.
  • La lógica utilizada detrás del operador XOR es; siempre que se aplique la operación XOR en los dos diferente bits de dos operandos, entonces el resultado siempre producirá '1', y si la operación XOR se aplica en los dos mismo bits de dos operandos, entonces el resultado produce una salida '0'.

Tabla de verdad del operador OR exclusivo (XOR)

Sean dos operandos; el primero es A y el segundo es B, las combinaciones totales de entrada formadas por estos dos operandos serán 4. Usando la siguiente tabla de verdad XOR, determinaremos la salida correspondiente. El resultado será capturado en C, aquí C = A^B.

En esta tabla de verdad, tomamos entradas en forma de bits, es decir, 0 y 1, y la salida también se generará en forma de bits, es decir, 0 y 1.

Operador XOR bit a bit de C++

Aquí, en la tabla de verdad XOR anterior, observamos que cuando los valores de los operandos A y B son diferentes, es decir, ( 0, 1 ), ( 1, 0 ), el resultado que sale siempre será 1. Y cuando el Los valores de los operandos A y B son iguales, es decir, (0, 0), (1, 1), el resultado que sale siempre será 0.

De manera similar, de esta manera, podemos dibujar la tabla de verdad para Booleano valores -

Sean dos operandos; El primero es A y el segundo es B . El total de combinaciones de entrada formadas por estos dos operandos será 4. Utilizando la siguiente tabla de verdad XOR, determinaremos la salida correspondiente. El resultado será capturado en C, aquí C = A ^ B.

En esta tabla de verdad, tomamos datos en forma de valores de Verdad, es decir, Verdadero (T) y Falso (F). La salida también se generará en forma de valores verdaderos, es decir, T y F.

Operador XOR bit a bit de C++

Aquí, en la tabla de verdad XOR anterior, observamos que, cuando los valores de los operandos A y B son diferentes, es decir, ( F, T ), ( T, F ), el resultado siempre será T. Y cuando el Los valores de los operandos A y B son iguales, es decir, (F, F), (T, T), el resultado siempre será F.

De las tablas anteriores observamos que T (Verdadero) se denota por uno y F (Falso) se denota por 0.

Pasos para resolver cualquier problema dado -

  1. Los operandos dados en el problema siempre estarán en valor decimal.
  2. En primer lugar, necesitamos convertir los valores de los operandos en binario
  3. Después de convertir los valores de los operandos en números binarios, coloque ambos operandos uno encima del otro.
  4. Recuerde que antes de aplicarles la operación OR exclusiva (XOR), compruebe la número de dígitos en ellos.
  5. Si el recuento de dígitos no coincide, los 0 adicionales en el extremo izquierdo del operando pequeño equilibran el recuento de dígitos.
  6. Finalmente, con la ayuda de la tabla de verdad anterior, aplique la operación XOR en los operandos uno por uno, tomando un bit a la vez para aplicar la operación XOR.
  7. Por fin, el resultado se produce en forma de salida.
  8. La salida que se produce estará en forma binaria, ahora convierta la forma binaria a decimal y anote el valor del resultado.

Ejecución de la operación Bitwise OR exclusiva (XOR) en C++

Comprendamos con más detalle la ejecución de la operación XOR en C++ con la ayuda de ejemplos:

Ejemplo 1: encontrar el OR exclusivo de valores enteros; 10 y 14. Además, explícalo y escribe el código de ejecución en C++.

Solución: Consideremos dos variables, 'a' y 'b', para almacenar los dos operandos correspondientes dados en la pregunta anterior, es decir, 10 y 14.

Aquí, a = 10 y b = 14.

Seguiremos los pasos a continuación para descubrir el O exclusivo de los dos operandos dados.

  1. Sabemos que 10 y 14 están en forma decimal y, para aplicar la operación XOR bit a bit, es necesario convertirla a forma binaria.
  2. Forma binaria 'a', es decir, 10 es ' 1010 ' y la forma binaria de 'b', es decir, 14 es ' 1110 '.
  3. Aquí observamos que el recuento de dígitos binarios presentes en a es cuatro y el recuento de dígitos binarios presentes en b también es 4; por lo tanto, la cantidad de dígitos binarios presentes en ambas variables es la misma y ya está equilibrada, no necesitamos agregar más ceros para equilibrarla.
  4. Ahora, colocando los dígitos binarios presentes en 'b' hasta los dígitos binarios presentes en 'a'.
  5. Finalmente, aplique la operación XOR uno por uno en los bits correspondientes y anote la salida.
  6. La salida generada finalmente estará en forma binaria, como la pregunta anterior dada en forma decimal, por lo que necesitamos convertir el resultado en forma decimal.

Explicación:

a = 10 (en forma decimal)

b = 14 (en forma decimal)

Ahora, para un XOR b, necesitamos convertir a y b en forma binaria:

a = 1010 (en forma binaria)

b = 1110 (en forma binaria)

mesas en latex

Ahora, aplicando la operación XOR en a y b -

a = 1010

segundo = 1110

---------------

a^b = 0100 (En forma binaria)

El resultado de a ^ b es 0100, que está en forma binaria.

Ahora convirtiendo el resultado a forma decimal, que es 4.

10 ^ 14 = 4

NOTA: Al utilizar la tabla de verdad XOR anterior, se genera la salida de los bits correspondientes.

Ahora aplicaremos la operación XOR bit a bit en 10 y 14 en lenguaje C++ y obtendremos el resultado, es decir, 4.

Código C++ para el ejemplo anterior:

 //************************ C++ Code ****************************** #include using namespace std; int main () { int a, b, c ; // Initializing integer variables to store data values cout <' << endl ; cout <> a ; // taking a as input from user cout &lt;&gt; b ; // taking b as input from user c = a ^ b ; // storing XOR result of a and b in c cout &lt;&lt; &apos;Applying XOR operation on a and b: &apos;&lt;&lt; endl ; cout &lt;&lt; &apos;a ^ b = &apos; &lt;&lt; c &lt;&lt; endl ; // Printing the output } </'>

Producción

Operador XOR bit a bit de C++

Ejemplo 2: Encuentre el O exclusivo de valores enteros; 3 y 15. Además, explícalo y escribe el código de ejecución en C++.

Solución: Consideremos dos variables, 'a' y 'b', para almacenar los dos operandos correspondientes dados en la pregunta anterior, es decir, 3 y 15.

Aquí, a = 3 y b = 15.

Seguiremos los pasos a continuación para descubrir el O exclusivo de los dos operandos dados.

  1. Sabemos que 3 y 15 están en forma decimal y, para aplicar la operación XOR bit a bit, es necesario convertirla a forma binaria.
  2. Forma binaria 'a', es decir, 3 es '11' y la forma binaria de 'b', es decir, 15 es '1111'.
  3. Aquí observaremos que el recuento de dígitos binarios presentes en a es dos y el recuento de dígitos binarios presentes en b es cuatro; por lo tanto, el número de dígitos binarios presentes en ambas variables no es el mismo. Por lo tanto, desequilibrado, necesitamos agregar más números de ceros en el lado izquierdo del número binario inferior, es decir, a, que es ' 11' , para equilibrarlo.
  4. Después del equilibrio, el valor de a es ' 0011 ' , y b es ' 1111 '.
  5. Ahora, colocando los dígitos binarios presentes en 'b' hasta los dígitos binarios presentes en 'a'.
  6. Finalmente, aplique la operación XOR uno por uno en los bits correspondientes y anote la salida.
  7. La salida generada al final estará en forma binaria, como la pregunta anterior dada en forma decimal, por lo que necesitamos convertir el resultado en forma decimal.

Explicación:

función de subcadena java

a = 3 (en forma decimal)

b = 15 (en forma decimal)

Ahora, para un XOR b, necesitamos convertir a y b en forma binaria:

a = 0011 (en forma binaria)

b = 1111 (en forma binaria)

Ahora, aplicando la operación XOR en a y b -

a = 0011

segundo = 1111

---------------

a^b = 1100 (En forma binaria)

El resultado de a ^ b es 1100, que está en forma binaria.

Ahora convirtiendo el resultado a forma decimal, que es 12.

3 ^ 15 = 12

NOTA: Al utilizar la tabla de verdad XOR anterior, se genera la salida de los bits correspondientes.

Ahora aplicaremos la operación XOR bit a bit en 3 y 15 en lenguaje C++ y obtendremos el resultado, es decir, 12.

Código C++ para el ejemplo anterior:

 //************************ C++ Code ****************************** #include using namespace std; int main () { int a, b, c ; // Initializing integer variables to store data values cout <' << endl ; cout <> a ; // taking a as input from user cout &lt;&gt; b ; // taking b as input from user c = a ^ b ; // storing XOR result of a and b in c cout &lt;&lt; &apos;Applying XOR operation on a and b: &apos;&lt;&lt; endl ; cout &lt;&lt; &apos;a ^ b = &apos; &lt;&lt; c &lt;&lt; endl ; // Printing the output } </'>

Producción

Operador XOR bit a bit de C++