二進制中1的個數

1、將數右移

int NumberOf1(int num)
{
	int count = 0;
	while (num)
	{
		if (num & 1 == 1)
			++count;
		num >>= 1;
	}
	return count;
}

2、將1左移

int NumberOf1(int num)

{

int count = 0;

 unsigned int flag = 1;

while (flag)

{

if (num&flag)//num&flag==1錯誤

++count;

flag<<= 1;

}

return count;

}

3、創新操作

int NumberOf1(int num)
{
	int count = 0;
	while (num)
	{
		++count;
		num = (num - 1)&num;
	}
	return count;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章