1. 程式人生 > >如何計算一個數的二進位制表示中的0和1的個數,包括負數

如何計算一個數的二進位制表示中的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;
	}