Если вы просто поместите его в (32-битное) int, то вы можете чисто перебирать биты с помощью цикла for, например так:
for (bit = 0; bit < 32; bit++)
flagValue = ((flags & (1<<bit)) != 0;
Не намного сложнее написать, чем синтаксис индексации массива.
Если вы хотите скрыть сдвиг битов, чтобы сделать код более читабельным, вы даже можете использовать функцию или макрос для доступа к битам - например, GetFlag(bit)