String.format () y números hexadecimales en Java

Estoy tratando de entender por quéString.format() se comporta como lo hace.

Context: clase de programación de sistemas, escribir un ensamblador.

Hay un campo hexadecimal de 5 caracteres en el archivo de objeto, que estoy creando a partir de un valor.

Intenté usar:String.format("%05X", decInt);

Esto funciona según lo previsto para números positivos (11 ->0000B) Sin embargo, falla para los números negativos (-1 ->FFFFFFFF en lugar deFFFFF)

Supongo que podría tomar una subcadena de los últimos 5 caracteres, pero todavía me gustaría descubrir por qué se comporta de esta manera.

Respuestas a la pregunta(4)

Su respuesta a la pregunta