例题:
给定一个整数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 一定是奇数