Comment puis-je gaucher la représentation sous forme de chaîne d'un float?
-
06-07-2019 - |
Question
J'essaie de convertir un nombre à virgule flottante simple précision en une représentation ascii des quatre octets qui le composent (signe / exposant / mantisse). Mon code actuel est:
Integer.toString(Float.floatToRawIntBits(f),16);
Float.floatToRawIntBits
crée un entier utilisant les mêmes octets, puis Integer.toString
crée les chiffres ASCII sous forme hexadécimale (d'où le radix = 16 spécifié). Mon problème est que j'ai toujours besoin de 8 caractères ascii plus le signe optionnel '-', et Integer.toString
ne remplit pas avec des zéros à gauche.
Quelqu'un peut-il proposer une solution élégante?
Merci.
La solution
Vous pouvez utiliser String.format () :
String.format("%08x", Float.floatToRawIntBits(f))
Ceci aura pour effet de mettre le résultat à zéro et de le formater en tant que nombre hexadécimal. Des détails sur les chaînes de format peuvent être trouvés ici .