☰
计算一个 unsigned int 中 “1“ 的个数
2026/10/11 1:17:03 网站建设 项目流程

计算一个unsigned int中"1"的个数

  • 前段时间看到一个神奇的算法, 计算unsigned int类型中 1 的个数
  • 这个算法的厉害之处在于它的运行效率特别高, 下面是代码以及我做的笔记, 大家来讨论讨论.

代码

intcount_bits(unsignedinta){unsignedintx=a;x=x-((x>>1)&0x55555555);///< 1: ->相邻2位 "1" 的个数和x=(x&0x33333333)+((x>>2)&0x33333333);///< 2: ->相邻4位 "1" 的个数和x=(x+(x>>4))&0x0f0f0f0f;///< 3: ->相邻8位 "1" 的个数和x=x+(x>>8);///< 4: ->相邻16位 "1" 的个数和return(x+(x>>16))&0xff;///< 5: ->相邻32位 "1" 的个数和}

讲解


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询