Booleaanse operator

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 1 of 2.

Eenplaatsige logische operator

NOT

De operator NOT (niet) is de logische negatie. Toepassing keert de logische waarde om.

NOT A {\displaystyle {\text{NOT}}A} is onwaar als A {\displaystyle A} waar is, en waar als A {\displaystyle A} onwaar is.

Gestandaardiseerde notatie: ¬ A {\displaystyle \neg A}

Andere notaties: ! A ,     A ,   A ¯ {\displaystyle !A,\ \ {\mathord {\sim }}A,\ {\bar {A}}}

Waarheidstabel:

A {\displaystyle A} ¬ A {\displaystyle \neg A}
0 1
1 0
Meer informatie: NOT-poort

Tweeplaatsige logische operatoren

Een tweeplaatsige logische operator heeft twee 'inputs'; beide inputs kunnen zowel waar ('true') als onwaar ('false') zijn. De 'output' van de operator is, afhankelijk van de operator zelf en van beide inputwaarden, waar of onwaar.

De 16 booleaanse functies van twee variabelen; iedere combinatie van inputwaarden A en B ('waar' of 'onwaar') correspondeert met een van de vier gebieden binnen de kleine rechthoek; voor iedere combinatie van A en B in elk van de 16 rechthoeken geldt: correspondeert de combinatie met een gekleurd gebied dan is de booleaanse functie 'waar', correspondeert de combinatie met een niet-gekleurd gebied dan is de booleaanse functie 'onwaar'.

AND

De operator AND (én) is de logische conjunctie: A AND B {\displaystyle A\,\mathop {\text{AND}} \,B} is alleen waar als A {\displaystyle A} en B {\displaystyle B} beide waar zijn, in alle andere gevallen is het resultaat onwaar.

Gestandaardiseerde notatie: A B {\displaystyle A\land B} .

Andere notaties: A & B , A & & B {\displaystyle A\mathop {\&} B,A\mathop {\&\&} B} .

Waarheidstabel

A {\displaystyle A} B {\displaystyle B} A B {\displaystyle A\land B}
0 0 0
0 1 0
1 0 0
1 1 1
Meer informatie: AND-poort

NAND

De operator NAND (niet én, niet allebei) is de negatie van AND: A NAND B {\displaystyle A\,\mathop {\text{NAND}} \,B} is alleen onwaar als A {\displaystyle A} en B {\displaystyle B} beide waar zijn, in alle andere gevallen is het resultaat waar.

Gestandaardiseerde notatie: A ¯ B {\displaystyle A\mathop {\overline {\land }} B} .

Andere notaties: {\displaystyle } .

Waarheidstabel

A {\displaystyle A} B {\displaystyle B} A ¯ B {\displaystyle A\mathop {\overline {\land }} B}
0 0 1
0 1 1
1 0 1
1 1 0
Meer informatie: NAND-poort

OR

De operator OR (of) is de logische disjunctie: A OR B {\displaystyle A\,\mathop {\text{OR}} \,B} is waar als A {\displaystyle A} waar is of B {\displaystyle B} waar is (of als beide waar zijn). Het resultaat is onwaar als zowel A {\displaystyle A} als B {\displaystyle B} onwaar zijn.

Gestandaardiseerde notatie: A B {\displaystyle A\lor B} .

Andere notaties: A B , A B , A + B {\displaystyle A\mid B,\,A\mathop {\|} B,\,A+B} .

Waarheidstabel

A {\displaystyle A} B {\displaystyle B} A B {\displaystyle A\lor B}
0 0 0
0 1 1
1 0 1
1 1 1
Meer informatie: OR-poort

NOR

De operator NOR (niet of, noch ... noch) is de negatie van OR: A NOR B {\displaystyle A\,\mathop {\text{NOR}} \,B} is waar als A {\displaystyle A} en B {\displaystyle B} beide onwaar zijn.


Gestandaardiseerde notatie: A ¯ B {\displaystyle A\mathop {\overline {\lor }} B} .

Andere notaties:

Waarheidstabel

A {\displaystyle A} B {\displaystyle B} A ¯ B {\displaystyle A\mathop {\overline {\lor }} B}
0 0 1
0 1 0
1 0 0
1 1 0
Meer informatie: NOR-poort

XOR

De operator XOR (eXclusive OR) is de exclusieve disjunctie: A XOR B {\displaystyle A\,\mathop {\text{XOR}} \,B} is waar als A {\displaystyle A} waar is en B {\displaystyle B} onwaar, of als A {\displaystyle A} onwaar is en B {\displaystyle B} waar.

Gestandaardiseerde notatie: A _ B {\displaystyle A\mathop {\underline {\lor }} B} .

Andere notaties: A B {\displaystyle A\oplus B} .

Waarheidstabel

A {\displaystyle A} B {\displaystyle B} A _ B {\displaystyle A\mathop {\underline {\lor }} B}
0 0 0
0 1 1
1 0 1
1 1 0
Meer informatie: XOR-poort

XNOR

De operator XNOR (NOT XOR) is de wederzijdse implicatie: A XNOR B {\displaystyle A\,\mathop {\text{XNOR}} \,B} is waar als A {\displaystyle A} en B {\displaystyle B} beide onwaar of beide waar zijn.

Gestandaardiseerde notatie: A B {\displaystyle A\leftrightarrow B} .

Andere notaties: A B {\displaystyle A\Leftrightarrow B} .

Waarheidstabel

A {\displaystyle A} B {\displaystyle B} A B {\displaystyle A\leftrightarrow B}
0 0 1
0 1 0
1 0 0
1 1 1
Meer informatie: XNOR-poort

Implicatie

De implicatie A B {\displaystyle A\rightarrow B} ('uit A volgt B') is uitsluitend onwaar indien A waar is en B onwaar. De implicatie heeft daarom dezelfde waarheidswaarde als ( ¬ A ) B {\displaystyle (\neg A)\lor B} .

Gestandaardiseerde notatie: A B {\displaystyle A\rightarrow B} .

Andere notaties: A B {\displaystyle A\Rightarrow B} .

Waarheidstabel

A {\displaystyle A} B {\displaystyle B} A B {\displaystyle A\rightarrow B}
0 0 1
0 1 1
1 0 0
1 1 1
Meer informatie: Logische implicatie

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).

Bitsgewijze 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 de overeenkomstige bits van beide getallen met de operator wordt bewerkt (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 elke bit de OR-bewerking uit.
    00011101 Resultaat is 29.

Dergelijke bewerkingen kunnen ook op elke keten van lettertekens worden uitgevoerd, ook letters zijn immers voor de computer niets anders dan reeksen nullen en enen. De bitsgewijze XOR-bewerking wordt vaak toegepast in simpele encryptiesystemen, vooral omdat bij deze bewerking de oorspronkelijke invoer weer terug te krijgen is (dat geldt ook voor de operator NOT maar niet voor AND en OR.

Begrensd aantal

Er zijn slechts zestien mogelijke booleaanse operatoren met twee parameters. De beide argumenten hebben namelijk slechts vier verschillende combinaties van uitkomsten en een operator kan aan elk van deze uitkomsten twee waarden toekennen, in totaal dus 24 = 16.

Analoog hebben N {\displaystyle N} argumenten 2 N {\displaystyle 2^{N}} combinaties van uitkomsten, zodat het aantal operatoren met N {\displaystyle N} argumenten gelijk is aan:

2 ( 2 N ) {\displaystyle 2^{(2^{N})}}

De mogelijke tweeplaatsige booleaanse operatoren zijn:

Parameters   Functies, dat wil zeggen alle mogelijke resultaatkolommen
A B 0 A ⊽ B (∼A) ⋀ B ∼A A ⋀ ∼B ∼B A ⊻ B A ⊼ B A ⋀ B ∼(A ⊻ B) B (∼A) ⋁ B A A ⋁ ∼B A ⋁ B 1
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