(C语言)统计二进制中1的个数

写一个函数返回参数二进制中 1 的个数。比如: 15 二进制: 0000 1111 里边有4个1(C语言实现);
今天我想用简单的函数调用,编写一个简单的函数完成题面要求
简单思路:做一个简单循环,让这个数自己与自己比较,用位操作符&,有1则count++,做完统计即可找出它自身有多少个1,代码如下:

#include
#include
#pragma warning(disable: 4996);
int GeShu(int num)
{      
int count = 0;   
while (num)  
 {  num = num & (num - 1);   
    count++;   
  }  
  return count; 
}
int main()
{ 
  int num; 
  printf("输入一个整数");
     while (scanf("%d", &num) == 1) 
       { 
             printf("%d\n", GeShu(num)); 
       }
   system("pause");
   return 0}

(C语言)统计二进制中1的个数_第1张图片

仅代表个人思路与做法,还请各位爱好者批评指正!

你可能感兴趣的:((C语言)统计二进制中1的个数)