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

力扣-比特位计数(统计一个数二进制下1的个数)

下面是题面

1.用c++的内置函数__builtin_popcount()
语法:__builtin_popcount(int x),函数会返回一个二进制下x所含的1的个数
2.直接数位枚举
这是最慢也是暴力做法,写法也很简单
用一个while循环把x进行模2,如果是1就计数加1,然后x /=2 就好,这里就不展示代码了
3.用x &= (x - 1)
这样用了数在二进制下的规律,可以实现直接从最低位的1开始进行处理,然后更新换上一个1,代码如下:
 

while (x > 0) {

        x &= (x - 1);

        ones++;

    }
这里,ones就是要求的x在二进制下1的个数

相关文章:

  • 【部署】读取excel批量导入dify的QA知识库
  • Linux 的 UDP 网络编程 -- 回显服务器,翻译服务器
  • SpringBoot启动流程深入分析
  • 自定义类、元组、字典和结构体对比——AutoCAD C# 开发中建立不同对象之间的联系
  • 【发票提取表格】批量PDF电子发票提取明细保存到Excel表格,批量提取ODF电子发票明细,行程单明细,单据明细保存到表格,使用步骤、详细操作方法和注意事项
  • python 自动化教程
  • Conda 完全指南:从环境管理到工具集成
  • 探索C++对象模型:(拷贝构造、运算符重载)成员函数的深度解读(中篇)
  • PYTHON训练营DAY28
  • 18.自动化生成知识图谱的多维度质量评估方法论
  • R语言数据框(datafram)数据的构建及简单分析
  • SAP学习笔记 - 开发12 - CAP 之 开发准备,添加服务
  • MySQL刷题相关简单语法集合
  • 2023年全国青少年信息素养大赛-图形化编程复赛真题—打气球
  • PIC16F18877 的主时钟 设置方法
  • 第八节第四部分:认识泛型、泛型类、泛型接口
  • php fiber 应用
  • OpenCV透视变换
  • Java 应用如何实现 HTTPS:加密数据传输的实用指南
  • Ankr:Web3基础设施的革新者
  • 专利申请全球领先!去年我国卫星导航与位置服务产值超5700亿元
  • 天算星座二期首批卫星成功发射,将助力6G空天信息基础设施建设
  • 高飞已任南航集团党组副书记
  • 全国林业院校校长论坛举行,聚焦林业教育的创新与突破
  • 官方通报汕头违建豪宅“英之园”将强拆:对有关人员严肃追责问责
  • 涉案资金超2亿元 “健康投资”骗局,专挑老年人下手