Aufbauend auf den logischen Verknüpfungsoperatoren können binäre Zahlen bitweise miteinander verknüpft werden. Diese Seite fasst in Kürze zusammen, wie dies für die Operatoren AND
, OR
, NOT
und XOR
funktioniert. Eine ausführlichere Erklärung gibt es auf der Wikipedia-Seite Bitweiser Operator.
Bei den logischen Verknüpfungen AND
und OR
werden zwei einzelne Wahrheitswerte verknüpft.
Mit Hilfe von bitweisen Operatoren lassen sich ganze Bitfolgen miteinander verknüpfen. Basis dafür ist wieder eine Wahrheitstabelle.
Bei der Bitweisen AND
-Verknüpfung werden zwei binäre Zeichenfolgen gleicher Länge miteinander verknüpft. Bei Bedarf wird die kürzere der beiden mit führenden Nullen aufgefüllt. Hier ein Beispiel zur Erklärung. Die Wahrheitstabelle rechts dient als Gedächtnisstütze
Es sollen die beiden Binärzahlen 1011 1100
und 1001 0110
mittels AND
verknüpft werden.
Wahrheitstabelle für AND 1011 1100 1 1 | 1 AND 1001 0110 1 0 | 0 -------------- 0 1 | 0 1001 0100 0 0 | 0
In diesem Beispiel wurden jeweils die zwei gleichwertigen Stellen der beiden zu verknüpfenden Zahlen anhand der nebenstehenden Wahrheitstabelle verknüpft und das Ergebnis bitweise daruntergeschrieben. Schrittweise bedeutet das:
1 AND 1 = 1
0 AND 0 = 0
1 AND 0 = 0
1 AND 1 = 1
1 AND 0 = 0
1 AND 1 = 1
0 AND 1 = 0
0 AND 0 = 0
Auch beim bitweisen OR
werden zwei binäre Zeichenfolgen miteinander verknüpft. Bei Bedarf wird ebenso die Länge durch führende Nullen angepasst.
Als Beispiel nehmen wir die gleichen Zahlen wie vorhin, verändern aber die Operation zu OR
:
Wahrheitstabelle für OR 1011 1100 1 1 | 1 OR 1001 0110 1 0 | 1 ------------- 0 1 | 1 1011 1110 0 0 | 0
Wie man sieht, steht jetzt an jeder Ergebnisstelle eine 1
, bei der entweder in der ersten oder in der zweiten Zahl eine 1
stand.
Beim bitweisen NOT
wird ebenso wie bei dem logischen Operator nur ein Eingabewert benötigt. Wir nehmen deshalb für das Beispiel die erste der beiden oben gezeigten Zahlen:
Wahrheitstabelle für NOT NOT 1011 1100 1 | 0 -------------- 0 | 1 0100 0011
Bei der bitweisen NOT
-Operation wird einfach nur jedes Bit des Ausgangswertes umgekehrt.
Eine besondere Rolle nimmt die bitweise XOR
-Verknüpfung ein. Sie funktioniert ganz ähnlich wie die OR
-Verknüpfung. Der Unterschied dabei ist, dass 2 wahre Werte nicht mehr ein wahres Ergebnis liefern. Das Wort oder ist also als exklusives oder (exclusive or) zu verstehen. Nur der eine Teil oder der andere dürfen wahr sein aber nicht beide.
Wiederholen wir das OR-Beispiel von oben mit XOR:
Wahrheitstabelle für XOR 1011 1100 1 1 | 0 OR 1001 0110 1 0 | 1 ------------- 0 1 | 1 0010 1010 0 0 | 0
Wir sehen, dass im Ergebnis dort wo zwei Einsen oder 2 Nullen aufeinandertreffen eine Null steht und nur dort wo zwei unterschiedliche Ziffern zusammenkommen eine Eins herauskommt.
Die XOR-Verknüpfung spielt in der Verschlüsselung eine zentrale Rolle. Dies liegt an der nachfolgend demonstrierten Eigenschaft. Für das Beispiel nehmen wir die Bitfolgen
1011 0101 1111 0011
1010 0110 0010 1000
1011 0101 1111 0011 A XOR 1010 0110 0010 1000 B ------------------------ 0001 0011 1101 1011 --> C 1011 0101 1111 0011 A XOR 0001 0011 1101 1011 C ------------------------ 1010 0110 0010 1000 --> B 1010 0110 0010 1000 B XOR 0001 0011 1101 1011 C ------------------------ 1011 0101 1111 0011 --> A
Dieses Beispiel zeigt, dass eine bitweise XOR-Verknüpfung
Sobald also zwei dieser Zahlen bekannt sind, lässt sich die dritte daraus berechnen.
Exkurs zur Verschlüsselung
Betrachtet man A als eine Nachricht, die geheim gehalten werden soll und B als den Schlüssel, mit dem sie vom Absender zu diesem Zweck verschlüsselt wird, dann ist C die verschlüsselte Nachricht, die gefahrlos verschickt werden kann.
Besitzt der Empfänger auch den Schlüssel B und erhält die verschlüsselte Nachricht C, dann kann er daraus den Klartext A berechnen.