Char - это (обычно) наименьшая единица бит, которой может манипулировать микропроцессор.Если вы создаете объект, который работает с произвольным числом битов, имеет смысл использовать массив наименьшей единицы.Таким образом, вы всегда будете использовать наименьшее количество возможных единиц.
Если вам нужен набор битов не произвольного размера, а процессор имеет достаточно большой собственный тип, чтобы его содержать, используйте N-битный тип.Это будет более эффективно, чем массив.