题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:
思路:将n与n-1相与会把n的最右边的1去掉,比如
* 1100&1011 = 1000
* 再让sum++即可计算出有多少个1
function NumberOf1(n)
{
var sum=0;
while(n!=0){
sum++;
n=n&(n-1);
}
return sum;
}
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:
思路:将n与n-1相与会把n的最右边的1去掉,比如
* 1100&1011 = 1000
* 再让sum++即可计算出有多少个1
function NumberOf1(n)
{
var sum=0;
while(n!=0){
sum++;
n=n&(n-1);
}
return sum;
}