Frage

Ich versuche, eine einzelne Präzisionsschwimmpunktzahl in eine ASCII -Darstellung der vier Bytes umzuwandeln, die sie herstellen (Zeichen/Exponent/Mantissa). Mein aktueller Code ist:

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

Float.floatToRawIntBits macht eine Ganzzahl, die die gleichen Bytes verwendet, und dann Integer.toString Erstellt die ASCII -Ziffern in Hex -Form (daher der angegebene Radix = 16). Mein Problem ist, dass ich immer 8 ASCII-Zeichen und das optionale '-' Zeichen und Integer.toString ist nicht mit Nullen der linken Seite gepolstert.

Kann jemand eine elegante Lösung finden?

Vielen Dank.

War es hilfreich?

Lösung

Sie können verwenden String.Format ():

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

Dadurch wird das Ergebnis null und formatiert es als Hexadezimalzahl. Details zu Formatketten finden Sie hier.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top