Как правило, на C++ при создании массива я объявляю его как int. Однако, поскольку я имею дело только с двоичными числами (только 1 и 0), я думаю, что это возможно для того, чтобы я мог скрывать 4 байта 'int' до 1 бит.Как создать массив «бит» вместо массива «int»?
Например
int array1[] = {1,0,0,0,0,1,0}; // -----had total of 32 bytes
Так как это только двоичное, эффективность памяти только 1/32, поскольку каждый Int 1-х будет хранить как 000000000000000000000000000001
(4 байта).
Итак, мой вопрос заключается в том, как я могу преобразовать все это в бит, чтобы 32 байта могли быть «сжаты» в 1 байт (вместо 8 int из 32 байтов, я хочу 8-битные данные)?
http://en.cppreference.com/w/cpp/utility/bitset/bitset - это должно сделать трюк –
Вы можете использовать 'станд :: вектор' –
длина вашего массива во время компиляции постоянной или известно только во время выполнения? – Superlokkus