欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

统计一个整数二进制格式中包含多少个“1”

程序员文章站 2024-01-20 20:44:28
...

统计一个整数二进制格式中包含多少个“1”,以位运算来做比较容易。
例:
17的二进制数:
00010001
具体步骤为:每次都让二进制数与其减1做按位与运算。
统计一个整数二进制格式中包含多少个“1”
当最后为0时结束。

  int main()
    {
    	int num = 17;
    	int count = 0;
    	while (num != 0)
    	{
    		count += 1;
    		num &= (num - 1);
    	}
    	printf("%d\n", count);
    }

运行结果:
统计一个整数二进制格式中包含多少个“1”