Descripción del problema: ingrese un número entero y genere el número de 1s en la representación binaria del número. Los números negativos están representados por complementos.
Idea: Obviamente, puede convertir un número entero decimal en una cadena de representación binaria y luego contar el número de "1". Por supuesto, también se puede resolver combinando la operación de división y la operación 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));
}
}
Salida:
1111
4