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

时间:2021-10-18 18:50:15

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.cnbishi.org.cn