При использовании переменной целого типа в качестве массива битов, программа не будет работать медленнее, за то не будет бестолкового хранения нулей в пямяти. И так, не будем разводить много воды, сразу перейдем к делу.

1. Для удобства предлагаю назвать биты константами, например

const FLAG1 = 1, FLAG2 = 2, FLAG3 = 4, ... FLAG[n]= 2^n;