【第6题】360校园招聘2015届技术类笔试题

来源:互联网 发布:2016淘宝618报名入口 编辑:程序博客网 时间:2024/04/17 05:14

6. 假定x=65530,下面函数的返回值是多少?()
int func(x)
{
        int countx = 0;
        while (x)
        {
              countx++;
              x = x & (x - 1);
        }
       return countx;
}

A、100
B、14
C、20
D、16



答案:B
函数的作用是统计x二进制数中1的个数。
这个作用是对整型中1的个数进行统计,x=x&(x-1);的作用是每次循环把x的二进制中从右往左数的最后一位1变成0,直道变成全0为止,循环结束。
65530的二进制是0000 0000 0000 0000 1111 1111 1111 1010,所以结果是14
还有类似的题目,迭代式为x=x|(x+1),作用是统计x二进制中0的个数



文章来自: 笔试题库,转载请注明出处!【bishi.crap.cn、bishi.org.cn】

0 0
原创粉丝点击