输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。

求int型正整数在内存中存储时1的个数

http://www.nowcoder.com/questionTerminal/440f16e490a0404786865e99c6ad91c9

#include <stdio.h>
int main(void)
{
	int num;
	int count = 0;
	#pragma warning(suppress : 4996)//用VS写的,需要压制警告
	scanf("%d", &num);
	int length = sizeof(int) * 8;
	for (int i = 0; i < length - 1; i++)
	{
		if (num & 1)
			count++;
		num >>= 1;
	}
	printf("%d\r\n", count);
	return 0;
}

全部评论
是的 符号位也算在内 不用减一
点赞 回复 分享
发布于 2021-09-11 15:05
为什么循环次数是31次,不是32次?一个整型不应该是32位吗?
点赞 回复 分享
发布于 2021-08-05 16:31

相关推荐

程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
07-10 14:08
已编辑
江西农业大学 Java
念旧select:做完把项目放到自己硬盘里给他看,看完拷走
点赞 评论 收藏
分享
评论
19
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务