Cómo utilizar el bit a bit o exclusiva (xor) del operador en la programación c

XOR es el OR exclusivo operador en la programación C, otro operador lógico bit a bit. Y para responder a su pregunta más apremiante, se pronuncia XOR como “zor.” Es el nombre del mal perfecta de la mala ciencia ficción.

La operación XOR es un poco raro, pero tiene su encanto. En la operación XOR, los bits se comparan uno con el otro, al igual que el & y | operadores. Cuando dos bits son idénticos, XOR tose un 0. Cuando los dos bits son diferentes, XOR escupe un 1. Como de costumbre, un ejemplo de programa ayuda a explicar las cosas.

El operador XOR lenguaje C es el carácter de intercalación: ^. Lo puede encontrar pone en acción en la Línea 14 en Es Exclusiva OR.

ES EXCLUSIVA O

Char #include * binbin (int n) -INT main () {int a, x, r-a = 73-x = 170-printf (" % S% 3DN", Binbin (a), a) -printf ("^% S% 3DN", Binbin (x), x) -r = a ^ x-printf ("=% S% 3DN", Binbin (r), r) -Retorno (0) -} char * binbin (int n) {bin static char [9] -INT x-para (x = 0-XLT; 8-x ++) {bin [x] = n & 0x80? `1`: `0`-n lt; lt; = 1-} bin [x] = `` -Retorno (bin) -}

Ejercicio 1: Escriba el código fuente de Es Exclusiva OR en su editor. Generar y ejecutar para ver cómo la operación XOR afecta a los valores binarios.

Lo encantador de la operación XOR es que si se utiliza el mismo valor XOR sobre una variable en dos ocasiones, a recuperar el valor original de la variable.

ejercicio 2: Modificar el código fuente de Es Exclusiva OR de manera que la operación XOR una más lleva a cabo. Insertar estas tres declaraciones después de la línea 15:

printf ("^% S% 3DN", Binbin (x), x) -a = r ^ x-printf ("=% S% 3DN", Binbin (a), a) -

Generar y ejecutar. La salida es el siguiente:

 01001001 73 ^ 10101010 170 11100011 = 227 ^ 10101010 170 01001001 = 73

Utilizando el mismo valor XOR de 170 convierte el valor 73 en primer lugar en 227 y luego de nuevo a 73.

Debido XOR es el operador OR exclusivo, algunos programadores se refieren al nivel de bits estándar o como el operador inclusivo Operador OR.

Artículos Relacionados