Ha a che fare con ciò che la CPU può facilmente indirizzare. Ad esempio su un processore x86 c'è un eax
(32 bit), ax
(16 bit) e un ah
(8 bit) ma nessun registro a bit singolo. Quindi, per poter utilizzare un singolo bit, la CPU dovrà eseguire una lettura / modifica / scrittura per modificare il valore. Se è memorizzato come un byte, è possibile utilizzare una singola lettura o scrittura per ispezionare / modificare il valore.
Inoltre ci si potrebbe chiedere se sarebbe meglio usare un singolo bit rispetto a un byte intero, dopotutto un byte sprecherà 7 bit. A meno che lo spazio non sia un vincolo, l'uno dovrebbe andare per il byte perché, almeno l'x86 e io pensiamo gli altri, di solito c'è una istruzione per impostare / cancellare rapidamente un bool che è molto più veloce della lettura / modifica / scrittura di un singolo bit . Dalle misurazioni personali ho visto il metodo read / mod / write essere 5 volte più lento del metodo a singola istruzione.