Número de bits definidos em um número [fechado]
A seguir, a fórmula mágica que fornece o número de bits definidos em um número (peso de Hamming).
/*Code to Calculate count of set bits in a number*/
int c;
int v = 7;
v = v - ((v >> 1) & 0x55555555); // reuse input as temporary
v = (v & 0x33333333) + ((v >> 2) & 0x33333333); // temp
c = ((v + (v >> 4) & 0xF0F0F0F) * 0x1010101) >> 24; // count
printf(" Number of Bits is %d",c);
/*-----------------------------------*/
de:http://graphics.stanford.edu/~seander/bithacks.html
Alguém pode me explicar a razão por trás disso?