题目:
算法思想:n = n & (n-1),多少次迭代使得n为0,就有多少个1。举个例子,n是二进制数100,n-1就是011,与一次刚好为0。同理n是1100,一次操作变成了1000,两次就是0。
代码:
int hammingWeight(uint32_t n) {
int result = 0;
while(n != 0)
{
n = n & (n-1);
result++;
}
return result;
}