George Boole war ein englischer Mathematiker der 1854 eine Algebra entwickelte die nur mit zwei Werten arbeitet: wahr (1) und falsch (0). Heute ist seine Boolesche Algebra die Grundlage jedes Computers – denn Transistoren kennen auch nur zwei Zustände: Strom an (1) oder Strom aus (0).
In der IT begegnet uns Boolesche Logik ständig:
Beim Subnetting – AND-Verknüpfung von IP und Subnetzmaske
Bei Firewall-Regeln – Pakete erlauben ODER blockieren
Bei Zugriffsrechten – Berechtigung vorhanden oder nicht
Bei Datenbankabfragen – WHERE name = 'Max' AND alter > 18
Bei Programmierungen – if/else Bedingungen
Das Ergebnis ist nur dann 1 wenn beide Eingaben 1 sind. Stell dir zwei Schalter in Reihe vor – beide müssen eingeschaltet sein damit die Lampe leuchtet.
A | B | A AND B |
|---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Schreibweise: A AND B oder A ∧ B oder A & B
Das Ergebnis ist 1 wenn mindestens eine Eingabe 1 ist. Zwei Schalter parallel – es reicht wenn einer eingeschaltet ist.
A | B | A OR B |
|---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Schreibweise: A OR B oder A ∨ B oder A | B
NOT kehrt den Wert um. Aus 1 wird 0, aus 0 wird 1. Wie ein Wechselschalter – wenn er aus ist, ist die Lampe an.
A | NOT A |
|---|---|
0 | 1 |
1 | 0 |
Schreibweise: NOT A oder ¬A oder !A
Das Ergebnis ist nur dann 1 wenn genau eine Eingabe 1 ist – nicht beide. XOR wird in der Kryptographie und bei Fehlerkorrektur verwendet.
A | B | A XOR B |
|---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Schreibweise: A XOR B oder A ⊕ B oder A ^ B
In der IT werden Boolesche Operatoren häufig bitweise angewendet – das bedeutet, der Operator wird auf jedes einzelne Bit zweier Binärzahlen angewendet:
Beispiel AND:
10110101
& 11001100
──────────
10000100
Jede Stelle einzeln:
1 AND 1 = 1
0 AND 1 = 0
1 AND 0 = 0
1 AND 0 = 0
0 AND 1 = 0
1 AND 1 = 1
0 AND 0 = 0
1 AND 0 = 0Beim Subnetting wird die AND-Verknüpfung verwendet um die Netzwerkadresse zu berechnen. Der Router verknüpft IP-Adresse und Subnetzmaske bitweise mit AND:
IP-Adresse: 192.168.10.130
11000000.10101000.00001010.10000010
Subnetzmaske: 255.255.255.192 (/26)
11111111.11111111.11111111.11000000
AND-Ergebnis:
11000000.10101000.00001010.10000000
= 192.168.10.128
→ Das Gerät gehört zum Netzwerk 192.168.10.128/26Überall wo die Subnetzmaske eine 1 hat wird der IP-Bit übernommen. Überall wo die Subnetzmaske eine 0 hat wird das Ergebnis 0 – das ist der Hostanteil der gelöscht wird.
Aus den Grundoperatoren lassen sich weitere ableiten:
Operator | Bedeutung | Formel | Ergebnis für 1,1 |
|---|---|---|---|
NAND | NOT AND – Ergebnis von AND umgekehrt | NOT (A AND B) | 0 |
NOR | NOT OR – Ergebnis von OR umgekehrt | NOT (A OR B) | 0 |
XNOR | NOT XOR – gleiche Werte ergeben 1 | NOT (A XOR B) | 1 |
Erlaube Paket wenn:
Protokoll = TCP AND Zielport = 443
→ Nur HTTPS-Pakete werden durchgelassen
Blockiere Paket wenn:
Quell-IP = 10.0.0.5 OR Quell-IP = 10.0.0.6
→ Beide IPs werden blockiertDateirechte: rwxr-xr--
111 101 100
Besitzer: 1 AND 1 AND 1 → lesen, schreiben, ausführen
Gruppe: 1 AND 0 AND 1 → lesen, ausführen
Andere: 1 AND 0 AND 0 → nur lesenSELECT * FROM users
WHERE aktiv = 1
AND (rolle = 'admin' OR rolle = 'editor')
AND NOT gesperrt = 1
→ Aktive Admins oder Editoren die nicht gesperrt sindBoolesche Operatoren werden häufig verwendet um einzelne Bits in einem Byte zu setzen, zu lesen oder zu löschen:
Bit setzen mit OR:
00001010
| 00000100 (Maske für Bit 2)
──────────
00001110 → Bit 2 wurde gesetzt
Bit löschen mit AND NOT:
00001110
& 11111011 (invertierte Maske)
──────────
00001010 → Bit 2 wurde gelöscht
Bit prüfen mit AND:
00001110
& 00000100 (Maske für Bit 2)
──────────
00000100 → Ergebnis ≠ 0 → Bit 2 ist gesetzt!AND: Ergebnis ist 1 nur wenn beide Eingaben 1 sind
OR: Ergebnis ist 1 wenn mindestens eine Eingabe 1 ist
NOT: Kehrt den Wert um – aus 1 wird 0 und umgekehrt
XOR: Ergebnis ist 1 wenn genau eine Eingabe 1 ist
Beim Subnetting berechnet AND die Netzwerkadresse
Bitweise Operationen arbeiten auf jedem einzelnen Bit
AND setzt Bits auf 0, OR setzt Bits auf 1, XOR kippt Bits