方法1:
int BitCount(unsigned int n)
{
int iCount = 0;
while (n > 0)
{
if ((n & 1) == 1)
++iCount;
n >>= 1; //n右移一位
}
return iCount;
}
方法2:
int BitCount(unsigned int n)
{
int iCount = 0;
for (iCount; n; ++iCount)
n &= (n - 1); //清除最低位的1
return iCount;
}