Pregunta

Estoy tratando de convertir un solo número de coma flotante de precisión en una representación ascii de los cuatro bytes que lo hacen (signo / exponente / mantisa). Mi código actual es:

Integer.toString(Float.floatToRawIntBits(f),16);

Float.floatToRawIntBits crea un número entero usando los mismos bytes, y luego Integer.toString crea los dígitos ascii en forma hexadecimal (de ahí que se especifique radix = 16). Mi problema es que siempre necesito 8 caracteres ascii más el signo '-' opcional, y Integer.toString no se rellena con ceros del lado izquierdo.

¿Alguien puede llegar a una solución elegante?

Gracias.

¿Fue útil?

Solución

Puede usar String.format () :

String.format("%08x", Float.floatToRawIntBits(f))

Esto pondrá a cero el resultado y lo formateará como un número hexadecimal. Los detalles sobre las cadenas de formato se pueden encontrar aquí .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top