关于x = x&(x-1); 的程序

来源:百度知道 编辑:UC知道 时间:2024/07/07 03:47:52
int main(void)
{
int countx=0;
int x = 2007;
while(x)
{
countx++;
x = x&(x-1);
}
}
请问如何快速得到countx
这是笔试题

此串代码是计算 2007的二进制代码中 1 的个数,
2007的二进制代码为00..0 0111 1101 0111中 1的个数为9,故答案应该是 9

不懂你啥意思

你运行一下不就知道了吗。。。

只能运行一下了 笔头算上千的二进制数吃不消