I have no idea how to achieve this, any help would be greatly appreciated and very useful to me.
I have a loop in some computer code, that loops through every single combination of 7 on bits in a 64 bit integer.
For example,
Permutation 1: 00...001111111
Permutation 2: 00...010111111
Permutation 3: 00...011011111
etc.
These evaluate to the decimal numbers:
Permutation 1: 00...001111111 = 127
Permutation 2: 00...010111111 = 191
Permutation 3: 00...011011111 = 223
In total there are:
621,216,192
Combinations (64 choose 7).
Given any decimal/binary number (it doesn't matter which type), that is guaranteed to be a valid permutation value (we don't need to worry about 128 being passed in for example), how can I calculate which permutation number this is?
IE:
whatPermutation(127) = 1;
whatPermutation(191) = 2;
whatPermutation(223) = 3;
etc.
Any help would be brilliant, again, I have no idea where to start.