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】