1、位1的个数
int hammingWeight(uint32_t n) {
int ans=0;
while(n){
n=n&(n-1);
ans++;
}
return ans;
}
2、二进制中1的个数
int hammingWeight(uint32_t n) {
int count=0;
while (n){
n=n&(n-1);
count++;
}
return count;
}
//3、根据数字二进制下1的个数排序
4、二进制表示中质数个计算置位
int zhishu(int n){
if(n==1){
return false;
}
for(int i=2;i<=n/i;++i){
if(n%i==0){
return false;
break;
}
}
return true;
}
int numOne(int n){
int ans=0;
while(n){
n&=(n-1);
ans++;
}
return ans;
}
int countPrimeSetBits(int left, int right){
int sum=0;
for(int i=left;i<=right;++i){
if(zhishu(numOne(i))){
++sum;
}
}
return sum;
}
5、2的幂
bool isPowerOfTwo(int n){
unsigned int x=1;
if(n<=0){
return false;
}
if(n==1){
return true;
}
for(int i=1;i<=31;++i){
x*=2;
if(x==n){
return true;
}
}
return false;
}