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

Posted Cloudstrife

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入一个整数,输出该数二进制表示中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的个数。其中负数用补码表示。的主要内容,如果未能解决你的问题,请参考以下文章

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

剑指offer11:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(进制转换,补码反码)

三种方式求: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示

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

N11-该数二进制表示中1的个数

二进制中1的个数