1.运用了除法,取余方式递推出结构
2.运用右移符(>>)运算
3.利用算术与(&)运算

三种方法效率越来越高,减少成本

#include<stdio.h>int Number1(int n)
{int k;int count=0;while (n > 0){k = n % 2;n /= 2;if (1 == k){count++;}}return count;
}int Number2(int n)
{int count = 0;while (n>0){if ((n & 1) == 1){count++;}n = n >>1 ;}return count;
}int Number3(int n)
{int count = 0;while (n){n = n&(n - 1);count++;}return count;
}
int main()
{int n;printf("请输入一个数:\n");scanf("%d",&n);int ret1=Number1(n);printf("%d\n",ret1);int ret2 = Number2(n);printf("%d\n",ret2);int ret3 = Number3(n);printf("%d\n",ret3);system("pause");return 0;
}

转载于:https://blog.51cto.com/14233078/2378424

写一个函数返回参数二进制中 1 的个数(三种方法)相关推荐

  1. C语言中写一个函数返回参数二进制中 1 的个数

    通过C语言程序将十进制数转化成二进制数,然后求出二进制数中1的个数. 下面用三种方法来实现.来 方法一:除2取余法.对一十进制数,用2辗转相除至结果为1,将余数和最后的1从下向上倒序写就是对应的二进制 ...

  2. 写一个函数返回参数二进制中 1 的个数

    #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> Fun1(int a) //用移位 ...

  3. C语言中比较大小的函数模板,关于C++中定义比较函数的三种方法

    关于C++中定义比较函数的三种方法 C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之.以下,小编为大家介绍关于C++中定义比较函数的三种方法,供 ...

  4. 写一个函数返回参数二进制中1的个数

    开始想到的方法是,用取余2除以2循环计数的方法求出参数二进制中1的个数: #include <stdio.h> int count_one_bits(unsigned int x) {in ...

  5. 写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出

    写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出 思路:所谓复制到另一个字符串中,就是使a,b数组中元素一一对应,因为字符串结束的标志是\0,所以最后要赋值\0. #include&l ...

  6. c++语言定义排序函数,关于C++中定义比较函数的三种方法小结

    C++编程优与Pascal的原因之一是C++中存在STL(标准模板库).STL存在很多有用的方法. C++模板库中的许多方法都需要相关参数有序,例如Sort().显然,如果你想对一个集合进行排序,你必 ...

  7. 在JavaScript中重复字符串的三种方法

    In this article, I'll explain how to solve freeCodeCamp's "Repeat a string repeat a string" ...

  8. 在JavaScript中反转字符串的三种方法

    This article is based on Free Code Camp Basic Algorithm Scripting "Reverse a String" 本文基于F ...

  9. centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法

    Linux系统中安装软件的三种方法 注:本文主要以CentOS为例介绍常用的安装方式,其他版本linux在文章底部 Linux系统中怎么安装软件,首先说一下应用程序与系统命令的区别: 1.文件位置 系 ...

最新文章

  1. “猜你喜欢” — 浅谈内容分发中的推荐系统
  2. 2015生命之旅---第一站重庆
  3. jclasslib查看字节码
  4. STL_算法_元素计数(count、count_if)
  5. JAVA单例模式 关于延迟加载问题
  6. python编程入门视频-Python编程入门电子书及视频教程-非常详细『强烈推荐』
  7. 面试题22_栈的压入和弹出序列
  8. Java_管家婆项目(三十一)——管家婆家庭记账软件(项目环境搭建、功能模块、代码)、后附网盘链接
  9. kafka权威指南学习笔记
  10. java开源引擎easyrule_【Urule介绍】开源可视化规则引擎
  11. 中国象棋人工智能实现
  12. 计算机启动硬盘自检,启动时硬盘自检?这样处理就没事了
  13. 腾讯音乐管理层调整:联席总裁谢国民辞职 谢振宇兼任CTO
  14. (5)完整的Django框架学习之自定义过滤器及标签
  15. Android开发:如何隐藏自己的app应用
  16. NetworkInterface网速监测
  17. redis学习笔记(十一)AKF、CAP理论
  18. <Zhuuu_ZZ>设计模式—面向接口编程
  19. 【java后端学习】java语言基础(夯实基础)
  20. echart 三维可视化地图_使用 ECharts GL 实现三维可视化 - 入门款

热门文章

  1. php sql文件太大导致无法上传,sql文件太大无法导入phpmyadmin
  2. hexo部署到github时,提示typeError [ERR_INVALID_ARG_TYPE]: The “mode“ argument must be integer. Receive...
  3. CSS 文字显示在图片的中间
  4. webpack基础webpack-dev-server配置
  5. FCN Caffe:可视化featureMaps和Weights(C++)、获取FCN结果
  6. Photoshop显示RGB值问题
  7. 关系型数据库和NOSQL的对比
  8. gRPC-Web发布,REST又要被干掉了?
  9. springMVC解析视图
  10. Linux命令之pstree - 以树状图显示进程间的关系