问题:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:将数字转化为二进制之后,转化为字符串数组形式,再循环遍历数组,找出“1”的个数。
解释:这是最low的方法我认为,十进制转化为二进制可以通过自己编程逻辑实现,也可以用自带的库实现,Integer.toBinaryString(n)。还有其他的转二进制的方法参考资料:https://www.cnblogs.com/vsign/p/7290594.html
代码:
public class Solution {
public int NumberOf1(int n) {
char []ch = Integer.toBinaryString(n).toCharArray();
int s = 0;
for(int i = 0;i < ch.length;i ++){
if(ch[i] == '1')
s++;
}
return s;
}
}