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);
Autant pour moi!
Et tout mes remerciements!
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager