计算一个整数二进制位中1的个数

计算一个整数二进制位中1的个数

首先,我有点烦,这个办法其实还不错,我自己不想写,想转载一下,结果我看了好几个人的博客,都是这样的。


突然觉得很难受。后来在一个博主那里看到《剑指offer》提到过这个问题。哎,我还是自己写一下,记录一下吧。

int OneCount(int x)  
{
	int count = 0;
	while (x)
	{
		n &= (n - 1);
		count++;
	}
	return count;
}

这个办法在数字不是很大的时候(不超过int的范围的时候),不用考虑正负数的问题,(负数的补码和原码不一样)
posted @ 2017-09-19 16:18  zy010101  阅读(119)  评论(0编辑  收藏  举报