Einfache Logik
Unter einfacher Logik wird hier die rein binäre Verwendung von Wahrheitswerten verstanden.
Übersicht:
| Abkürzung | Name | Zeichen | Venn | C bool | C bit |
|---|---|---|---|---|---|
| TRUE | Wahr | ⊤ | ![]() | true | -1 |
| FALSE | Falsch | ⊥ | ![]() | false | 0 |
| NOT | Negation | ¬ | ![]() | ! | ~ |
| OR | Disjunktion | ∨ | ![]() | || | | |
| AND | Konjunktion | ∧ | ![]() | && | & |
| IMP | Implikation | → | ![]() | ||
| EQU | Aequivalenz | ↔ | ![]() | == | |
| XOR | Exklusiv-Oder | ⊕ | ![]() | ^ | |
| NOR | ![]() | ||||
| NAND | ![]() |
TRUE
und FALSE 
Unter Wahrheitswerten versteht man allgemein die beiden Symbole FALSE und TRUE. Folgende Bezeichnungen sind jedoch äquivalent:
| TRUE | FALSE | Bedeutung |
|---|---|---|
| 1 | 0 | Das binäre Alphabet |
| xxx | 0 | Wobei xxx irgendeine Zahl ungleich 0 ist. Allgemein verbreitet in Programmiersprachen |
| Wahr | Falsch | Das deutsche Pendant |
| T | F | Die Abkürzung der englischen Wörter |
| Yes | No | Ja-Nein auf Englisch |
| On | Off | An-Aus auf Englisch |
Und vieles mehr.
Die Symbole in der Standardlogik sind das ⊤ für TRUE und das ⊥ für FALSE. Im folgenden wird jedoch stets das binäre Alphabet verwendet (0 und 1).
Verwendung in C-Syntax:
Boolsch: Ein boolscher Wert wird normalerweise in einem Byte (unsigned char) gespeichert. Der Wert 0x00 steht dabei für das FALSE und der Wert 0x01 für TRUE. Die meisten Programmiersprachen (auch C) jedoch verstehen jeglichen Wert ungleich 0x00 als TRUE. Dasselbe gilt auch für andere Typen: Die Integer-Zahl 0x00000000 bedeutet FALSE und jede andere Zahl (Bsp. 0x176d2ee5) ist TRUE.
Bitweise: Der Wert -1 wird stets in 0xffffffff übersetzt (je nach Grösse des Typs auch mehr oder weniger f)
NOT 
Die NOT-Verknüpfung oder Negation ist die einfachste Verknüpfung. Jedes Ergebnis, das TRUE ist, wird FALSE und umgekehrt. Wahrheitstabelle:
| x | ¬x |
|---|---|
| 0 | 1 |
| 1 | 0 |
Das Symbol der Standartlogik für NOT ist das ¬. In Textdateien wird die Tilde ~ oftmals als Ersatz für das ¬ verwendet, da dieses im Gegensatz zu ~ nicht in allen Zeichentabellen vorhanden ist.
Verwendung in C-Syntax:
Boolsch: Um einen Wahrheitswert zu negieren, benötigt man in C das ! (Ausrufezeichen). Beispielsweise ergibt der Ausdruck !(false) den Wahrheitswert true.
Bitwise: Mit der Tilde ~ wird in C das Einerkomplement gebildet. Dies ist nichts anderes, als das Umkehren jeder 0 in eine 1 und umgekehrt. Beispielsweise ergibt der Ausdruck ~0x1248 den Wert 0xedb7. Binär ausgedrückt: ~0b0001 0010 0100 1000 wird zu 0b1110 1101 1011 0111
OR 
Die OR-Verknüpfung oder Disjunktion entspricht nicht dem umgangssprachlichen "oder". OR ergibt TRUE, wenn entweder x, oder y oder beide TRUE sind. Wahrheitstabelle:
| x | y | x ∨ y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Das Symbol der Standartlogik für OR ist das ∨. In Textdateien wird oftmals eine Kombination aus Backslash und Slash geschrieben: \/
Verwendung in C-Syntax:
Boolsch: In C wird das || (zweimal senkrechter String) für die OR-Verknüpfung verwendet. Beispielsweise ergibt der Ausdruck true||false den Wahrheitswert true.
Bitwise: Mit dem einfachen | wird in C bitweise OR-verknüpft. Mittels dieser OR-Verknüpfung werden oftmals Masken editiert. Beispielsweise ergibt 0xd0|0x04 den Wert 0xd4.
AND 
Die AND-Verknüpfung oder Konjunktion entspricht dem umgangssprachlichen "und". AND ergibt nur TRUE, wenn x und y beide TRUE sind. Wahrheitstabelle:
| x | y | x ∧ y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Das Symbol der Standartlogik für AND ist das ∧. In Textdateien wird oftmals eine Kombination aus Slash und Backslash geschrieben: /\
Verwendung in C-Syntax:
Boolsch: In C wird das && für die AND-Verknüpfung verwendet. Beispielsweise ergibt der Ausdruck true&&false den Wahrheitswert false.
Bitwise: Mit dem einfachen & wird in C bitweise AND-verknüpft. Mittels dieser AND-Verknüpfung werden oftmals Masken editiert. Beispielsweise ergibt 0x55&0x43 den Wert 0x41.
IMP 
Die IMP-Verknüpfung entspricht in etwa dem umgangssprachlichen "falls ... dann". IMP ergibt dann FALSE, wenn x TRUE, y jedoch FALSE ist. Wahrheitstabelle:
| x | y | x → y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Das Symbol der Standartlogik für IMP ist das →. In Textdateien wird oftmals eine Kombination aus Strich und Grösser-Gleich-Zeichen geschrieben: ->
EQU 
Die EQU-Verknüpfung oder Aequivalenz entspricht dem umgangssprachlichen "wenn beide". EQU ergibt TRUE, wenn x und y gleich sind. Wahrheitstabelle:
| x | y | x ↔ y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Das Symbol der Standartlogik für EQU ist das ↔. In Textdateien wird oftmals eine Kombination aus Strich und Kleiner- und Grösser-Gleich-Zeichen geschrieben: <->
Verwendung in C-Syntax:
In C wird das == für die EQU verwendet. Beispielsweise ergibt der Ausdruck true==false den Wahrheitswert false.
XOR 
Das XOR oder Exklusiv-Oder entspricht dem umgangssprachlichen "oder". XOR ergibt TRUE, wenn entweder x oder y TRUE ist. Wahrheitstabelle:
| x | y | x ⊕ y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
In der Standartlogik ist kein Symbol für XOR definiert. Allerdings sieht man sehr häufig das Zeichen ⊕.
Es gibt auch noch das negative Pendant zu XOR, das XNOR. Dies ist jedoch dasselbe wie EQU.
Verwendung in C-Syntax:
In C wird das ^ für die XOR-Verknüpfung verwendet. Beispielsweise ergibt der Ausdruck 0x45^0x44 den Wert 0x01.
NOR 
NOR ist eine Kurzform für NOT OR. NOR ergibt TRUE, wenn x und y beide FALSE sind. Wahrheitstabelle:
| x | y | x ⊕ y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
Das NOR spielt besonders in der Digitaltechnik eine grosse Rolle.
NAND 
NAND ist eine Kurzform für NOT AND. NAND ergibt TRUE, wenn x oder y oder beide FALSE sind. Wahrheitstabelle:
| x | y | x ⊕ y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Das NAND spielt besonders in der Digitaltechnik eine grosse Rolle.
Neunwertige Logik
Nebst der binären Logik gibt es eine Erweiterung. Diese Erweiterung, welche besonders für die Digitaltechnik eine gewichtige Rolle spielt, definiert anstatt 2 gleich deren 9 Zustände:
| U | Uninitialisiert |
|---|---|
| X | Stark unbekannt |
| 0 | Stark FALSE |
| 1 | Stark TRUE |
| Z | Hochohmig |
| W | Schwach unbekannt |
| L | Schwach FALSE |
| H | Schwach TRUE |
| - | Egal |
Diese Zustände entstehen durch Verdrahtung innerhalb eines Stromnetzes. Durch Verluste und Fehler können nebst den normalen 0- und 1-Werten auch diese 9 Zustände entstehen. Manche davon sind auch nur zur Analyse von solchen Netzen. Im folgenden sind sämtliche Wahrheitstabellen für diese 9 Zustände aufgeführt.
Die Senkrechte gibt den Wert von x, die Waagerechte den Wert von y an.
NOT:
| x | ¬x |
|---|---|
| U | U |
| X | X |
| 0 | 1 |
| 1 | 0 |
| Z | X |
| W | X |
| L | 1 |
| H | 0 |
| - | X |
OR:
| x ∨ y | U | X | 0 | 1 | Z | W | L | H | - |
|---|---|---|---|---|---|---|---|---|---|
| U | U | U | U | 1 | U | U | U | 1 | U |
| X | U | X | X | 1 | X | X | X | 1 | X |
| 0 | U | X | 0 | 1 | X | X | 0 | 1 | X |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| Z | U | X | X | 1 | X | X | X | 1 | X |
| W | U | X | X | 1 | X | X | X | 1 | X |
| L | U | X | 0 | 1 | X | X | 0 | 1 | X |
| H | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| - | U | X | X | 1 | X | X | X | 1 | X |
AND:
| x ∧ y | U | X | 0 | 1 | Z | W | L | H | - |
|---|---|---|---|---|---|---|---|---|---|
| U | U | U | 0 | U | U | U | 0 | U | U |
| X | U | X | 0 | X | X | X | 0 | X | X |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | U | X | 0 | 1 | X | X | 0 | 1 | X |
| Z | U | X | 0 | X | X | X | 0 | X | X |
| W | U | X | 0 | X | X | X | 0 | X | X |
| L | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| H | U | X | 0 | 1 | X | X | 0 | 1 | X |
| - | U | X | 0 | X | X | X | 0 | X | X |
IMP:
| x → y | U | X | 0 | 1 | Z | W | L | H | - |
|---|---|---|---|---|---|---|---|---|---|
| U | U | U | U | 1 | U | U | U | 1 | U |
| X | U | X | X | 1 | X | X | X | 1 | X |
| 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 1 | U | X | 0 | 1 | X | X | X | 1 | X |
| Z | U | X | X | 1 | X | X | X | 1 | X |
| W | U | X | X | 1 | X | X | X | 1 | X |
| L | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| H | U | X | 0 | 1 | X | X | X | 1 | X |
| - | U | X | X | 1 | X | X | X | 1 | X |
EQU:
| x ↔ y | U | X | 0 | 1 | Z | W | L | H | - |
|---|---|---|---|---|---|---|---|---|---|
| U | U | U | U | U | U | U | U | U | U |
| X | U | X | X | X | X | X | X | X | X |
| 0 | U | X | 1 | 0 | X | X | 1 | 0 | X |
| 1 | U | X | 0 | 1 | X | X | 0 | 1 | X |
| Z | U | X | X | X | X | X | X | X | X |
| W | U | X | X | X | X | X | X | X | X |
| L | U | X | 1 | 0 | X | X | 1 | 0 | X |
| H | U | X | 0 | 1 | X | X | 0 | 1 | X |
| - | U | X | X | X | X | X | X | X | X |
XOR:
| x ⊕ y | U | X | 0 | 1 | Z | W | L | H | - |
|---|---|---|---|---|---|---|---|---|---|
| U | U | U | U | U | U | U | U | U | U |
| X | U | X | X | X | X | X | X | X | X |
| 0 | U | X | 0 | 1 | X | X | 0 | 1 | X |
| 1 | U | X | 1 | 0 | X | X | 1 | 0 | X |
| Z | U | X | X | X | X | X | X | X | X |
| W | U | X | X | X | X | X | X | X | X |
| L | U | X | 0 | 1 | X | X | 0 | 1 | X |
| H | U | X | 1 | 0 | X | X | 1 | 0 | X |
| - | U | X | X | X | X | X | X | X | X |
NOR:
| x NOR y | U | X | 0 | 1 | Z | W | L | H | - |
|---|---|---|---|---|---|---|---|---|---|
| U | U | U | U | 0 | U | U | U | 0 | U |
| X | U | X | X | 0 | X | X | X | 0 | X |
| 0 | U | X | 1 | 0 | X | X | 1 | 0 | X |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Z | U | X | X | 0 | X | X | X | 0 | X |
| W | U | X | X | 0 | X | X | X | 0 | X |
| L | U | X | 1 | 0 | X | X | 1 | 0 | X |
| H | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| - | U | X | X | 0 | X | X | X | 0 | X |
NAND:
| x NAND y | U | X | 0 | 1 | Z | W | L | H | - |
|---|---|---|---|---|---|---|---|---|---|
| U | U | U | 1 | U | U | U | 1 | U | U |
| X | U | X | 1 | X | X | X | 1 | X | X |
| 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 1 | U | X | 1 | 0 | X | X | 1 | 0 | X |
| Z | U | X | 1 | X | X | X | 1 | X | X |
| W | U | X | 1 | X | X | X | 1 | X | X |
| L | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| H | U | X | 1 | 0 | X | X | 1 | 0 | X |
| - | U | X | 1 | X | X | X | 1 | X | X |









