fengshituo 发表于 2008-4-19 18:06

一道笔试题

int func(x)
    {
    int countx = 0;
    while(x)
    {
    countx ++;
    x = x&(x-1);
    }
    return countx;
    }
求x=9999时输出结果,请详细解答下,谢谢

中学者 发表于 2008-4-19 18:26

偶才疏学浅, 答案是1

yijing21 发表于 2008-4-19 20:41

中间的是位与。。。这是不是跟整形在内存中分配有关。。功力不够。。

jiefen111 发表于 2008-4-19 21:27

这是求9999中用二进制表示时有多少位是1

sunkaidong 发表于 2008-4-19 21:35

同意楼上的观点

jiefen111 发表于 2008-4-19 21:37

9999用二进制表示是1001 1100 0001 111所以答案是8

jiefen111 发表于 2008-4-19 21:47

楼上的那位,看了你好多回帖,觉得你好强悍,帮忙看一下程序吧,我一直被内存泄露困扰着

页: [1]

编程论坛