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 :

Concatener valeurs en héxa d'un tableau de char


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 5
    Par défaut Concatener valeurs en héxa d'un tableau de char
    Bonjour j'écris ici mon premier message sur ce forum car j'ai vraiment besoin d'aide !

    Alors voilà je récupere des valeurs d'un compteur électrique Polier dans une trame de 11 octets.
    je l'affiche avec la boucle suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        for (unsigned int i=0;i<dwBytescomReadData;i++){
            cout << "trame[" << i << "]: "  << hex << (trame[i] & 0xFF) << dec << endl;
        }
    J'obtiens donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    trame[0]: 3
    trame[1]: 3
    trame[2]: 6
    trame[3]: 0
    trame[4]: 1
    trame[5]: 0
    trame[6]: e2
    trame[7]: 0
    trame[8]: 6f
    trame[9]: e5
    trame[10]: cf
    Ici je cherche à concatener les trames 4 6 8 pour obtenir : 1e26f qui donne 123503.
    Mon objectif est de pouvoir avoir dans mon programme un int qui vaut 123503 mais je ne sais pas comment faire car j'affiche ces valeurs avec le << hex << du cout, sinon elles sont en décimal (1=1, e2=226 et 6f=111). Je sais obtenir 1226111 mais ce n'est pas ce que je cherche

    Si une âme charitable sait comment obtenir mon 123503 je suis preneur !

    Merci d'avance Lucas

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Essaie avec ((trame[4] & 0xFF)<<16) + ((trame[6] & 0xFF)<<8) + ((trame[8] & 0xFF)<<0), ca me semble bien adapté.
    Par contre, il faut utiliser un long (unsigned ou non).

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 5
    Par défaut
    Citation Envoyé par leternel Voir le message
    Essaie avec ((trame[4] & 0xFF)<<16) + ((trame[6] & 0xFF)<<8) + ((trame[8] & 0xFF)<<0), ca me semble bien adapté.
    Par contre, il faut utiliser un long (unsigned ou non).

    Merci beaucoup ca marche niquel !

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        int dec_result = 0;
     
        for (unsigned int i=0;i<dwBytescomReadData;i++){
            if (trame[i] != 0) { dec_result = ((dec_result * 16) + (trame[i] & 0xFF)); }
        }

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

Discussions similaires

  1. passer des valeur d'un field à un tableau js
    Par gforce dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/03/2007, 10h21
  2. recuperer la valeur d'une cellule de tableau HTML
    Par cfouc dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/01/2007, 13h34
  3. Réponses: 1
    Dernier message: 08/07/2006, 18h55
  4. Réponses: 13
    Dernier message: 01/02/2006, 12h00
  5. Réponses: 2
    Dernier message: 23/11/2003, 18h44

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