写一个函数返回参数二进制中 1 的个数(三种方法)
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 的个数(三种方法)相关推荐
- C语言中写一个函数返回参数二进制中 1 的个数
通过C语言程序将十进制数转化成二进制数,然后求出二进制数中1的个数. 下面用三种方法来实现.来 方法一:除2取余法.对一十进制数,用2辗转相除至结果为1,将余数和最后的1从下向上倒序写就是对应的二进制 ...
- 写一个函数返回参数二进制中 1 的个数
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> Fun1(int a) //用移位 ...
- C语言中比较大小的函数模板,关于C++中定义比较函数的三种方法
关于C++中定义比较函数的三种方法 C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之.以下,小编为大家介绍关于C++中定义比较函数的三种方法,供 ...
- 写一个函数返回参数二进制中1的个数
开始想到的方法是,用取余2除以2循环计数的方法求出参数二进制中1的个数: #include <stdio.h> int count_one_bits(unsigned int x) {in ...
- 写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出
写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出 思路:所谓复制到另一个字符串中,就是使a,b数组中元素一一对应,因为字符串结束的标志是\0,所以最后要赋值\0. #include&l ...
- c++语言定义排序函数,关于C++中定义比较函数的三种方法小结
C++编程优与Pascal的原因之一是C++中存在STL(标准模板库).STL存在很多有用的方法. C++模板库中的许多方法都需要相关参数有序,例如Sort().显然,如果你想对一个集合进行排序,你必 ...
- 在JavaScript中重复字符串的三种方法
In this article, I'll explain how to solve freeCodeCamp's "Repeat a string repeat a string" ...
- 在JavaScript中反转字符串的三种方法
This article is based on Free Code Camp Basic Algorithm Scripting "Reverse a String" 本文基于F ...
- centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法
Linux系统中安装软件的三种方法 注:本文主要以CentOS为例介绍常用的安装方式,其他版本linux在文章底部 Linux系统中怎么安装软件,首先说一下应用程序与系统命令的区别: 1.文件位置 系 ...
最新文章
- “猜你喜欢” — 浅谈内容分发中的推荐系统
- 2015生命之旅---第一站重庆
- jclasslib查看字节码
- STL_算法_元素计数(count、count_if)
- JAVA单例模式 关于延迟加载问题
- python编程入门视频-Python编程入门电子书及视频教程-非常详细『强烈推荐』
- 面试题22_栈的压入和弹出序列
- Java_管家婆项目(三十一)——管家婆家庭记账软件(项目环境搭建、功能模块、代码)、后附网盘链接
- kafka权威指南学习笔记
- java开源引擎easyrule_【Urule介绍】开源可视化规则引擎
- 中国象棋人工智能实现
- 计算机启动硬盘自检,启动时硬盘自检?这样处理就没事了
- 腾讯音乐管理层调整:联席总裁谢国民辞职 谢振宇兼任CTO
- (5)完整的Django框架学习之自定义过滤器及标签
- Android开发:如何隐藏自己的app应用
- NetworkInterface网速监测
- redis学习笔记(十一)AKF、CAP理论
- <Zhuuu_ZZ>设计模式—面向接口编程
- 【java后端学习】java语言基础(夯实基础)
- echart 三维可视化地图_使用 ECharts GL 实现三维可视化 - 入门款
热门文章
- php sql文件太大导致无法上传,sql文件太大无法导入phpmyadmin
- hexo部署到github时,提示typeError [ERR_INVALID_ARG_TYPE]: The “mode“ argument must be integer. Receive...
- CSS 文字显示在图片的中间
- webpack基础webpack-dev-server配置
- FCN Caffe:可视化featureMaps和Weights(C++)、获取FCN结果
- Photoshop显示RGB值问题
- 关系型数据库和NOSQL的对比
- gRPC-Web发布,REST又要被干掉了?
- springMVC解析视图
- Linux命令之pstree - 以树状图显示进程间的关系