meta data for this page
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| bitweise_operatoren [2022/09/27 22:00] – angelegt juergenhaas | bitweise_operatoren [2022/09/27 22:21] (aktuell) – juergenhaas | ||
|---|---|---|---|
| Zeile 37: | Zeile 37: | ||
| + | ==== Bitweise OR-Verknüpfung ==== | ||
| + | |||
| + | Auch beim bitweisen '' | ||
| + | |||
| + | Als Beispiel nehmen wir die gleichen Zahlen wie vorhin, verändern aber die Operation zu '' | ||
| + | |||
| + | <code plain> | ||
| + | Wahrheitstabelle für OR | ||
| + | 1011 1100 | ||
| + | OR 1001 0110 | ||
| + | ------------- | ||
| + | 1011 1110 | ||
| + | |||
| + | </ | ||
| + | |||
| + | Wie man sieht, steht jetzt an jeder Ergebnisstelle eine '' | ||
| + | |||
| + | |||
| + | ==== Bitweise NOT-Verknüpfung ==== | ||
| + | |||
| + | Beim bitweisen '' | ||
| + | |||
| + | <code plain> | ||
| + | Wahrheitstabelle für NOT | ||
| + | | ||
| + | | ||
| + | 0100 0011 | ||
| + | |||
| + | </ | ||
| + | |||
| + | Bei der bitweisen '' | ||
| + | |||
| + | |||
| + | ==== Bitweise XOR-Verknüpfung ==== | ||
| + | |||
| + | Eine besondere Rolle nimmt die bitweise '' | ||
| + | |||
| + | Wiederholen wir das OR-Beispiel von oben mit XOR: | ||
| + | |||
| + | <code plain> | ||
| + | Wahrheitstabelle für XOR | ||
| + | 1011 1100 | ||
| + | OR 1001 0110 | ||
| + | ------------- | ||
| + | 0010 1010 | ||
| + | |||
| + | </ | ||
| + | |||
| + | 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. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | === Besondere Bedeutung von XOR === | ||
| + | |||
| + | 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 | ||
| + | * A: '' | ||
| + | * B: '' | ||
| + | * C: die XOR-Verknüpfung von beiden. | ||
| + | |||
| + | <code plain> | ||
| + | |||
| + | 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 | ||
| + | * von A mit C wieder B ergibt und | ||
| + | * von B mit C wieder A ergibt. | ||
| + | |||
| + | 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. | ||