首页 > 代码库 > 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

public class Solution {
    public int NumberOf1(int n) {
			int index = 1;
		int number = 0;
		
		while(index!=0){
			if((n & index)!=0)
				number++;
			index = index << 1;
		}
		return number;
    }
}

  先上第一种

两种方法。第一种,是用位运算,将1每次左移,和数字进行&运算,如果成功,则返回1.

       第二种,将整数通过方法转换为二进制数,然后统计其中1的数量

第二种

	int number = 0;
		String string = Integer.toBinaryString(n);
		char[] chars = string.toCharArray();
		int i = 0;
		for( ; i < string.length() ; i++){
			if(chars[i]==‘1‘)
				number++;
		}
		
		return number++;

  

 

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。