C语言中经典算法题目之一输入一个十进制数转换二进制有多少个1
发布日期:2021-09-20 08:56:11 浏览次数:18 分类:技术文章

本文共 668 字,大约阅读时间需要 2 分钟。

C语言中经典算法题目之一输入一个十进制数转换二进制有多少个1

  1. 思路:
    当我们使用%去一个一个进行循环的时候,我们不一定可以得到最好的结果,比如当我们输入一个负数时,输出结果会显示不准确,所以这里用到我们的一个规律我们使用while循环的时候,使用 n=n&(n-1),下面有具体的介绍。
#include
#define count_one_jk(int n) //定义一个函数,方便我们下面的使用{ int count=0; while(n) { count++; n=n&(n-1); //可以带几个二进制数进去自行检验 }return count;}int main(){ int num; int ret; scanf("%d",&num); ret = count_one_jk(num); //输入的数字再函数里面自行运算,得到我们1的个数 printf("%d",red);return 0;}

结果:

输入15
输出4
输入-1
输出32

转载地址:https://blog.csdn.net/a_hang_szz/article/details/88022553 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C语言中的冒泡排序法简述
下一篇:C语言中的进制类型题目,获取一个数二进制序列中所有的奇数位和偶数位,分别输出二进制序列

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年03月27日 17时03分07秒