# 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.
    ${\text{NOT}}A$ is onwaar als $A$ waar is, en waar als $A$ onwaar is.
Gestandaardiseerde notatie: $\neg A$
Andere notaties: $!A,\ \ {\mathord {\sim }}A,\ {\bar {A}}$
Waarheidstabel:
    $A$$\neg A$ 01 10

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

## 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:
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 2$^4$ = 16.
Analoog hebben $N$ argumenten $2^{N}$ combinaties van uitkomsten, zodat het aantal operatoren met $N$ argumenten gelijk is aan:
    $2^{(2^{N})}$
De mogelijke tweeplaatsige booleaanse operatoren zijn:
| Parameters | Parameters | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | Functies, dat wil zeggen alle mogelijke resultaatkolommen | 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 |