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

题目描述

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

解题代码:

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

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

原文地址:https://www.cnblogs.com/3yleaves/p/9594304.html