中国某杀毒软件公司2010年3月笔试题

来源:互联网 发布:mac综合讨论区 编辑:程序博客网 时间:2024/05/21 09:43
#include<iostream>using namespace stdint func(int x){int count =0;while(x){count++;x=x&(x-1);}return count;}int main(){ cout<<func(9999)<<endl;return 0;}
以上代码运行结果是?<span style="white-space:pre"></span>func函数返回值是形参x转化成二进制后包括1的数量。理解这一点就很容易答出来了,9999转化成二进制是:10011100001111答案是8x&(x-1)其实就是计算二进制数x中有几个1
0 0