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.

Menü