Descrição do problema: Digite um número inteiro e imprima o número de 1s na representação binária do número. Os números negativos são representados por complementos.
Idéia: obviamente, você pode converter um número inteiro decimal em uma sequência de representação binária e contar o número "1". Obviamente, também pode ser resolvido combinando a operação de divisão e a operação restante.
Código:
import org.junit.Test;
public class NumberOf1 {
public int numberOf1(int n) {
String num = Integer.toBinaryString(n);
System.out.println(num);//十进制n的二进制字符串表示
int count = 0;
for(int i = 0;i < num.length();i++)
if(num.charAt(i)=='1')
count++;
return count;
}
@Test
public void test(){
System.out.println(numberOf1(15));
}
}
Saída:
1111
4