剑指Offer编程题--输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
共三种方法(无解释):
public int NumberOf3(int n) {
int count=0;
int temp = 1;
while(temp!=0){
if((n&temp)!=0) count++;
temp = temp<<1;
}
return count;
}
public int NumberOf2(int n) {
int count=0;
while(n!=0){
if((n&1)==1) count++;
n = n>>>1;
}
return count;
}
public int NumberOf1(int n){
int count=0;
while(n!=0){
count++;
n = (n-1)&n;
}
return count;
}