Bitweise Exklusives ODER
Das bitweise Exklusive ODER ist zutreffend, wenn jede Spitzen eingestellt werden, aber nicht beide. Die folgenden Erscheinen die Auswirkung eines bitweise Exklusiven ODER auf die Nr. 23 und 12.
10111 (23)
01100 (12) Exclusive OR (XOR)
_____________________________
11011 (result = 27) |
Das Exklusive ODER hat einige interessante Eigenschaften. Wenn du Exklusives ODER eine Zahl, es selbst auf Null dich stellst, da die null null bleiben und die können, nicht beide eingestellt werden also werden auf Null gestellt.
Resultierend aus diesem wenn du Exklusives ODER eine Zahl mit einer anderen Zahl, dann Exklusives ODER das Resultat mit der anderen Zahl wieder, das Resultat die ursprüngliche Zahl bist. Du kannst dieses mit den Zahlen versuchen, die im oben genannten Beispiel verwendet werden.
23 XOR 12 = 27
27 XOR 12 = 23
27 XOR 23 = 12
Diese Funktion kann für Verschlüsselung benutzt werden. Das folgende Programm verwendet einen Verschlüsselungschlüssel von 23, um die Eigenschaft auf einer Zahl zu veranschaulichen, die vom Benutzer eingetragen ist.
#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;
}
Bitweise Kompliment
Bitweise beglückwünschen ist ein Einerkomplimentoperator, der die Spitze an oder weg umschält. Wenn es 1 ist, wird es bis 0 eingestellt, wenn es 0 ist, das es bis 1 eingestellt wird.
#include <stdio.h>
int main()
{
int num = 0xFFFF;
printf("The compliment of %X is %X\n", num, ~num);
return 0;
}
|