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;
}