Just check the bits in turn:
List<Integer> bits(int num) {
List<Integer> setBits = new ArrayList<>();
for (int i = 1; num != 0; ++i, num >>>= 1) {
if ((num & 1) != 0) setBits.add(i);
}
return setBits;
}
Online Demo
6 [2, 3]
7 [1, 2, 3]
8 [4]