java - para - manual de programacion android pdf
String.format() y números hexadecimales en Java (2)
El ancho del formato solo funciona para crear un número mínimo de dígitos, y solo tiene efecto en los ceros a la izquierda.
En lugar de subcadena, podría usar una máscara de bits:
String.format("%05X", decInt & 0x0FFFFF)
Por cierto, 11
-> 0000B
, no 0000A
como se afirma en su pregunta.
Estoy tratando de descubrir por qué String.format()
se comporta de la manera en que lo hace.
Contexto: clase de programación de sistemas, escribir un ensamblador.
Hay un campo hexadecimal de 5 caracteres en el archivo objeto, que estoy creando a partir de un valor.
Intentado usar: String.format("%05X", decInt);
Esto funciona según lo previsto para números positivos (11 -> 0000B
) Sin embargo, falla para números negativos (-1 -> FFFFFFFF
lugar de FFFFF
)
Supongo que podría tomar una subcadena de los últimos 5 caracteres, pero aún me gustaría descubrir por qué se comporta de esta manera.
El ancho utilizado en formato siempre es un ancho mínimo. En este caso, en lugar de usar operaciones de subcadena, sugeriría:
String.format("%05X", decInt & 0xFFFFF);