C语言统计一个数二进制中1的个数
程序员文章站
2022-06-03 12:20:01
...
这里还是要用到位操作符的知识,我在前边还写了关于运用位操作符的小程序,第一篇统计两数二进制数中不同的位数里有关于位操作符的详解,有兴趣可以去看看
#include <stdio.h>
#include <windows.h>
#pragma warning (disable:4996)
int Parate(int x)
{
int i = 0;
int count = 0;
while (i < (sizeof(x)* 8))//szeof计算了x的字节数,乘8计算了它的位数
{
if (x&(1 << i))
{
count++;//统计了二进制数中的1的个数
}
i++;
}
return count;
}
int main()
{
int x = 0;
printf("请输入一个数:");
scanf("%d",&x);
printf("该数的二进制序列中有%d个1\n", Parate(x));
system("pause");
return 0;
}
运行截图如下:
推荐阅读
-
C#统计字符串中数字个数的方法
-
C#统计字符串中数字个数的方法
-
剑指offer11:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(进制转换,补码反码)
-
在Exce中运用公式统计一列数据中相同数值的个数
-
Linux统计一个文件中特定字符个数的方法
-
c语言:一组数据中只有一个数字出现了一次。(使用位运算)
-
用C语言写一个函数返回参数二进制中1的个数
-
我们在删除SQL Sever某个数据库表中数据的时候,希望ID重新从1开始,而不是紧跟着最后一个ID开始需要的命令
-
c语言:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?打印出来?
-
C语言:有一个分数序列,2/1+3/2+5/3+8/5+13/8+…求出这个数列前 20 项的和