Текущее направление:
Начните с знака без знака, который в моей системе составляет 1 байт, используя sizeof.Диапазон 0-255.Если длина - это количество бит, которое мне нужно, то элементы - это количество элементов (байтов), которое мне нужно в моем массиве.
constant unsigned int elements = length/8 + (length % y > 0 ? 1 : 0);
unsigned char bit_arr[elements];
Теперь я добавляю базовые функции, такие как set, unset и test.Где j - индекс бита на байт, i - индекс байта, а h = индекс бита.У нас есть i = h / 8 и j = i% 8.
Псевдо-код:
bit_arr[i] |= (1 << j); // Set
bit_arr[i] &= ~(1 << j); // Unset
if( bit_arr[i] & (1 << j) ) // Test