Bitwise exclusiva O
Bitwise la exclusiva O es verdad si se fijan cualquier pedacitos, pero no ambas. Las demostraciones siguientes el resultado bitwise de una exclusiva O en los números 23 y 12.
10111 (23)
01100 (12) Exclusive OR (XOR)
_____________________________
11011 (result = 27) |
La exclusiva O tiene algunas características interesantes. Si exclusiva O un número por sí mismo, él te fijas a cero pues los ceros seguirán siendo cero y los no se pueden ambos fijar así que se fijan a cero.
Como resultado de esto, si exclusiva O un número con otro número, entonces exclusiva O el resultado con el otro número otra vez, el resultado eres el número original. Puedes intentar esto con los números usados en el ejemplo antedicho.
23 XOR 12 = 27
27 XOR 12 = 23
27 XOR 23 = 12
Esta característica se puede utilizar para el cifrado. El programa siguiente utiliza una llave del cifrado de 23 para ilustrar la característica en un número incorporado por el usuario.
#include <stdio.h>
int main()
{
int num, key = 23;
printf("Enter a number: ");
scanf("%d", &num);
num ^= key;
printf("Exclusive OR with %d gives %d\n", key, num);
num ^= key;
printf("Exclusive OR with %d gives %d\n", key, num);
return 0;
}
Bitwise elogio
La felicitación es bitwise un su operador del elogio que acciona la palanca del pedacito encendido o apagado. Si son 1, serán fijadas a 0, si son 0 que serán fijadas a 1.
#include <stdio.h>
int main()
{
int num = 0xFFFF;
printf("The compliment of %X is %X\n", num, ~num);
return 0;
}
|