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

C:写一个函数返回参数二进制中1的个数

方法1:

  我们可以通过余10除10的方式来获得一个十进制数中的每一位。同样的对于一个二进制数,我们可以通过余2除2的方式获得所有的二进制位。

  但是如果传入的是负数,例如-1,这个时候模运算会出问题。我们可以将其强制转化为无符号数,这样就被编译器理解为一个很大的数了。

方法2:

  我们可以通过右移操作符和&1结合,来求出一共有多少个1。

方法3:

  上面两种方式的效率都很低。

n = n & (n - 1)

  每一次计算,都可以二进制中最右边一个1变成0。

 

拓展:判断一个数是不是2的n次方

  我们会发现2的n次方的数在二进制下只有1个1,通过上面的方法,如果成立那么就是二进制数了。

http://www.jsqmd.com/news/177827/

相关文章:

  • 巴菲特的护城河理论2.0:数字经济时代的竞争优势
  • 01-PGBegin
  • OBS直播教程:OBS怎么美颜?OBS怎么开美颜摄像头?
  • C++万能类:any
  • 02-PGBasicOperations
  • 02-PGBasicOperations
  • Claude-Opus-4.5 国内落地最佳实践:基于 API 网关的低延迟架构方案
  • SHEPWM特定谐波消除pwm 三相两电平 matlab/simulink2019a版本
  • python基础2
  • Goodbye 2025! Hello 2026!
  • C++新特性:string_view
  • 03-PGDataType
  • 03-PGDataType
  • 全网最全9个AI论文写作软件,专科生毕业论文必备!
  • 04-PGConstraint
  • 大数据时代 RabbitMQ 助力数据高效分发
  • 学霸同款2025 AI论文平台TOP9:专科生毕业论文全攻略
  • 基于流体输配管网教材的液冷服务器管道设计方案建议
  • 在 Web 前端实现流式 TTS 播放
  • 在 Web 前端实现流式 TTS 播放
  • Dreams in Pursuit 2025
  • 全网最全8个AI论文网站,专科生轻松搞定毕业论文!
  • 2025再见,码农当自强,47岁尚能饭否
  • 2025再见,码农当自强,47岁尚能饭否
  • springboot大学社团管理系统
  • python餐厅点餐及餐桌推荐系统vue
  • [免费]基于Python的Django+Vue3在线商城系统(简易版)【论文+源码+SQL脚本】
  • python高校班主任辅导员管理系统vue
  • Zookeeper集群数据是如何同步的?
  • tsgqec.dll文件损坏丢失找不到 打不开程序 下载方法