Booleaanse operator

Uit Wikipedia, de vrije encyclopedie

(Doorverwezen vanaf Boolean)
Ga naar: navigatie, zoeken

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.

Inhoud

[bewerken] Algemeen gebruikte logische operatoren

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

P R
0 1
1 0
Meer informatie: NOT-poort

[bewerken] 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
Meer informatie: AND-poort

[bewerken] 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
Meer informatie: NAND-poort

[bewerken] 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
Meer informatie: OR-poort

[bewerken] 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
Meer informatie: NOR-poort

[bewerken] Operator ↓

Gebruik makend van Booleaanse variabelen x, y en de Peirce arrow (en)  _\downarrow als operator kunnen we de bijbehorende operaties ook op de volgende manieren schematisch voorstellen:

y
1 0 0
0 1 0
y _\downarrowx 0 1 x
y _\downarrowx 1 0 0 0
x 0 1 0 1
y 0 1
y 0 1
x 0 1 0 1
y _\downarrowx 1 0 0 0
y x y _\downarrowx
0 0 1
1 0
1 0 0
1 0
1 0_\downarrow0
0 0_\downarrow1
1_\downarrow0
1_\downarrow1
(assenkruis) (resultaatrij bovenaan) (resultaatrij onderaan) (resultaatkolom rechts) (ontbindingen resultaten)
  • de waarde 1 kan maar op een manier ontbonden worden:
y _\downarrowx = 1  _\Leftrightarrow y = x = 0
  • de waarde 0 kan op drie manieren ontbonden worden:
y _\downarrowx = 0  _\Leftrightarrow y = 1  _\vee x = 1

[bewerken] Associativiteit

z_\downarrow(y_\downarrowx) 0 1 1 1 0 0 0 0
y_\downarrowx 1 0 0 0 1 0 0 0
(z_\downarrowy)_\downarrowx 0 0 1 0 1 0 1 0
z_\downarrowy 1 1 0 0 0 0 0 0
x 0 1 0 1 0 1 0 1
y 0 1 0 1
z 0 1
(1_\downarrow1)_\downarrow1 0 0 1_\downarrow(1_\downarrow1) (11)1 = 1(11)
(1_\downarrow1)_\downarrow0 1 0 1_\downarrow(1_\downarrow0)
(1_\downarrow0)_\downarrow1 0 0 1_\downarrow(0_\downarrow1) (10)1 = 1(01)
(1_\downarrow0)_\downarrow0 1 0 1_\downarrow(0_\downarrow0)
(0_\downarrow1)_\downarrow1 0 1 0_\downarrow(1_\downarrow1)
(0_\downarrow1)_\downarrow0 1 1 0_\downarrow(1_\downarrow0) (01)0 = 0(10)
(0_\downarrow0)_\downarrow1 0 1 0_\downarrow(0_\downarrow1)
(0_\downarrow0)_\downarrow0 0 0 0_\downarrow(0_\downarrow0) (00)0 = 0(00)
(uitwerking formules (z _\downarrowy) _\downarrowx en z _\downarrow(y _\downarrowx)) (vergelijking resulaten uitwerking formules (z _\downarrowy) _\downarrowx en z _\downarrow(y _\downarrowx))
  • Uit bovenstaande uitwerking van de formules (z _\downarrowy) _\downarrowx en z _\downarrow(y _\downarrowx) en vergelijking van de resultaten blijkt dat
(z _\downarrowy) _\downarrowx = z _\downarrow(y _\downarrowx) _\Leftrightarrowz = x.
  •  _\downarrow is dus niet associatief.

[bewerken] Commutativiteit

  • de volgorde van de operanden binnen een operatie blijkt geen rol te spelen:
y _\downarrowx = x _\downarrowy
  •  _\downarrow is dus commutatief.

[bewerken] 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
Meer informatie: XOR-poort

[bewerken] 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).

[bewerken] 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).

[bewerken] Gelimiteerd aantal

Het is tamelijk makkelijk aan te tonen dat er slechts zestien mogelijke booleaanse operatoren met twee parameters zijn. Algemeen geldt:

 n_{op} = 2^{2^N}: N,n_{op} \in \N, N \geq 1

Waarbij:

nop Het aantal mogelijke operatoren
N Het aantal ingangs parameters.

Immers een waarheidstabel met N parameters heeft maximaal T = 2N mogelijke combinaties, die weer kunnen resulteren in n_{op} = 2^T = 2^{2^N} 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
XOR 6
AND 8
OR 14

[bewerken] Zie ook

 
Persoonlijke instellingen
Boek maken