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 mot de 2 octets en décimal


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut Convertir un mot de 2 octets en décimal
    Bonjour a toutes et tous,

    J'ai un petit problème et je suis sûr que je vais trouver de l'aide ici. Dans le cadre d'un projet, j’envoie une trame MODBUS/JBUS pour demander la lecture de 9 mots de 2 octets. Je recupère la réponse dans un tableau de unsigned char. Ma question est au niveau de la conversion vers du décimal, je m'explique:

    par exemple j'ai un mot de deux octets (écrit en décimal) qui fait 0 239, bon la c'est fait la valeur en décimal c'est 239 mais si j'ai un mot qui faut 188 25, comment avoir son équivalent en décimal ??? (188 25 donne BC25 en héxadécimal et donc 48153 en décimal)

    Dans l'attente de vos réponses,
    Cordialement,

  2. #2
    Membre averti
    Femme Profil pro
    Étudiante
    Inscrit en
    Février 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiante

    Informations forums :
    Inscription : Février 2014
    Messages : 31
    Par défaut
    j'ai rien compris à : (188 25 donne BC25 en héxadécimal et donc 48153 en décimal)

  3. #3
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut
    Citation Envoyé par diralark Voir le message
    j'ai rien compris à : (188 25 donne BC25 en héxadécimal et donc 48153 en décimal)
    un mot de deux octets, tu peux l'écrire soit en héxadécimal: FF FF, soit (et c'est mon cas) en décimal: 255 255.
    donc comment convertir mon mots de deux octets écrit en décimal en un chiffre décimal simple sans passé par la forme héxadécimal puis la conversion en chiffre décimal

  4. #4
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    bon dis moi si j'ai mal compris mais en gros t'as 2 octets genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    octet1 = 25;
    octet2 = 188;
    Et tu faudra savoir combien il ferait sur 2 octets , ben c'est simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    octet = octet1 + octet2*256; //octet1 = 25 , octet2 = 188 donc 25 + 188*256 = 48123
    // ça marche aussi avec 0 239 , ça aurait fait 239 + 0*256 = 239
    Bon il faut mieux faire un décalage de bit pour la rapidité mais c'est pour que tu comprenne le calcul de base.

  5. #5
    Membre averti
    Femme Profil pro
    Étudiante
    Inscrit en
    Février 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiante

    Informations forums :
    Inscription : Février 2014
    Messages : 31
    Par défaut
    J'ai compris à la deuxième demande mais Kannagi a été le plus rapide. En effet le décalage d'un octets soit 8 bits qui existe entre ton 'octet de poids fort et celui de poids faible
    se traduit par un rapport de (2)^8 = 256

  6. #6
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut
    Et donc si je veux passé par le décalage d'octets, il faut que je fasse comment ???

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

Discussions similaires

  1. Convertir un tableau de 8 octet en double IEEE 754
    Par dieuzorro dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/08/2008, 08h56
  2. Convertir variable Single en String avec deux décimales
    Par Pierre.g dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/08/2008, 13h18
  3. Convertir un string en equivalent octet
    Par SPACHFR dans le forum Débuter
    Réponses: 5
    Dernier message: 21/08/2007, 11h32
  4. Réponses: 12
    Dernier message: 05/06/2007, 10h24
  5. Convertir un mot en code ascii
    Par w0lf dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 10/01/2006, 14h17

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