Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1661469
  • 博文数量: 695
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4027
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-20 21:22
文章分类

全部博文(695)

文章存档

2018年(18)

2017年(74)

2016年(170)

2015年(102)

2014年(276)

2013年(55)

分类: C/C++

2014-12-20 16:25:50

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;
}
 
阅读(1300) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~