Estoy escribiendo un método en el que estoy convirtiendo valores int en cadenas binarias y almacenándolos. Estoy usando el método Integer.toBinaryString para hacerlo, y está funcionando correctamente, pero el problema es que necesito el método para devolver exactamente 4 bits en la cadena en lugar de menos (nunca será más porque los números no son lo suficientemente grandes) He aquí un ejemplo de mi código y dónde se produce el problema:Cómo hacer que Integer.toBinaryString devuelva al menos 4 bits
int value5 = 3;
String strValue5 = Integer.toBinaryString(value5);
for(int index = 0; index < 4; index++){
sBoxPostPass[4][index] = strVal5.charAt(index);
}
Claramente, esto generará un ArrayOutOfBoundsException porque strValue5 == 11
y no 0011
, como tiene que ser. Espero que esto sea suficientemente claro. Gracias de antemano por la ayuda.
Generalmente tomo el resultado, agrego un montón de ceros adicionales al frente, luego tomo la "cola" para la longitud deseada. No requiere cómputo. –
Buena llamada - Haré eso –
http://stackoverflow.com/questions/4421400/how-to-get-0-padded-binary-representation-of-an-integer-in-java – MacAnthony