2009-06-23 6 views
3

Ich versuche, eine einzelne Genauigkeit Gleitkommazahl in eine ASCII-Darstellung der vier Bytes, die es machen (Vorzeichen/Exponent/Mantisse) zu konvertieren. My aktuelle Code ist:Wie kann ich die Zeichenfolgendarstellung eines Floats links-pad?

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

Float.floatToRawIntBits eine ganze Zahl macht das gleiche Bytes verwendet wird, und dann erzeugt die Integer.toString ASCII- Ziffern in hex Form (daher der radix = 16 angegeben). Mein Problem ist, dass ich immer 8 ASCII-Zeichen plus das optionale '-' Zeichen benötige und Integer.toString nicht mit linken Nullen auffüllt.

Kann jemand mit einer eleganten Lösung kommen?

Danke.

Antwort

8

können Sie String.format() verwenden:

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

Dies wird Null-Pad, um das Ergebnis und formatieren Sie es als Hexadezimalzahl. Details zu Formatstrings finden Sie unter here.

+1

Elegant und perfekt funktional. Danke vielmals!! – apalopohapa

Verwandte Themen