Wie die bitweise Exklusiv-ODER (XOR) Operator in C-Programmierung zu verwenden
XOR ist die Exklusiv-ODER-Operator in C-Programmierung, noch eine weitere bitweise logische Operator. Und Ihre dringendsten Frage zu beantworten, spricht man XOR wie # 147-Zor. # 148- Es ist der perfekte böse Namen von schlechten Science-Fiction.
Die XOR-Operation ist irgendwie komisch, aber es hat seinen Charme. In der XOR-Operation werden Bits miteinander verglichen, ebenso wie die und | Betreiber. Wenn zwei Bits identisch sind, eine 0 spuckt XOR Wenn die beiden Bits unterschiedlich sind, XOR spuckt eine 1. Wie üblich, hilft ein Programm Beispiel Dinge zu erklären.
Die Sprache C XOR-Operator ist das Einschaltungszeichen: ^. Sie können es in die Tat finden setzen auf der Linie 14 in Es Exclusive ist OR.
IT'S EXCLUSIVE ODER
#include char * 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) -return (0) -} char * binbin (int n) {static char bin [9] -Int x-for (x = 0-XLT; 8-x ++) {bin [x] = n 0x80? '1': '0'-n lt; lt; = 1} bin [x] = ' 0'-return (bin) -}
Übung 1: Geben Sie den Quellcode aus Es ist Exclusive OR in Ihren Editor. Erstellen und ausführen, um zu sehen, wie die XOR-Verknüpfung binäre Werte beeinflusst.
Das charmante, was über die XOR-Operation ist, dass, wenn Sie die gleiche XOR Wert auf eine Variable zweimal verwenden, können Sie den Variablen ursprünglichen Wert zurück.
Übung 2: Ändern Sie den Quellcode aus Es ist Exclusive OR so dass eine weitere XOR-Operation stattfindet. Legen Sie diese drei Aussagen nach Zeile 15:
printf ( "% s% ^ 3d n", binbin (x), x) -a = r ^ x-printf ( "% s =% 3d n", binbin (a), a) -
Erstellen und ausführen. Die Ausgabe sieht wie folgt aus:
01001001 73 ^ 10101010 170 = 11.100.011 227 ^ 10101010 170 = 01001001 73
Unter Verwendung des gleichen XOR-Wert von 170 dreht den Wert 73 zuerst in 227 und dann wieder auf 73.
Da XOR der Exklusiv-ODER-Operator ist, beziehen sich einige Programmierer auf die Standard bitweisen OR-Operator als die inklusive OR-Operator.