二进制中1的个数

编程之美上也有这道题,但是个人觉得讲的并不是易懂,之后我在剑指offer上看到这道题看一遍就懂了;

知识提取:

一个整数n和n-1的与运算,获得整数n的二进制数最右边的1变0;

int NumberOf1( int n )
{
    int num=0;
    while( n )
    {
        n&=n-1;
        num++;
    }
    return num;
}

 详细内容参考剑指offer

posted @ 2013-07-19 14:42  NinaGood  阅读(72)  评论(0编辑  收藏  举报