Похоже, что вы хотите перебрать все числа из 1...N
и проверить их двоичное представление. Почему вам нужно держать биты? Достаточно просто иметь целое число, и вы всегда сможете преобразовать его в логический массив. Код ниже
public class BitPlay {
public static void main(String[] args) {
for (Integer i = 0; i < 4; i++) {
System.out.println(Arrays.toString(toBinary(i, 2)));
}
}
private static boolean[] toBinary(int number, int base) {
final boolean[] ret = new boolean[base];
for (int i = 0; i < base; i++) {
ret[base - 1 - i] = (1 << i & number) != 0;
}
return ret;
}
}
Производит:
[false, false]
[false, true]
[true, false]
[true, true]