首页 > 其他 > 详细

求二进制数中1的个数

时间:2014-02-17 10:20:33      阅读:338      评论:0      收藏:0      [点我收藏+]

题目描述:

任意给定一个32位整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4

int countOneNum(int n)
{
	if(n==0)
	{
	 return 0;
	}
	int num=0;
	while(n)
	{
	  num++;
	  int m=n-1;
	  n=n&m;
	}
	return num;
}

把一个整数减去1之后和原来的整数做位运算,得到的结果相当于是把整数的二进制表示中最右边的一个1变成0


求二进制数中1的个数

原文:http://blog.csdn.net/richard_rufeng/article/details/19292493

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!