当前位置: 首页 > news >正文

C语言每日一题之整数求二进制1的个数

在这里插入图片描述

今天分享一道题目,用三种方法来求解
二进制1的个数

方法1
我们的十进制除10和取余数就可以得到我们每一位的数字,那我们的二进制也可

#include<stdio.h>
int num_find_1(unsigned int n)
{int count = 0;while (n){if (1 == n % 2){count++;}n /= 2;}return count;
}
int main()
{int n = 0;scanf("%d", &n);int ret = num_find_1(n);printf("%d", ret);return 0;
}

这是一种方法,另外一种就是我们可以用移位操作符来算

int num_find_1(int n)
{int i = 0;int count = 0;for (i = 0; i < 32; i++){if (((n >> i) & 1) == 1){count++;}}return count;
}
int main()
{int n = 0;scanf("%d", &n);int ret = num_find_1(n);printf("%d", ret);return 0;
}

这个方法是不是也是特别妙呢,当然还有更妙的方法,请看!!!


int num_find_1(int n)
{int i = 0;int count = 0;while (n){n = n & (n - 1);count++;}return count;
}
int main()
{int n = 0;scanf("%d", &n);int ret = num_find_1(n);printf("%d", ret);return 0;
}

相信看完总会学会一种方法,今天的分享就到这里啦,不知道大家有没有注意到我的开头不一样了,嘻嘻。

http://www.lryc.cn/news/99152.html

相关文章:

  • AcWing 4443.无限区域
  • 2D坐标系下的点的转换矩阵(平移、缩放、旋转、错切)
  • 【Rabbitmq】报错:ERROR CachingConnectionFactory Channel shutdown: channel error;
  • el-table组件的el-table-column电脑端使用fixed属性固定,移动端不使用固定,怎么实现?
  • RocketMQ 行业分享
  • 物联网场景中的边缘计算解决方案有哪些?
  • 【C++ 进阶】学习导论:C/C++ 进阶学习路线、大纲与目标
  • 【数据结构】实验七:字符串
  • 排序算法、
  • rbd快照管理、rbd快照克隆原理与实现、rbd镜像开机自动挂载、ceph文件系统、对象存储、配置对象存储客户端、访问Dashboard
  • vue、vuex、vue-router初学导航配合elementui及vscode快捷键
  • Elasticsearch:使用 ELSER 释放语义搜索的力量:Elastic Learned Sparse EncoderR
  • MySQL数据库分库分表备份(shell脚本)
  • 建造者设计模式go实现尝试
  • 创建交互式用户体验:探索JavaScript中的Prompt功能
  • 自然语言处理从入门到应用——LangChain:提示(Prompts)-[提示模板:基础知识]
  • OpenPCDet调试出现的问题
  • 【业务功能篇58】Springboot + Spring Security 权限管理 【下篇】
  • VBA技术资料MF34:检查Excel自动筛选是否打开
  • spring扩展点
  • Skin Shader 使用自动生成的Thickness
  • Docker中的网络
  • SRS开源代码框架,协程库state-threads的使用
  • 【QT 网络云盘客户端】——登录界面功能的实现
  • 【复盘与分享】第十一届泰迪杯B题:产品订单的数据分析与需求预测
  • X - Transformer
  • ubuntu下畅玩Seer(via wine)
  • 第五章:Spring下
  • 在CSDN学Golang云原生(Kubernetes基础)
  • 给APK签名—两种方式(flutter android 安装包)