位运算统计二进制整数中1的个数

k=k&(k-1)可以消除k的二进制数的最后一个1.连续进行这个操作,每次消除一个1,直到全部消除为止。操作次数就是1的个数。

int num=0;

cin>>k;

while(k>0)

{

    k=k&(k-1);

    num++;

}

cout<<num<<endl;

posted on 2020-08-03 09:26  华山青竹  阅读(458)  评论(0编辑  收藏  举报

导航