求一个无符号整形变量1的个数

来源:互联网 发布:网络工程研究生 知乎 编辑:程序博客网 时间:2024/05/01 07:16

第一种方法:位操作,这种操作的复杂度是二进制的位数:

#include<iostream.h>main(){unsigned int a;cin>>a;int count=0;int num=0;while(count<8){if(a&1==1){             num++;}a>>=1;count++;}cout<<num<<endl;}


第二中方法:时间复杂度只与1的个数有关:

#include<iostream.h>main(){unsigned int a;cin>>a;int count=0;int num=0;while(a){a&=a-1;        num++;}cout<<num<<endl;}


原创粉丝点击