#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> Fun1(int a) //用移位的方法 { int i = 0; int count1 = 0; for (i = 0; i < 32; i++) { if ((a>>i)&1==1) { count1++; } } return count1; } Fun2(int a) //用n&(n-1)的方法 循环了几次就有几个1 { int count2 = 0; while (a) { a=a&(a - 1); count2++; } return count2; } int main() { int a = 0; printf("请输入一个二进制数\n"); scanf("%d", &a); int count1 = Fun1(a); printf("%d\n", count1); int count2 = Fun2(a); printf("%d\n", count2); system("pause"); return 0; }
写一个函数返回参数二进制中 1 的个数
原创be_better_ ©著作权
©著作权归作者所有:来自51CTO博客作者be_better_的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:用C语言实现三子棋游戏
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
MySQL5.7.36安装-二进制(源码)版本
MySQL5.7.36安装-二进制(源码)版本
mysql MySQL sed -
用一个函数返回参数二进制中1的个数
数火柴棍(写函数返回参数二进制中1的个数)
二进制 参数 返回