Cómo utilizar el operador de bits exclusivo o (xor) en la programación c
XOR es el exclusivo operador OR en la programación C, otro operador lógico bit a bit. Y para responder a su pregunta más apremiante, se pronuncia como XOR ". Zor " Es el nombre del mal perfecta 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 siempre, un ejemplo de programa ayuda a explicar las cosas.
El operador C XOR lenguaje es el carácter de intercalación: ^. Lo puedes encontrar puesto en acción en la Línea 14 en Es Exclusiva OR.
ES EXCLUSIVA Oregón
Char #include * Binbin (int n) -INT main () {int a, x, ra = 73 x = 170-printf ("% s% 3d n", Binbin (a), a) -printf (" ^% s% 3d n ", Binbin (x), x) r = a ^ x-printf (" =% s% 3d n ", Binbin (r), r) -Retorno (0) -} carbón * Binbin (int n) {bin static char [9] -INT x-for (x = 0-xlt; 8-x ++) {bin [x] = n 0x80? '1': '0'-n lt; lt; = 1-} bin [x] = ' 0' de retención (bin) -}
Ejercicio 1: Escriba el código fuente de Es Exclusiva OR en su editor. Genere y ejecute para ver cómo la operación XOR afecta a valores binarios.
La cosa encantadora sobre la operación XOR es que si se utiliza el mismo valor XOR sobre una variable dos veces, te devuelven el valor original de la variable.
Ejercicio 2: Modificar el código fuente de Es Exclusiva OR de manera que la operación una más XOR se lleva a cabo. Inserte estas tres declaraciones después de la Línea 15:
printf ("^% s% 3d n", Binbin (x), x) -a = r ^ x-printf ("=% s% 3d n", Binbin (a), a) -
Genere y ejecute. La salida es la siguiente:
01001001 73 ^ 170 = 10.101.010 11.100.011 10.101.010 227 ^ 170 = 01001001 73
Utilizando el mismo valor XOR de 170 convierte el valor 73 por primera vez en 227 y luego de vuelta a 73.
Debido XOR es el exclusivo operador OR, algunos programadores se refieren al nivel de bits estándar o el operador como el inclusive Operador OR.