注册 登录
编程论坛 C++教室

一道笔试题

fengshituo 发布于 2008-04-19 18:06, 748 次点击
int func(x)
    {
    int countx = 0;
    while(x)
    {
    countx ++;
    x = x&(x-1);
    }
    return countx;
    }
求x=9999时输出结果,请详细解答下,谢谢
6 回复
#2
中学者2008-04-19 18:26
偶才疏学浅, 答案是1
#3
yijing212008-04-19 20:41
中间的是位与。。。这是不是跟整形在内存中分配有关。。功力不够。。
#4
jiefen1112008-04-19 21:27
这是求9999中用二进制表示时有多少位是1
#5
sunkaidong2008-04-19 21:35
同意楼上的观点
#6
jiefen1112008-04-19 21:37
9999用二进制表示是1001 1100 0001 111所以答案是8
#7
jiefen1112008-04-19 21:47
楼上的那位,看了你好多回帖,觉得你好强悍,帮忙看一下程序吧,我一直被内存泄露困扰着
1