//求二进制数中1的个数
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
//===解法1:除2法============
int solution1(int v)
{
int num=0;
while(v)
{
if(v%2==1)
{
num++;
}
v=v/2;
}
return num;
}
//===========================
//======解法2:位操作法======
int solution2(int v)
{
int num=0;
while(v)
{
num+=v & 0x01;
v>>=1;
}
return num;
}
//===========================
//======解法3:与操作法======
int solution3(int v)
{
int num=0;
while(v)
{
v&=(v-1);
num++;
}
return num;
}
//===========================
int main()
{
int d=7;//二进制111
printf("%d\n",solution1(d));
printf("%d\n",solution2(d));
printf("%d\n",solution3(d));
return 0;
}
二进制数中1的个数
最新推荐文章于 2024-06-08 23:28:31 发布