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

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

#include<stdio.h>
#include<windows.h>
#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}

在这里插入图片描述

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

猜你喜欢

转载自blog.csdn.net/DrewLee/article/details/107234035