Estoy tratando de almacenar un número como una cadena binaria en una matriz, pero necesito especificar cuántos bits almacenar.(Java) Especifique el número de bits (longitud) al convertir un número binario en una cadena?
Por ejemplo, si necesito almacenar 0 con dos bits, necesito una cadena "00". O 1010 con 6 bits para "001010".
¿Alguien puede ayudar?
EDIT: Gracias chicos, como soy un tonto en matemáticas/programación en general, he ido con la solución más simple que era la de David. Algo así como:
binaryString.append(Integer.toBinaryString(binaryNumber));
for(int n=binaryString.length(); n<numberOfBits; n++) {
binaryString.insert(0, "0");
}
Parece que funciona bien, así que a menos que sea muy ineficiente voy a ir con eso.
Eso no funcionará con números negativos y número s mayor que 2^31, ya que no caben dentro de un Java Integer. BigInteger cambia automáticamente el tamaño de la cantidad de bits que usa para almacenar el valor. Todavía puede usar su método de relleno para insertar 0 adelante. –
Lo siento, no sabía sobre la marca aceptada. Gracias por el aviso de Fernando, pero no creo que tenga que hacer esto para ningún número negativo o algo más grande que 2^16, así que debería estar bien, supongo. Voy a echar un vistazo a BigInteger por las dudas de todos modos. – joinJpegs