Estoy tratando de convertir un número entero en una matriz binaria Booleana de 7 bits. Hasta ahora el código no funciona: Si ingreso un entero 8 para convertir, en lugar de 0001000 obtengo 1000000, o digo 15 debería obtener 0001111 pero obtengo 1111000. La matriz de caracteres tiene una longitud diferente a la matriz binaria y las posiciones son incorrectasEntero a matriz binaria
public static void main(String[] args){
String maxAmpStr = Integer.toBinaryString(8);
char[] arr = maxAmpStr.toCharArray();
boolean[] binaryarray = new boolean[7];
for (int i=0; i<maxAmpStr.length(); i++){
if (arr[i] == '1'){
binaryarray[i] = true;
}
else if (arr[i] == '0'){
binaryarray[i] = false;
}
}
System.out.println(maxAmpStr);
System.out.println(binaryarray[0]);
System.out.println(binaryarray[1]);
System.out.println(binaryarray[2]);
System.out.println(binaryarray[3]);
System.out.println(binaryarray[4]);
System.out.println(binaryarray[5]);
System.out.println(binaryarray[6]);
}
Cualquier ayuda es apreciada.
¿Es la tarea? Usa división y resto por 2. – kan
¿Has intentado recorrer tu código, ya sea a mano o con un depurador? Ninguno de los dos debería ser un desafío si usa '8' como entrada y le permitirá ver dónde su resultado comienza a desviarse de la corrección. –