题目:

算法思想: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;
}
本文介绍了一种高效计算二进制数中1的个数的方法,通过n=n&(n-1)的迭代操作,直到n变为0,迭代次数即为1的个数。示例展示了从二进制数转换到计算过程。
131

被折叠的 条评论
为什么被折叠?



