一片冰心在玉壶

那时我们有梦,关于文学,关于爱情,关于穿越世界的旅行, 如今我们深夜饮酒,杯子碰到一起,都是梦破碎的声音. 交往都是初逢,爱情都在心里,往事都在梦中, 希望都带着注释,信仰都带着呻吟. 总有善意的光逃避现世的繁琐而寻找片刻的安宁, 也许,就是你凝视这里的眼睛

博客园 首页 联系 订阅 管理

当时想都没想,觉得这题很容易,直接写代码如下:

 

unsigned int FindOneInNumber_01(unsigned int x)
{
    unsigned 
int n;
    
for(n=0; x; x >>= 1)
        
if (x & 1) n++;
    
return n;
}

 

回来上坛子里一看,觉得这方法不是太好,有高手的写法:

 

1 unsigned int FindOneInNumber_02(unsigned int x)
2 {
3     unsigned int n;
4     for(n=0; x; n++)
5         x &= x-1;
6     return n;
7 }

 

区别是第二中方法不用判断条件转跳,当大量数据处理是优势就出来了

posted on 2010-03-16 08:44  Sankye  阅读(723)  评论(0编辑  收藏  举报