Login

UND, ODER, NICHT: Die drei Grundverknüpfungen der Digitaltechnik

Mario ·

Die Tür zum Serverraum soll sich nur öffnen, wenn die Chipkarte gültig und die PIN richtig ist. Im Notfall, zum Beispiel bei einem Brand, soll sie sich zusätzlich über einen Notentriegelungstaster öffnen lassen. Und wenn jemand die Anlage gesperrt hat, bleibt sie trotz richtiger Karte zu. Drei Regeln, drei Verknüpfungen: UND, ODER und NICHT.

Im Beitrag Logikgatter einfach erklärt hast du alle Gatter im Überblick gesehen. Jetzt gehen wir bei den drei Grundverknüpfungen in die Tiefe. Aus ihnen lässt sich jede andere logische Schaltung zusammensetzen.

Die UND-Verknüpfung (AND)

Das UND-Gatter liefert nur dann eine 1, wenn alle Eingänge 1 sind. Fehlt auch nur eine Bedingung, bleibt der Ausgang 0.

A B Q = A UND B
000
010
100
111

Als Funktionsgleichung schreibt man Q = A ∧ B oder Q = A · B. Das Schaltzeichen nach IEC ist ein Rechteck mit einem „&“.

Ein UND-Gatter kann auch mehr als zwei Eingänge haben. Bei drei Eingängen gibt es 23 = 8 Kombinationen, und nur in einer davon ist der Ausgang 1: nämlich wenn A, B und C gleichzeitig 1 sind.

Beispiele für UND

  • Im Alltag: Ein Aufzug fährt nur los, wenn die Tür geschlossen ist und die Last nicht überschritten wurde.
  • In der IT: Eine Firewall-Regel lässt eine Verbindung durch, wenn die Quelle aus dem internen Netz stammt und der Zielport 443 ist. Treffen beide Bedingungen zu, wird die Verbindung zugelassen.

UND als Bitmaske: Bits ausblenden

Mit UND lassen sich einzelne Bits herauslösen. Eine Zahl wird dazu bitweise mit einer Maske verknüpft. Wo die Maske 1 ist, bleibt das Bit erhalten. Wo sie 0 ist, wird es gelöscht.

  10110110
AND 00001111
------------
  00000110

Das Ergebnis enthält nur noch die unteren vier Bit der Zahl. Auf diese Weise werden in der Praxis einzelne Bereiche eines Bytes ausgelesen, etwa Statusbits. Auch die Berechnung der Netzadresse aus IP-Adresse und Netzmaske nutzt dieses Prinzip, wie wir später im Subnetting sehen.

Die ODER-Verknüpfung (OR)

Das ODER-Gatter liefert eine 1, wenn mindestens ein Eingang 1 ist. Nur wenn alle Eingänge 0 sind, bleibt auch der Ausgang 0.

A B Q = A ODER B
000
011
101
111

Die Funktionsgleichung lautet Q = A ∨ B oder Q = A + B. Hier lauert eine Falle: Das Pluszeichen steht für die ODER-Verknüpfung, nicht für die Addition. In der Logik gilt deshalb 1 + 1 = 1, nicht 2. Das Schaltzeichen ist ein Rechteck mit „≥1“.

Bei drei Eingängen ist nur eine der acht Kombinationen eine 0: wenn alle drei Eingänge 0 sind.

Beispiele für ODER

  • Im Alltag: Die Brandmeldeanlage schlägt Alarm, wenn der Rauchmelder oder der Wärmemelder oder ein Handmelder auslöst.
  • In der IT: Ein Benutzer darf eine Datei ändern, wenn er der Besitzer ist oder Administratorrechte hat. Reicht eine der beiden Bedingungen, ist der Zugriff erlaubt.

ODER als Bitmaske: Bits setzen

Mit ODER setzt du gezielt Bits auf 1, ohne die anderen zu verändern. Wo die Maske 1 ist, wird das Bit gesetzt. Wo sie 0 ist, bleibt es unverändert.

  10110000
OR  00001111
------------
  10111111

Die NICHT-Verknüpfung (NOT)

Das NICHT-Gatter, auch Inverter oder Invertierer genannt, hat nur einen Eingang. Es kehrt den Wert um: Aus 0 wird 1, aus 1 wird 0.

A Q = NICHT A
01
10

Als Gleichung schreibt man Q = ¬A oder mit einem Querstrich über dem Buchstaben. Das Schaltzeichen nach IEC ist ein Rechteck mit „1“ und einem kleinen Kreis am Ausgang. Der Kreis zeigt in jedem Gatterschaltzeichen eine Umkehrung an.

Wendest du NICHT zweimal hintereinander an, kommt der ursprüngliche Wert wieder heraus. Aus 1 wird 0, daraus wieder 1. Man nennt das die doppelte Verneinung.

Beispiele für NICHT

  • Im Alltag: Die Kontrollleuchte „Tür offen“ im Auto leuchtet, wenn der Türkontakt nicht geschlossen ist.
  • In der IT: Viele Steuersignale sind „low-aktiv“. Ein Reset-Eingang etwa löst aus, wenn er auf 0 gezogen wird, nicht auf 1. Im Datenblatt erkennst du das an einem Querstrich über dem Namen oder an einem vorangestellten Strich. Hier steckt also ein NICHT in der Bedeutung des Signals.

NICHT als Bitoperation: Bits umkehren

NOT 10110110
------------
    01001001

Jedes Bit wird einzeln umgekehrt. Das wirkt wie ein „Negativ“ der Zahl.

Die drei Grundgatter mit Schaltzeichen, Gleichung und Wahrheitstabelle.

Bitoperationen in der Programmierung

Alle drei Verknüpfungen gibt es in Programmiersprachen als Operatoren, die auf jedes Bit einer Zahl einzeln wirken. In Python sieht das so aus:

x = 0b10110110

print(bin(x & 0b00001111))   # UND
print(bin(x | 0b00001111))   # ODER
print(bin(~x & 0xFF))        # NICHT

Mit diesem Code wendest du die drei Beispiele von oben auf die Zahl 10110110 an. Die Ausgabe lautet 0b110, 0b10111111 und 0b1001001. Die führenden Nullen schreibt Python nicht mit aus.

Beim NICHT-Operator ~ musst du aufpassen. Python rechnet mit Zahlen beliebiger Länge, deshalb würde ~x allein eine negative Zahl ergeben. Mit der Maske 0xFF (das sind acht Einsen, siehe Beitrag Zahlensysteme) beschränkst du das Ergebnis auf 8 Bit.

Der häufigste Stolperstein: Bitweises und logisches UND sind nicht dasselbe. In Python ist 5 & 3 gleich 1, weil 101 UND 011 bitweise 001 ergibt. Dagegen liefert 5 and 3 das Ergebnis 3, denn hier werden beide Zahlen als „wahr“ gewertet. In Sprachen wie C oder Java unterscheiden sich & und && auf dieselbe Weise.

Verknüpfungen kombinieren: Die Zugangskontrolle

Zurück zur Tür des Serverraums. Wir benennen die Signale:

  • K = Chipkarte ist gültig
  • P = PIN ist richtig
  • S = Anlage ist gesperrt
  • N = Notentriegelung ist gedrückt
  • T = Tür öffnet

Die Tür öffnet, wenn Karte und PIN stimmen und die Anlage nicht gesperrt ist, oder wenn die Notentriegelung gedrückt wird. Die Notentriegelung hat also Vorrang, wegen des Fluchtwegs. Als Funktionsgleichung:

T = (K ∧ P ∧ ¬S) ∨ N

Zum Prüfen spielen wir einige Fälle durch:

Fall K P S N T Begründung
Normaler Zutritt 1 1 0 0 1 Karte, PIN und keine Sperre
Falsche PIN 1 0 0 0 0 UND-Bedingung nicht erfüllt
Notfall ohne Karte 0 0 0 1 1 Notentriegelung genügt
Anlage gesperrt 1 1 1 0 0 NICHT S ist 0, UND-Teil scheitert
Notfall bei Sperre 1 1 1 1 1 Notentriegelung überstimmt die Sperre

Bei komplexeren Ausdrücken gilt eine Vorrangregel, ähnlich wie „Punkt vor Strich“ in der Mathematik: NICHT wird zuerst ausgewertet, dann UND, zuletzt ODER. Klammern gehen vor und machen die Absicht lesbar. Im Zweifel setzt du lieber eine Klammer zu viel.

Die Zugangskontrolle als Schaltung aus einem NICHT-, einem UND- und einem ODER-Gatter.

So sieht das im Zeitdiagramm aus

Neben Wahrheitstabellen werden Gatter auch mit Zeitdiagrammen beschrieben. Sie zeigen, wie sich Eingänge und Ausgang im zeitlichen Verlauf verhalten. Für ein UND-Gatter mit A und B erkennst du: Der Ausgang ist nur in den Zeiträumen auf High, in denen beide Eingänge gleichzeitig High sind. Beim ODER-Gatter ist der Ausgang immer dann High, wenn mindestens ein Eingang High ist.

Im Zeitdiagramm erkennst du, wann UND und ODER ihren Ausgang auf High setzen.

Typische Fehler

  • ODER als Addition rechnen. In der Logik bedeutet „+“ ODER. 1 + 1 ergibt hier 1.
  • „Entweder-oder“ mit ODER verwechseln. Das logische ODER ist auch bei zwei wahren Eingängen wahr. Das Entweder-oder ist ein XOR.
  • Bitweise und logische Operatoren vermischen. & wirkt auf einzelne Bits, and oder && auf Wahrheitswerte.
  • Vorrang vergessen. NICHT vor UND vor ODER. Ohne Klammern liest du Ausdrücke sonst falsch.
  • Zeilenzahl der Tabelle falsch. Bei n Eingängen gibt es 2n Zeilen, bei drei Eingängen also 8, bei vier 16.

Zum Üben

  1. Ein UND-Gatter hat drei Eingänge. In wie vielen der acht Zeilen ist der Ausgang 1?
  2. Ein ODER-Gatter hat drei Eingänge. In wie vielen der acht Zeilen ist der Ausgang 0?
  3. Berechne 11010110 AND 00111100.
  4. Berechne 11010110 OR 00111100.
  5. Berechne NOT 00001111 bei 8 Bit.
  6. Wie viele Zeilen hat die Wahrheitstabelle für die Zugangskontrolle mit den vier Eingängen K, P, S und N?

Lösungen: (1) In einer Zeile. (2) In einer Zeile. (3) 00010100. (4) 11111110. (5) 11110000. (6) 24 = 16 Zeilen.

Das solltest du dir merken

  • UND ist 1, wenn alle Eingänge 1 sind. ODER ist 1, wenn mindestens ein Eingang 1 ist. NICHT kehrt den Wert um.
  • Als Gleichung: A ∧ B oder A · B für UND, A ∨ B oder A + B für ODER, ¬A für NICHT.
  • Mit UND blendest du Bits aus, mit ODER setzt du Bits, mit NICHT kehrst du alle um.
  • Vorrang: NICHT vor UND vor ODER, Klammern gehen vor.
  • Bei n Eingängen hat die Wahrheitstabelle 2n Zeilen.

Wie du solche Tabellen systematisch aufstellst und damit auch größere Schaltungen prüfst, zeigt der nächste Beitrag: Wertetabellen erstellen und lesen.

Weiterlesen