Ну, 32 байта не особенно велики.
Вы можете получить / установить биты, создав массив из 8 байтов маски, проиндексировав массив с младшими 3 битами бита # и используяоставшиеся 5 битов бита # для адресации массива байтов, содержащих биты.
Я не помню, чтобы в стандартной библиотеке языка C и / или / xor выполнялись операции с байтовыми строками, но это не сложнонаписать, например, функцию для выполнения andbytes(target, source, count)
, чтобы выполнять операции между наборами ваших битов.
Главное, что вам нужно сделать, - это выяснить, как вы будете управлять хранилищем для вашего бита.массивы.Если они зафиксированы в 256 битах, то имеет смысл сделать их объектами Objective-C с массивом char [8], содержащим биты.