快速法求得二进制中1的个数
这种方法速度较快,运算次数只与1的个数有关。原理是不断的清除n的二进制表示中最右边的1,同时累加计数器,直至n为0:
代码
C++:
#include <iostream>
using namespace std;
int bitcount(int x);
int main(int argc, char *argv[]) {
cout<<"请输入数字:"<<endl;
int x;
cin>>x;
int y = bitcount(x);
cout<<"二进制中1的个数为:"<<y<<endl;
}
int bitcount(int x){
int c=0;
for(c = 0 ;x;++c){
x&=(x-1);
}
return c;
}
版权声明:本文为qq_15097009原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。