Wat is een Booleaanse array?
Een Booleaanse array in computerprogrammering is een reeks waarden die alleen de waarden waar of onwaar kan bevatten. Een Boolean kan per definitie alleen waar of onwaar zijn en kan geen andere tussenliggende waarde bevatten. Een array is een reeks gegevenstypen die numerieke posities in een lineaire geheugenruimte innemen. Hoewel de daadwerkelijke implementatie van een Booleaanse array vaak wordt overgelaten aan de compiler of computertaalbibliotheken, wordt dit het meest efficiënt gedaan door bits te gebruiken in plaats van volledige bytes of woorden. Er zijn verschillende toepassingen voor een Booleaanse array, waaronder het bijhouden van eigenschapsvlaggen en het uitlijnen van instellingen voor fysieke hardware-interfaces.
Het idee van een Booleaanse array komt voort uit originele methoden die werden gebruikt om informatie op te slaan op computers met weinig geheugen. De eerste implementatie van een Booleaanse array nam de vorm aan van een bitmatrix. Dit gebruikte grotere gegevenstypen zoals bytes of lange gehele getallen om informatie vast te houden door de bits van het gegevenstype in te stellen op waar of onwaar. Op deze manier kan een enkele byte van acht bits acht verschillende ware of valse waarden bevatten, waardoor ruimte wordt bespaard en efficiënte bitgewijze bewerkingen mogelijk zijn.
Naarmate de omvang van het computergeheugen toenam, nam de noodzaak om bitmatrixen te gebruiken af. Hoewel het gebruik van bits de mogelijkheid biedt om bit te verschuiven en logische operatoren te gebruiken die ongelooflijk snelle verwerking mogelijk maken, vereist het ook aangepaste code om dit soort bewerkingen af te handelen. Het gebruik van een standaardarraystructuur om een reeks bytes te bevatten is een eenvoudigere oplossing, maar het kost veel meer geheugen tijdens de uitvoering van het programma. Dit is te zien bij het maken van een array met 32 Booleaanse waarden. Met een bitarray nemen de gegevens slechts vier bytes geheugen in beslag, maar een Booleaanse array kan 32 tot 128 bytes innemen, afhankelijk van de systeemimplementatie.
Sommige computerprogrammeertalen implementeren eigenlijk een bitarray wanneer een Boolean arraytype wordt gebruikt, hoewel dit niet gebruikelijk is. Een Booleaanse array heeft het voordeel dat deze zeer gemakkelijk te lezen is bij het bekijken van de broncode. Vergelijkingen en toewijzingen worden duidelijk gepresenteerd, terwijl bij een bitarray de logische operatoren "en", "of" en "niet" moeten worden gebruikt, waardoor mogelijk verwarrende code ontstaat.
Ondanks het gebruiksgemak is een functie die niet kan worden gebruikt met een Booleaanse array een bitmasker. Een bitmasker is een gegevenstype van één byte of groter dat een reeks echte en valse waarden bevat die betrekking hebben op meerdere voorwaarden. In een enkele bewerking kunnen meerdere bits tegelijkertijd op hun ware of valse status worden gecontroleerd. Met een op geheel getal gebaseerde reeks Booleaanse waarden zou dezelfde bewerking met een lus moeten worden uitgevoerd.