#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
void showBinary(int n) {
int a[1000];
int t=0;
while(n>0) {
a[t]=n%2;
n/=2;
t++;
}
for(int i=t-1; i>=0; i--)
printf("%d",a[i]);
printf("\n");
}
int bitCount1(int n) {
int ans=0;
while(n!=0) {
if(n&1==1) {
ans++;
}
n>>=1;
}
return ans;
}
int bitCount2(int n) {
int ans=0;
while(n!=0) {
n&=(n-1);
ans++;
}
return ans;
}
int bitCount3(int n) {
int ans=0;
while(n!=0) {
ans+=n%2;
n>>=1;
}
return ans;
}
int main() {
int n;
n = 13 ;
showBinary(n);
int ans1,ans2,ans3;
ans1=bitCount1(n);
printf("ans1 = %d\n",ans1);
ans2=bitCount2(n);
printf("ans2 = %d\n",ans2);
ans3=bitCount3(n);
printf("ans3 = %d\n",ans3);
return 0;
}
二进制中1的数目 ( C++ )
最新推荐文章于 2024-07-20 12:18:07 发布