Chinaunix首页 | 论坛 | 博客
  • 博客访问: 289975
  • 博文数量: 95
  • 博客积分: 618
  • 博客等级: 中士
  • 技术积分: 455
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-28 13:39
文章分类

全部博文(95)

文章存档

2015年(65)

2013年(1)

2012年(10)

2011年(19)

分类: C/C++

2011-12-12 17:03:56

x如果是2的若干次幂,那么它的二进制就只有一个1,嗯嗯,转换成二进制一眼就能看出来了···
很容易想到移位求1的个数,不过就不是一句话的事了,
翻一下csdn,这个可以算标准答案了么:
    return !(x&(x-1));
 
另外,求1的个数的一种简便方法:
int func(int x)
{
    int count = 0;
    while(x)
    {
        count++;
        x=x&(x-1);
    }
    return count;
}
 
阅读(4027) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

genehang2012-02-26 23:14:09

强大