Tiene que ver con lo que la CPU puede abordar fácilmente. Por ejemplo, en un procesador x86 hay un eax
(32 bits), ax
(16 bits) y un ah
(8 bits) pero no hay un solo registro de bits. Entonces, para que pueda usar un solo bit, la CPU tendrá que hacer una lectura / modificación / escritura para cambiar el valor. Si se almacena como un byte, se puede usar una sola lectura o escritura para inspeccionar / cambiar el valor.
Además, uno podría preguntarse si sería mejor usar un solo bit frente a un byte completo, ya que un byte desperdiciará 7 bits. A menos que el espacio sea una restricción, uno debería ir por el byte porque, al menos el x86 y creo que otros, generalmente hay instrucciones para establecer / borrar rápidamente un bool que es mucho más rápido que la lectura / modificación / escritura de un solo bit . Según mediciones personales, he visto que el método de lectura / mod / escritura es 5 veces más lento que el método de instrucción única.