Booleaanse operator

Uit Wikipedia, de vrije encyclopedie

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[bewerken | brontekst bewerken]

NOT[bewerken | brontekst bewerken]

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

is onwaar als waar is, en waar als onwaar is.

Gestandaardiseerde notatie:

Andere notaties:

Waarheidstabel:

0 1
1 0
Meer informatie: NOT-poort

Tweeplaatsige logische operatoren[bewerken | brontekst bewerken]

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[bewerken | brontekst bewerken]

De operator AND (én) is de logische conjunctie: is alleen waar als en beide waar zijn, in alle andere gevallen is het resultaat onwaar.

Gestandaardiseerde notatie: .

Andere notaties: .

Waarheidstabel

0 0 0
0 1 0
1 0 0
1 1 1
Meer informatie: AND-poort

NAND[bewerken | brontekst bewerken]

De operator NAND (niet én, niet allebei) is de negatie van AND: is alleen onwaar als en beide waar zijn, in alle andere gevallen is het resultaat waar.

Gestandaardiseerde notatie: .

Andere notaties: .

Waarheidstabel

0 0 1
0 1 1
1 0 1
1 1 0
Meer informatie: NAND-poort

OR[bewerken | brontekst bewerken]

De operator OR (of) is de logische disjunctie: is waar als waar is of waar is (of als beide waar zijn). Het resultaat is onwaar als zowel als onwaar zijn.

Gestandaardiseerde notatie: .

Andere notaties: .

Waarheidstabel

0 0 0
0 1 1
1 0 1
1 1 1
Meer informatie: OR-poort

NOR[bewerken | brontekst bewerken]

De operator NOR (niet of, noch ... noch) is de negatie van OR: is waar als en beide onwaar zijn.


Gestandaardiseerde notatie: .

Andere notaties:

Waarheidstabel

0 0 1
0 1 0
1 0 0
1 1 0
Meer informatie: NOR-poort

XOR[bewerken | brontekst bewerken]

De operator XOR (eXclusive OR) is de exclusieve disjunctie: is waar als waar is en onwaar, of als onwaar is en waar.

Gestandaardiseerde notatie: .

Andere notaties: .

Waarheidstabel

0 0 0
0 1 1
1 0 1
1 1 0
Meer informatie: XOR-poort

XNOR[bewerken | brontekst bewerken]

De operator XNOR (NOT XOR) is de wederzijdse implicatie: is waar als en beide onwaar of beide waar zijn.

Gestandaardiseerde notatie: .

Andere notaties: .

Waarheidstabel

0 0 1
0 1 0
1 0 0
1 1 1
Meer informatie: XNOR-poort

Implicatie[bewerken | brontekst bewerken]

De implicatie ('uit A volgt B') is uitsluitend onwaar indien A waar is en B onwaar. De implicatie heeft daarom dezelfde waarheidswaarde als .

Gestandaardiseerde notatie: .

Andere notaties: .

Waarheidstabel

0 0 1
0 1 1
1 0 0
1 1 1
Meer informatie: Logische implicatie

Toepassingen[bewerken | brontekst bewerken]

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[bewerken | brontekst bewerken]

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[bewerken | brontekst bewerken]

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 argumenten combinaties van uitkomsten, zodat het aantal operatoren met argumenten gelijk is aan:

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[bewerken | brontekst bewerken]