对于一个十进制数,当它为二进制形式的时候,如何知道它有多少个1呢?下面 我从三种方法来进行说明:
1. 除2的方法:
例如1011010,当它除2之后,结果为101101
101101,再除2,结果为10110,也就是说,当一个数%2 == 1时,说明存在一个1,这时候记录一次,直到这个数变成0之后,记录结束。
#include <bits/stdc++.h>
using namespace std;
const int M = 10000;
int main()
{
int n, num;
num = 0;
cin >> n;
while(n)
{
if(n % 2)
{
num++;
}
n /= 2;
}
cout << num << endl;
return 0;
}