剑指offer(11)二进制中1的个数

题目描述

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

解题代码:

function NumberOf1(n)
{
    // write code here
    var count = 0;
    while(n){
        count++;
        n = n & (n - 1);
    }
    return count;
}

不过这个原理我也不是很懂,就记住这个方法咯。有人写过分析

posted @ 2018-09-05 20:25  叶子叶子耶  阅读(102)  评论(0编辑  收藏  举报