以下是涉及位运算的功能。我不太清楚这个功能在做什么
int NumberOfSetBits( int i )
{
i = i - ((i >> 1) & 0x55555555);
i = (i & 0x33333333) + ((i >> 2) & 0x33333333);
return (((i + (i >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24;
}
编辑: 在How does this algorithm to count the number of set bits in a 32-bit integer work?
中有详细的说明