Bonjour,
Je lis un fichier texte ou je récupère des strings qui représentent des flottants (IEEE 32 bits- single format) en hexa. genre "3F800000".
Je voudrais les convertir en float normal...
Merci d'avance
Bonjour,
Je lis un fichier texte ou je récupère des strings qui représentent des flottants (IEEE 32 bits- single format) en hexa. genre "3F800000".
Je voudrais les convertir en float normal...
Merci d'avance
Salut,
Ouais, j'avais essayé ca. mais ca marche pas...
genre :
float fl= Float.intBitsToFloat(Byte.decode("3FF00000"));
System.out.println("float : "+fl);
J'obtient un NumberFormatException: For input string: "3FF00000"
Une idée..?
Mais si ca marche, mais il faut être plus attentif.
Byte, c'est un nombre sur 8 bits. Tu donnes un code hex sur 32, il faut utiliser un Integer.
La syntaxe a respecter pour le parametre de Integer.decode, c'est :
Donc le code, ca doit être plutotEnvoyé par javadoc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 float fl= Float.intBitsToFloat(Integer.decode("0x3FF00000")); System.out.println("float : "+fl);
j'ai coché résolu, mais je dois préciser, ca marche pas pour les négatifs... genre "B...."
Mais je vais me débrouiller. A moins que la solution ne te vienne immédiatement à l'esprit!
Encore merci pour tes indications
if(maString.startsWith("B")){
maString = "3"+st.substring(1, 8);
monFloat= Float.intBitsToFloat(Integer.decode("0x"+st));
monFloat = -monFloat;
}
à l'arrache nickel
Partager