判断一个二进制数中1的个数:
我们知道如果一个数除以2,原来的数字会减少一个0;如果除的过程中有余,那么表示当前位置有一个1;
以 10 100 010为例:
第一次除以2:
商是1 010 001,余数是0;
第二次除以2:
商是101 000,余数是1,
这样我们可以根据余数判断出二进制的书中有几个1;
代码:
#include<iostream>
using namespace std;
int count(int x)
{
int num = 0;
while (x)
{
if (x % 2 == 1)
num++;
x = x / 2;
}
return num;
}
int main()
{
int a = 100;
int b = count(a);
cout << b << endl;
system("pause");
return 0;
}