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

C++ Discussion :

convertir un tableau de char en float


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Femme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2011
    Messages
    266
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2011
    Messages : 266
    Par d�faut convertir un tableau de char en float
    Bonjour a tous,

    voici mon petit probl�me,
    je r�cup�re 4 octets provenant d'un �quipement dans un tableau de char.
    ces 4 octets repr�sente en r�alit� un float.

    comment puis je convertir ce tableau de char en un float ?

    j'ai bien tent� de faire :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    for (unsigned int i =0; i<4; i++) 
    {
     result = result | tableau[i]; 
    result<<8;
    }
    Mais je n'obtient pas le r�sultat souhait�.

    Merci d'avance.

  2. #2
    Expert confirm�

    Inscrit en
    Novembre 2005
    Messages
    5 145
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par d�faut
    Tu veux convertir (c'est quoi le format en entree?) ou tu veux le float dont la representation est donnees par des 4 char? Dans ce dernier cas:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    float f;
     
    memcpy((void*)&f, (void*)tableau, sizeof f);

  3. #3
    Membre �clair�
    Femme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2011
    Messages
    266
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2011
    Messages : 266
    Par d�faut
    Je te remercie Jean-Marc.Bourguet ta solution � parfaitement fonctionn� et m'a beaucoup aid�.

  4. #4
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Est-ce qu'un reinterpret_cast ne ferait pas l'affaire �galement ?
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  5. #5
    Expert confirm�

    Inscrit en
    Novembre 2005
    Messages
    5 145
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par d�faut
    Citation Envoy� par Bousk Voir le message
    Est-ce qu'un reinterpret_cast ne ferait pas l'affaire �galement ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    float f = *reinterpret_cast<float*>(tableau);
    est possible mais suppose qu'il n'y a pas de problemes d'alignement. (Il y a aussi en general un risque de manquement aux regles d'alias, mais dans ce cas je n'en vois pas).

  6. #6
    Invit�
    Invit�(e)
    Par d�faut
    Bonjour,

    Je suis dans le m�me cas, mais en ce qui me concerne, cette solution ne fonctionne pas.

    J'ai un tableau d'octets r�cup�r� via une connexion avec un instrument. Ce tableau repr�sentes des valeurs cod�es en float sur 4 octets.

    Je dois donc convertir les groupes de 4 octets en float, mais aucune des solutions envisag�es ne fonctionne.

    J'ai essay� le cast du C, le reinterpret_cast, ainsi que la solution que tu as propos� plus haut mais rien de tout cela n'a fonctionn� correctement. A chaque fois, j'obtient des valeurs compl�tement incoh�rentes (voire absurdes).

    J'ai m�me essay� une m�thode moins fine :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    //     array est un tableau de 4 unsigned char
    float* pow;
    pow = array;
    Je ne sais plus quoi essayer d'autre.

    Serais-je oblig� d'�crire moi-m�me l'algorithme de d�codage d'un float ? Franchement, je pr�f�rerait �viter car ma compr�hension limit�e de ce syst�me de codage en ferait une source d'erreurs � n'en plus finir.
    Derni�re modification par Invit� ; 09/08/2012 � 10h59.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Convertir un tableau de char en byte
    Par altahir007 dans le forum VB.NET
    R�ponses: 3
    Dernier message: 13/09/2011, 14h55
  2. prob string a convertir en tableau de char
    Par lapinette dans le forum D�buter
    R�ponses: 11
    Dernier message: 11/06/2010, 08h42
  3. concat�nation d'un tableau de char en float
    Par tymop dans le forum D�buter
    R�ponses: 5
    Dernier message: 22/03/2009, 22h37
  4. convertir un tableau de caract�re en float
    Par zerocoolyoussef dans le forum C
    R�ponses: 3
    Dernier message: 20/03/2006, 22h27
  5. R�ponses: 1
    Dernier message: 13/10/2005, 15h10

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