| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1596 人关注过本帖
标题:如何不用循环统计整数值中 1 的个数
取消只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
已结贴  问题点数:20 回复次数:2 
如何不用循环统计整数值中 1 的个数
比如,整数0x0012中对应的二进制中 1 的个数为 2,
如果不允许使用循环,应该如何实现呢 ?
搜索更多相关主题的帖子: 统计 整数 
2009-10-20 21:57
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
//怎样快速算出一个二进制32位整数中比特位为1的个数?
 size_t   bit_cnt(unsigned   long   value)   
  {         
                  
  value   =   (value   &   0x55555555)   +   (   (value   >>   1)   &   0x55555555);                  
  value   =   (value   &   0x33333333)   +   (   (value   >>   2)   &   0x33333333);   
  value   =   (value   &   0x0f0f0f0f)   +   (   (value   >>   4)   &   0x0f0f0f0f);                 
  value   =   (value   &   0x00ff00ff)   +   (   (value   >>   8)   &   0x00ff00ff);   
  value   =   (value   &   0x0000ffff)   +   (   (value   >>   16)   &   0x0000ffff);   
        
          return   (size_t)value;   
  }

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2009-10-20 23:06
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
大家看懂 3楼实现的原理了吗?

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-07-04 01:46
快速回复:如何不用循环统计整数值中 1 的个数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026612 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved