Een Booleaanse operator is een logische operator die vooral in de wiskunde en informatica wordt gebruikt. Booleaanse operatoren zijn gebaseerd op de Booleaanse algebra. Het resultaat van een booleaanse bewerking heeft slechts twee mogelijke resultaten: waar of onwaar. In verschillende talen die in de wiskunde en informatica worden gebruikt, bestaan er verschillende aanduidingen (tekens) voor de booleaanse operatoren. Een Booleaanse operator is een Booleaanse functie met ariteit 2.
Algemeen gebruikte logische operatoren
NOT
resultaat = NOT A
Het resultaat is tegenovergesteld. "NOT A" is onwaar als "A" waar is en als "A" onwaar is, is "NOT A" waar. Dit is een unaire (unary) operator, dat wil zeggen, met slechts een parameter. Alle anderen in deze lijst zijn binaire (binary) operatoren.
AND
resultaat = A AND B
Het resultaat is waar als zowel "A" als "B" waar zijn, in alle andere gevallen is het resultaat onwaar.
P1 |
P0 |
R
|
0 |
0 |
0
|
0 |
1 |
0
|
1 |
0 |
0
|
1 |
1 |
1
|
NAND ("Not AND")
resultaat = A NAND B
Het resultaat is onwaar als zowel "A" als "B" waar zijn, in alle andere gevallen is het resultaat waar. Deze functie is equivalent aan NOT(A AND B)
P1 |
P0 |
R
|
0 |
0 |
1
|
0 |
1 |
1
|
1 |
0 |
1
|
1 |
1 |
0
|
OR
resultaat = A OR B
Het resultaat is waar als "A" waar is of als "B" waar is of als beide waar zijn. Het resultaat is onwaar als zowel "A" als "B" onwaar zijn.
P1 |
P0 |
R
|
0 |
0 |
0
|
0 |
1 |
1
|
1 |
0 |
1
|
1 |
1 |
1
|
NOR ("Not OR")
resultaat = A NOR B
Het resultaat is waar als zowel "A" als "B" onwaar zijn, in alle andere gevallen is het resultaat onwaar. Deze functie is equivalent aan NOT(A OR B)
P1 |
P0 |
R
|
0 |
0 |
1
|
0 |
1 |
0
|
1 |
0 |
0
|
1 |
1 |
0
|
Operator ↓
Gebruik makend van Booleaanse variabelen , en de Peirce arrow als operator kunnen we de bijbehorende operaties ook op de volgende manieren schematisch voorstellen:
|
|
1
|
0
|
0
|
0
|
1
|
0
|
|
0
|
1
|
|
|
|
1
|
0
|
0
|
0
|
|
0
|
1
|
0
|
1
|
|
0
|
1
|
|
|
0
|
1
|
|
0
|
1
|
0
|
1
|
|
1
|
0
|
0
|
0
|
|
|
|
|
0
|
0
|
1
|
1
|
0
|
1
|
0
|
0
|
1
|
0
|
|
1
|
|
0
|
|
|
|
|
|
|
|
|
|
- de waarde kan maar op een manier ontbonden worden:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- de waarde kan op drie manieren ontbonden worden:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Associativiteit
|
|
|
0
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
|
|
|
0
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
1
|
|
0
|
1
|
0
|
1
|
|
0
|
1
|
|
|
|
|
0
|
0
|
|
|
|
↓
|
↓↓
|
↓
|
|
|
|
|
1
|
0
|
|
|
|
|
|
|
0
|
0
|
|
|
|
↓
|
↓↓
|
↓
|
|
|
|
|
1
|
0
|
|
|
|
|
|
|
0
|
1
|
|
|
|
|
|
|
1
|
1
|
|
|
|
↓
|
↓↓
|
↓
|
|
|
0
|
1
|
|
|
0
|
0
|
|
↓↓↓↓
|
|
(uitwerking formules en )
|
(vergelijking resulaten uitwerking formules en )
|
- Uit bovenstaande uitwerking van de formules en en vergelijking van de resultaten blijkt dat:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- is dus niet associatief.
|
|
Commutativiteit
- de volgorde van de operanden binnen een operatie blijkt geen rol te spelen:
|
|
|
|
|
|
|
|
|
- is dus commutatief.
|
XOR ("eXclusive OR")
resultaat = A XOR B
Het resultaat is waar als "A" waar is en "B" onwaar, of als "A" onwaar is en "B" waar. Als "A" en "B" beide waar zijn of beide onwaar zijn is het resultaat onwaar. Deze functie is equivalent aan (A AND NOT B) OR (B AND NOT A)
P1 |
P0 |
R
|
0 |
0 |
0
|
0 |
1 |
1
|
1 |
0 |
1
|
1 |
1 |
0
|
Toepassingen
Booleaanse operatoren worden veel gebruikt. Door gebruik te maken van haakjes kunnen ook meerdere voorwaarden worden gecombineerd. Enkele voorbeelden:
- Voorwaardelijke statements.
In programmeertalen worden veel voorwaardelijke statements gebruikt. De voorwaarde dat getal "A" tussen 10 en 20 moet liggen wordt geformuleerd als
if (A > 10 && A < 20) {...bewerking...} else {...andere bewerking...}.
Waarbij de syntaxis per programmeertaal kan verschillen. In dit geval wordt de AND-operator opgeschreven als &&.
- Selectiecriteria.
Bij het zoeken door databestanden (zie ook SQL) worden vaak meerdere selectiecriteria gebruikt.
SELECT * FROM tabelnaam WHERE veld1 > 10 AND veld1 < 20 OR (veld2 > 5).
Bitwise-bewerkingen
In de informatica kunnen deze bewerkingen ook op integerniveau worden uitgevoerd. Van twee getallen kan hiermee een ander getal worden gemaakt. Wat er gebeurt is dat elk overeenkomstig bit van beide getallen met de operator wordt behandeld (een "1" is waar en een "0" is onwaar), en dat het resultaat van elk van deze bewerkingen een bit vormt van het resulterend getal. Bijvoorbeeld deze bewerking: 25 OR 12 = 29.
Schrijf beide getallen binair op:
25: 00011001
12: 00001100
-------- Voer voor elk bit de OR-bewerking uit.
00011101 Resultaat is 29.
Dergelijke bewerkingen kunnen net zo goed op elke keten van lettertekens worden uitgevoerd, ook letters zijn immers voor de computer niets anders dan reeksen nullen en enen. De bitwise XOR-bewerking wordt vaak toegepast in simpele encryptie systemen, vooral omdat bij deze bewerking de oorspronkelijke invoer weer terug te krijgen is (dat geldt ook voor de NOT-bewerking, maar niet voor de AND- en OR-bewerking).
Gelimiteerd aantal
Het is tamelijk makkelijk aan te tonen dat er slechts zestien mogelijke booleaanse operatoren met twee parameters zijn. Algemeen geldt:
Waarbij:
|
Het aantal mogelijke operatoren
|
N |
Het aantal ingangs parameters.
|
Immers een waarheidstabel met N parameters heeft maximaal mogelijke combinaties, die weer kunnen resulteren in mogelijke resultaat-kolommen.
parameters |
Functies, dat wil zeggen alle mogelijke resultaatkolommen.
|
bit1 |
bit1
|
0 |
1 |
2 |
3
|
4 |
5 |
6 |
7
|
8 |
9 |
10 |
11
|
12 |
13 |
14 |
15
|
0 |
0
|
0 |
1 |
0 |
1
|
0 |
1 |
0 |
1
|
0 |
1 |
0 |
1
|
0 |
1 |
0 |
1
|
0 |
1
|
0 |
0 |
1 |
1
|
0 |
0 |
1 |
1
|
0 |
0 |
1 |
1
|
0 |
0 |
1 |
1
|
1 |
0
|
0 |
0 |
0 |
0
|
1 |
1 |
1 |
1
|
0 |
0 |
0 |
0
|
1 |
1 |
1 |
1
|
1 |
1
|
0 |
0 |
0 |
0
|
0 |
0 |
0 |
0
|
1 |
1 |
1 |
1
|
1 |
1 |
1 |
1
|
Zie ook