碰巧看到的题目,当时看其他人用循环去计算该int值当中有多少个二进制数字1,就感觉这样的效率不是很高。碰巧正好在用位运算相关知识,就用来试了一下,效率确实有所提高。
解题思路
1、利用位运算符 “&”(按位与)判断整数a对应二进制的bit0是否为1。是,则计数器count加一;
2、利用右移运算符 “>>” 每次将整数a向右移动1位;
3、重复步骤1、2,直到整数a为零。
#include <stdio.h>
int main()
{
int a = 8432789;
int count = 0