输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
例:11011 减去1:11010
第一次
11011
11010
11010
减去1:11001
11010
11001
11000
减去1:10111
11000
10111
10000
减去1:01111
10000
01111
00000
End
所以一共四个
public class Solution {
public int NumberOf1(int n) {
int count = 0;
while(n!=0){
count++;
n = n&(n-1);
}
return count;
}
}
本文介绍了一种计算整数二进制表示中1的数量的方法,通过不断将数字与其减一后的结果进行按位与运算,直至数字变为0,期间计数器递增,最终返回计数器的值即为所求。
1434

被折叠的 条评论
为什么被折叠?



