Booleaanse operator: verschil tussen versies

Uit Wikipedia, de vrije encyclopedie
Verwijderde inhoud Toegevoegde inhoud
Metadjinn (overleg | bijdragen)
SpBot (overleg | bijdragen)
k robot Eraf: es:Conectivo Lógico
Regel 632: Regel 632:
[[el:Λογικές συναρτήσεις]]
[[el:Λογικές συναρτήσεις]]
[[en:Logical connective]]
[[en:Logical connective]]
[[es:Conectivo Lógico]]
[[et:Konnektor]]
[[et:Konnektor]]
[[fa:ادات منطقی]]
[[fa:ادات منطقی]]

Versie van 6 jan 2010 15:18

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.

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

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

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

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

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

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
assenkruis
resultaatrij bovenaan
resultaatrij onderaan
resultaatkolom rechts
resultaat ontbonden
  • 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
Meer informatie: XOR-poort

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
XOR 6
AND 8
OR 14

Zie ook