输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
下面是我的解决方案:
package NiuKe;
//输入一个整数,
//输出该数二进制表示中1的个数。其中负数用补码表示。
public class A2 {
public static int NumberOf1(int n) {
char[] ch=(Integer.toBinaryString(n)+"").toCharArray();
int count=0;
for(int i=0;i<ch.length;i++){
System.out.print(ch[i]);
if((ch[i]&1)==1){
count++;
}
}
System.out.println();
return count;
}
public static void main(String[] args){
System.out.println(NumberOf1(-2));
}
}
//十进制转成十六进制:
//Integer.toHexString(int i)
//十进制转成八进制
//Integer.toOctalString(int i)
//十进制转成二进制
//Integer.toBinaryString(int i)
//十六进制转成十进制
//Integer.valueOf("FFFF",16).toString()
//八进制转成十进制
//Integer.valueOf("876",8).toString()
//二进制转十进制
//Integer.valueOf("0101",2).toString()
看到一个NB人给出的答案如下