使用分治方法,计算32位整数中二进制码1的个数

Charles_Tangtang 2012-12-11 04:08:36
uint8_t count1bit(uint32_t num)
{
num=(num &0x55555555)+((num>>1)& 0x55555555);
num=(num & )+((num>> )& );
num=(num &0x0F0F0F0F)+((num>> )& 0x0F0F0F0F);
num=(num & )+((num>> )& );
num=(num & )+((num>> )& );
return (uint8_t)(num);
}
求大神讲解思路,并补充完整程序……
...全文
238 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
fire_woods 2012-12-11
  • 打赏
  • 举报
回复
虽然有很多地方没有了, 但是看样子是把所有的1加起来, 只是把多个加法并在一起做而已

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧