天天看點

如何計算一個數的二進制表示中的0和1的個數,包括負數

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

繼續閱讀