Vad är en boolesk array?

En boolesk array i datorprogrammering är en sekvens av värden som bara kan innehålla värdena sant eller falskt. Per definition kan en boolean bara vara sann eller falsk och kan inte ha något annat mellanliggande värde. En array är en sekvens av datatyper som upptar numeriska positioner i ett linjärt minnesutrymme. Även om den faktiska implementeringen av en boolesk array ofta överlåts till kompilatorn eller datorspråksbiblioteken, görs det mest effektivt genom att använda bitar istället för kompletta byte eller ord. Det finns flera användningsområden för en boolesk array, inklusive att hålla reda på egenskapsflaggor och anpassa inställningar för fysiska hårdvarugränssnitt.

Idén med en boolesk array härrör från ursprungliga metoder som användes för att lagra information på datorer där det fanns mycket lite tillgängligt minne. Den första implementeringen av en boolesk array tog formen av en bit array. Detta använde större datatyper som byte eller långa heltal för att hålla information genom att ställa in bitarna i datatypen till sant eller falskt. På detta sätt kan en enda byte som är åtta bitar lång hålla åtta olika sanna eller falska värden, vilket sparar utrymme och möjliggör effektiva bitvisa operationer.

När storleken på datorminnet ökade, minskade behovet av att använda bitarrayer. Medan användning av bitar ger möjlighet till bitförskjutning och användning av logiska operatorer som tillåter otroligt snabb bearbetning, kräver det också anpassad kod för att hantera dessa typer av operationer. Att använda en standardmatrisstruktur för att hålla en sekvens av byte är en enklare lösning, men det tar mycket mer minne under programexekveringen. Detta kan ses när du skapar en matris med 32 booleska värden. Med en bitarray kommer data bara att uppta fyra byte minne, men en boolesk typ kan uppta allt från 32 till 128 byte, beroende på systemimplementeringen.

Vissa datorprogrammeringsspråk implementerar faktiskt en bitarray när en boolesk matristyp används, även om detta inte är vanligt. En boolesk array har fördelen att den är väldigt lätt att läsa när man tittar på källkoden. Jämförelser och tilldelningar presenteras tydligt, medan med en bitarray måste de logiska operatorerna ”och”, ”eller” och ”inte” användas, vilket kan skapa förvirrande kod.

Trots enkelheten att använda är en funktion som inte kan användas med en boolesk array en bitmask. En bitmask är en datatyp med en enda byte eller större som innehåller en sekvens av sanna och falska värden som är relaterade till flera villkor. I en enda operation kan flera bitar kontrolleras för deras sanna eller falska tillstånd, alla på en gång. Med en heltalsbaserad matris med booleska värden skulle samma operation behöva utföras med en loop.