Che cos'è una matrice booleana?
Un array booleano nella programmazione per computer è una sequenza di valori che può contenere solo i valori di vero o falso. Per definizione, un booleano può essere solo vero o falso e non è in grado di contenere altri valori intermedi. Un array è una sequenza di tipi di dati che occupano posizioni numeriche in uno spazio di memoria lineare. Mentre l'implementazione effettiva di un array booleano viene spesso lasciata al compilatore o alle librerie di linguaggio del computer, viene eseguita in modo più efficiente utilizzando bit anziché parole o byte completi. Esistono diversi usi per un array booleano, tra cui tenere traccia dei flag delle proprietà e allineare le impostazioni per le interfacce hardware fisiche.
L'idea di un array booleano deriva da metodi originali utilizzati per archiviare informazioni su computer in cui la memoria disponibile era molto ridotta. La prima implementazione di un array booleano ha assunto la forma di un array di bit. Questo utilizzava tipi di dati più grandi come byte o numeri interi lunghi per conservare le informazioni impostando i bit del tipo di dati su true o false. In questo modo, un singolo byte lungo otto bit potrebbe contenere otto diversi valori veri o falsi, risparmiando spazio e consentendo efficienti operazioni bit a bit.
Con l'aumentare della dimensione della memoria del computer, è diminuita la necessità di utilizzare array di bit. L'uso dei bit offre la possibilità di spostare i bit e l'utilizzo di operatori logici che consentono un'elaborazione incredibilmente veloce, ma richiede anche un codice personalizzato per gestire questo tipo di operazioni. L'uso di una struttura di array standard per contenere una sequenza di byte è una soluzione più semplice, ma richiede molta più memoria durante l'esecuzione del programma. Questo può essere visto quando si crea un array di 32 valori booleani. Con un array di bit, i dati occuperanno solo quattro byte di memoria, ma un array di tipo booleano potrebbe occupare da 32 a 128 byte, a seconda dell'implementazione del sistema.
Alcuni linguaggi di programmazione per computer implementano effettivamente un array di bit quando viene utilizzato un tipo di array booleano, sebbene ciò non sia comune. Un array booleano ha il vantaggio di essere molto facile da leggere quando si visualizza il codice sorgente. Confronti e assegnazioni sono presentati in modo chiaro, mentre con un array di bit si devono usare gli operatori logici "e", "o" e "non", creando potenzialmente codice confuso.
Nonostante la facilità d'uso, una funzione che non può essere utilizzata con un array booleano è una maschera di bit. Una maschera di bit è un singolo byte o un tipo di dati più grande che contiene una sequenza di valori veri e falsi relativi a più condizioni. In una singola operazione, è possibile verificare contemporaneamente più bit per il loro stato vero o falso. Con una matrice di valori booleani basata su numeri interi, la stessa operazione dovrebbe essere eseguita con un ciclo.