1,如何计算出一个int类型二进制表示的1的个数,包括正数与负数
public int NumberOf0(int n){
int result=0;
while(n!=0){
++result;
n=n&(n-1);
}
return result;
}
2,如何计算出一个int类型二进制表示的0的个数,包括正数与负数
此时的终止条件应该是每一位都是1也就是1的补码,即-1
public int NumberOf1(int n){
int result=0;
while(n!=-1){
++result;
n=n|(n+1);
}
return result;
}