⬅ 返回

例题:

给定一个整数k,请你求出该整数的二进制表示中1的个数。

思路:

1、暴力枚举

通过k&1可以得到该数字的最后一位,之后让k右移一位,循环

代码

			int num = 0;
			while(k){
            num+=k&1;
            k=k>>1;
        }

2、运用bitset容器

代码

#include <iostream>
#include <bitset>
using namespace std;
int main()
{
        int k;cin>>k;
        bitset<32> s(k);//把k转化为二进制储存在bitset容器中
        cout << s.count() << " ";//输出1的个数
}

3、题外知识

可以用位运算判断是奇数还是偶数,若k&1==1 一定是奇数