Bitwise Exclusive OR
Bitwise o Exclusive OU é verdadeiro se um ou outro bocados forem ajustados, mas não ambos. As seguintes mostras o resultado bitwise de um Exclusive OU nos números 23 e 12.
10111 (23)
01100 (12) Exclusive OR (XOR)
_____________________________
11011 (result = 27) |
O Exclusive OU tem algumas propriedades interessantes. Se você Exclusive OU um número por se, ele se ajustar a zero porque os zero remanescerão zero e esses não podem ambos ser ajustados assim que são ajustados a zero.
Em conseqüência disto, se você Exclusive OU um número com um outro número, então Exclusive OU o resultado com o outro número outra vez, o resultado for o número original. Você pode tentar este com os números usados no exemplo acima.
23 XOR 12 = 27
27 XOR 12 = 23
27 XOR 23 = 12
Em conseqüência disto, se você Exclusive OU um número com um outro número, então Exclusive OU
#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 Compliment
Bitwise elogiar é one operador do elogio que toggles o bocado sobre ou fora. Se for 1, estará ajustado a 0, se for 0 que estará ajustado a 1.
#include <stdio.h>
int main()
{
int num = 0xFFFF;
printf("The compliment of %X is %X\n", num, ~num);
return 0;
}
|