C语言 两种方法求一个十进制无符号数的二进制数中1的个数
2015-03-19 11:39
197 查看
首先要了解十进制数的二进制转换的函数,设置一个计数器p,当取余的数为1时,计数器加1,利用函数的声明调用 函数,最后在主函数中输出i的值。
如果这样改在数很大执行效率会快很多
#include <stdio.h> int count(int m) { int p; int i=0; while(m!=0) { p=m%2; m=m/2; if(p==1) { i++; } } return (i); } int main() { int a; int b; int count(int m); scanf("%d",&a); b=count(a); printf("%d",b); return 0; }
如果这样改在数很大执行效率会快很多
#include <stdio.h> int count(int m) { int p; int i=0; while(m!=0) { <strong><span style="color:#ff0000;"> p=m&1; </span>//每个数与1按位与即求得m的最低位<span style="color:#ff0000;"> m=m>>1; </span>//m向右移1位,即等同于对该数除2</strong> if(p==1) { i++; } } return (i); } int main() { int a; int b; int count(int m); scanf("%d",&a); b=count(a); printf("%d",b); return 0; }
相关文章推荐
- c语言:两种方法实现给定一个大写字母,用小写字母输出
- C语言 判断字符是否是一个数字的两种方法
- 【C语言】 两种不同的方法在一个字符串中找指定的字符
- c语言:两种方法实现给定一个大写字母,用小写字母输出
- 汇编语言: 试编写一段程序,从键盘接收一个-32768-32767 间的十进制有符号数,并在终端上 显示与它等值的二进制数。
- 汇编语言: 试编写一段程序,从键盘接收一个 0-65535 间的十进制无符号数,并在终端上显示与 它等值的二进制数。
- C语言计算一个结构体内成员地址的偏移量的两种方法(代码实例)
- 遇到的一个设计问题,两种方法的实现
- js中将多个语句写成一个语句的两种方法小结
- .NET 2.0 中,两种如何创建一个线程安全的 UI 的方法
- 一个链接按两种方式打开两个网址的方法
- C#只允许启动一个WinFrom进程的两种方法
- 请大家看一下一个c语言中的链表问题,下面的代码是有错误的!!请大家说出错误的原因,以及修改的方法!!!
- 一个使用特殊符号分割的字符串解码方法(Delphi版)
- 一个简单登陆框的变化+更新了如何连接sql数据库,获得数据集,比较两种方法(数据集和读数据)
- Java转换十进制为其他进制的两种方法
- Linux下查看一个命令的帮助的两种方法
- 自已写的一个方法,移动负号和加千分位符号.
- 两种方法在VB+MAPX中在指定坐标处添加符号
- 在DWR中实现直接获取一个JAVA类的返回值的两种方法