#include <stdio.h>
int main()
{
//统计num补码中有几个1
int num = 0;
int count = 0;
scanf("%d",&num);
int i = 0;
for (i = 0; i < 32; i++)
{
//按位与--都是1才为1
if (1==((num>>i)&1))
{
count++;
}
}
printf("%d\n", count);
return 0;
}
相关文章
- 求一个整数储存在内存中的二进制1的个数
- 编写代码,求一个整数在内存中的二进制中1的个数
- C++求一个十进制的二进制中1的个数
- 小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取部分求和
- 输入一个正整数n,计算出[0,n]这些整数中的二进制数没有连续3个1的数字有多少
- 将一个数转化为二进制后,求其中1的个数 C++