IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

conversion string hexa en float


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut conversion string hexa en float
    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

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Points : 675
    Points
    675
    Par défaut
    Float.intBitsToFloat()

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    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..?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Points : 675
    Points
    675
    Par défaut
    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 :
    Citation Envoyé par javadoc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DecodableString:
            Signopt DecimalNumeral 
            Signopt 0x HexDigits 
            Signopt 0X HexDigits 
            Signopt # HexDigits 
            Signopt 0 OctalDigits
        Sign:
            -
    Donc le code, ca doit être plutot
    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);

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Autant pour moi!
    Et tout mes remerciements!

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    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

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    if(maString.startsWith("B")){
    maString = "3"+st.substring(1, 8);
    monFloat= Float.intBitsToFloat(Integer.decode("0x"+st));
    monFloat = -monFloat;
    }
    à l'arrache nickel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion string vides en float
    Par macsigarev dans le forum Développement de jobs
    Réponses: 8
    Dernier message: 04/05/2012, 12h18
  2. Problème de conversion String en Float avec JTable
    Par dumasan dans le forum Composants
    Réponses: 4
    Dernier message: 23/04/2007, 11h56
  3. float conversion String
    Par aliomrani1 dans le forum Langage
    Réponses: 6
    Dernier message: 20/02/2007, 12h06
  4. [VS 2003] [VB.net] Conversion string to Int32 = hexa ?
    Par babeu dans le forum Windows Forms
    Réponses: 5
    Dernier message: 01/08/2006, 18h03
  5. Conversion String en Hexa ("1F") vers byte
    Par ducseb dans le forum Langage
    Réponses: 1
    Dernier message: 15/04/2006, 20h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo