Au niveau du bit exclusivité OU
Au niveau du bit l'exclusivité OU est vraie si l'un ou l'autre peu est placé, mais pas tous deux. Les expositions suivantes le résultat au niveau du bit d'une exclusivité OU sur les numéros 23 et 12.
10111 (23)
01100 (12) Exclusive OR (XOR)
_____________________________
11011 (result = 27) |
L'exclusivité OU a quelques propriétés intéressantes. Si vous exclusivité OU un nombre par lui-même, il se place à zéro car les zéros demeureront zéro et ceux ne peuvent pas tous les deux être placés ainsi sont placés à zéro.
En raison de ceci, si vous exclusivité OU un nombre avec un autre nombre, puis exclusivité OU le résultat avec l'autre nombre encore, le résultat est le nombre original. Vous pouvez essayer ceci avec les nombres utilisés dans l'exemple ci-dessus.
23 XOR 12 = 27
27 XOR 12 = 23
27 XOR 23 = 12
Ce dispositif peut être employé pour le chiffrage. Le programme suivant emploie une clef de chiffrage de 23 pour illustrer la propriété sur un nombre écrit par l'utilisateur.
#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;
}
Au niveau du bit compliment
Au niveau du bit le complimenter est un opérateur à un de compliment qui bascule le peu dessus ou au loin. S'il est 1, il sera placé à 0, s'il est 0 qu'il sera placé à 1.
#include <stdio.h>
int main()
{
int num = 0xFFFF;
printf("The compliment of %X is %X\n", num, ~num);
return 0;
}
|