本文里主要会通过三种方法解决该问题:
1.除二取1,计数器加一
2.按位与1
3.按位与其减一
从易到难,读者可以自行阅读
1.利用二进制求法中的基本原理
我们可以看到计算11的二进制先计算11/2作为下一个被除数,再计算11%2我们知道一个数摸2的结果只有可能是0或者1,如果是1,则计数器加一这是一次计算,接下来再以11/5的结果作为下一次计算,重复上述步骤即可
#include <stdio.h>
int count_1(int a) {
int count = 0;//定义一个计数器变量,a%2==1成立count++
while (a) {
if (a % 2 == 1)
count++;
a = a /