LU02g - Logische Operationen

In vielen Bereichen der Informatik werden logische Operationen auf der Ebene von Bits durchgeführt. Bei der binären Logik handelt es sich um Rechenoperationen, die auf binärer Ebene stattfinden. Zum Beispiel wird beim Verschlüsseln von Daten häufig mit XOR (exklusives oder) gearbeitet.

In modernen Programmiersprachen wird das Bit als kleinste Informationseinheit fast nur noch für logische Operationen genutzt. Dennoch muss jeder Informatiker diese Operationen verstehen.

Wie Sie wissen, kann ein Bit nur zwei Zustände annehmen.

Bit 0 Strom aus false falsch
Bit 1 Strom an true wahr

In der binären Logik verwenden wir in der Regel die Bezeichnungen true bzw. Bit '1' und false bzw. Bit '0'.

Die logischen Operationen in diesem Kapitel können einerseits auf einzelne Bits angewandt werden. Dies geschieht vor allem bei der Auswertung von Bedingungen.

Andererseits können auch Ketten von Bits (z.B. 0100 1101 AND 1100 0011) mit logischen Operationen verknüpft werden. Bei solchen Bitketten wird die logische Operation einzeln für jede binäre Stelle angewandt.

Die logische Operation AND vergleicht zwei binär codierte Werte miteinander. Das Resultat dieser Operation ist nur dann true, wenn auch die beiden zu vergleichenden Werte true sind.

Die folgende Tabelle zeigt das Resultat, wenn zwei einzelne Bits (Wert 1 und Wert 2) mit AND verknüpft werden.

Wert 1 Wert 2 Resultat
false false false
false true false
true false false
true true true

Sie können neben einzelnen Bits auch ganze Bitketten mit AND verküpfen:

Wert 1 0 1 0 0 1 1 0 1
Operation AND
Wert 2 1 1 0 0 0 0 1 1
Resultat 0 1 0 0 0 0 0 1

Die logische Operation AND vergleicht die Bits Stelle für Stelle.

  • 1. Stelle: 0 AND 1 ⇒ 0
  • 2. Stelle: 1 AND 1 ⇒ 1
  • usw.

Die logische Operation OR vergleicht zwei binär codierte Werte miteinander. Das Resultat dieser Operation ist true, wenn mindestens einer der zu vergleichenden Werte true ist.

Die folgende Tabelle zeigt das Resultat, wenn zwei einzelne Bits (Wert 1 und Wert 2) mit OR verknüpft werden.

Wert 1 Wert 2 Resultat
false false false
false true true
true false true
true true true

Ganze Bitketten mit OR verküpfen:

Wert 1 0 1 0 0 1 1 0 1
Operation OR
Wert 2 1 1 0 0 0 0 1 1
Resultat 1 1 0 0 1 1 1 1

Die logische Operation XOR vergleicht zwei binär codierte Werte miteinander. Das Resultat dieser Operation ist true, wenn genau einer der zu vergleichenden Werte true ist.

Die folgende Tabelle zeigt das Resultat, wenn zwei einzelne Bits (Wert 1 und Wert 2) mit XOR verknüpft werden.

Wert 1 Wert 2 Resultat
false false false
false true true
true false true
true true false

Auch hier können Sie ganze Bitketten mit XOR verküpfen:

Wert 1 0 1 0 0 1 1 0 1
Operation XOR
Wert 2 1 1 0 0 0 0 1 1
Resultat 1 0 0 0 1 1 1 0

Die logische Operation NOT invertiert einen binär codierten Wert.

Wert 1 Resultat
false true
true false

In einem Programm könnte man anstelle von

if (wert1 == true) {
  wert1 = false;
} else {
  wert1 = true;
}

einfach schreiben:

wert1 = !wert1;

Was mit einzelnen Bits möglich ist, können Sie auch mit ganzen Bitketten (eine Abfolge von Bits) machen. Zum Beispiel: 0100 0110 XOR 1101 1100 = 1001 1010.

Vorgehen

Am einfachsten schreiben Sie die beiden Bitketten untereinander.

    0100 0110
XOR 1101 1100

Verknpüfen Sie nun jeweils die beiden vordersten Bits die untereinander stehen. Notieren Sie das Ergebnis unterhalb. Zum Beispiel:

     0... ....
XOR  1... ....
     ---------
     1... ....

Wiederholen Sie dies für 2. Stelle, die 3. Stelle, … Zum Schluss erhalten Sie:

    0100 0110
XOR 1101 1100
    --------- 
    1001 1010
 

Ein kleiner Exkurs für alle die lieber eine grafische Darstellung haben. Beim Prozessor (CPU) eines Computers besteht das Rechenwerk aus Milliarden von Logikgattern. Jedes Logikgatter führt auf binärer Ebene eine logische Operation mit zwei Bits aus.

Diese Grafik zeigt die übliche Darstellung von Logikgattern in einem Schaltschema:

Quelle: http://elektro.turanis.de/html/prj087/gatter.png

Erklärung
  • Links sind die Eingänge. Diese Eingänge führen Strom (1) oder keinen Strom (0).
  • Rechts ist der Ausgang bzw. das Resultat. Ob der Ausgang Strom führt, hängt davon ab
    • welche Eingänge Strom führen,
    • welches Logikgatter die Eingänge mit dem Ausgang verbindet.

Denkaufgabe

In Schaltungen gibt es zwei bisher nicht besprochene logische Operationen: NAND und NOR. Andererseits findet sich oft kein XOR.

  • Welchen zwei der logischen Operatoren AND, OR, XOR, NOT müssen Sie kombinieren, um NAND zu erhalten?
  • Welchen zwei der logischen Operatoren AND, OR, XOR, NOT müssen Sie kombinieren, um NOR zu erhalten?
  • Wie müssten Sie die Logikgatter kombinieren, um ein XOR zu erhalten?

Lösung


Marcel Suter

  • modul/m114/learningunits/lu02/logischeoperationen.txt
  • Last modified: 2023/11/13 08:56
  • by 127.0.0.1