Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Conversion hexadécimal en décimal programme en C



  1. #1
    phlauw

    Conversion hexadécimal en décimal programme en C


    ------

    Bonsoir,

    Je débute dans la programmation d'un MSP430 LaunchPad (programme codé en C donc).

    Mais je me heurte à deux légers problèmes.

    J'arrive à récupérer une valeur issue de mon potentiomètre grâce au convertisseur analogique numérique (10 bits), mais je n'arrive pas à vérifier si la valeur obtenue est bien binaire (ou déjà convertie en hexa ou décimal)

    Mon deuxième problème : Si la valeur obtenue est binaire (ou hexadécimale), quel est le moyen le plus simple pour pouvoir récupérer une valeur décimale? Je dois en effet faire des calculs (multiplications et divisions) afin de sortir une valeur entre 0 et 100 (PWM) pour alimenter mes diodes.

    Facile me direz vous, mais quand on débute, ce n'est pas si évident!

    J'espère que vous pourrez m'aider

    Merci d'avance et bonne soirée!

    -----

  2. Publicité
  3. #2
    invite03481543

    Re : Conversion hexadécimal en décimal programme en C

    Bonsoir,

    ton convertisseur genere une valeur binaire -> 2 puissance 10 valeurs (puisque 10 bits), qui est stockee par exemple sur un octet (8 bits) et les deux autres octets superieurs dans un registre autre selon le micro (je ne connais pas le tiens), la concatenation des deux forme ton resultat.
    L'hexa est une representation plus pratique que le binaire en informatique puisqu'on manipule des octets ou demi octets.
    Un demi octet suffit a representer 16 valeurs decimales donc de 0 a F en hexa (F representant la valeur decimale 15 plus le zero on retrouve bien 16 valeurs au total).
    Par exemple FF signifie 15*(16 a la puissance 1)+15*(16 a la puissance 0) soit 255 en equivalent decimal.
    Ainsi 10 bits necessitent 2 octets soit 400 en representation hexa (4*16 a la puissance 2 en valeur decimale).

  4. #3
    gienas
    Modérateur

    Re : Conversion hexadécimal en décimal programme en C

    Bonsoir phlauw et tout le groupe

    Citation Envoyé par phlauw Voir le message
    ... Si la valeur obtenue est binaire (ou hexadécimale), quel est le moyen le plus simple pour pouvoir récupérer une valeur décimale? ...
    Pour dire la vérité, et sans en savoir plus, je ne comprends pas bien le "sens caché" de ta question.

    Quand une valeur décimale est nécessaire, le plus souvent, c'est uniquement quand il s'agit d'informer l'utilisateur (l'humain), qui ne sait compter qu'en décimal.

    Tous les calculs internes sont généralement faits en binaire, du début à la fin, et c'est au moment d'un affichage, que la grandeur est convertie en décimal.

  5. #4
    invite03481543

    Re : Conversion hexadécimal en décimal programme en C

    Prenons un exemple plus concret:

    Ton convertisseur fait une conversion et tu recuperes la valeur binaire 1001110011.
    Pour retrouver la valeur en hexa tu separes le resultat en groupe de 4 bits en demarrant de la gauche ce qui donne:

    groupe 1->0011 -> 3 en decimal -> 3 en hexa
    groupe 2->0111 -> 7 en decimal -> 7 en hexa
    groupe 3->0010 (les deux zero permettent de completer les deux bits manquants) -> 2 en decimal et en hexa

    Le resultat en hexa est donc: groupe3+groupe2+groupe1 soit 273 en hexa soit encore (2*16exp2)+(7*16exp1)+3*16exp0 qui vaut donc 627 en decimal.

    Ensuite pour avoir le rapport en poucentage il faut proceder comme cela:

    1024 represente 100 pourcent, plus precisement 0 a 1023 represente la plage de mesure soit 1024 valeurs.
    627 represente 627*100/1024=61.23 pourcent

    Pour realiser automatiquement ta conversion entre le resultat de l'ADC et ton pourcentage equivalent il faut donc multiplier par 100 et ensuite diviser par 1024.
    Dernière modification par HULK28 ; 12/01/2013 à 21h19.

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    JPL
    Responsable des forums

    Re : Conversion hexadécimal en décimal programme en C

    Fusion de deux discussions et suppression du doublon.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  9. #6
    boux

    Re : Conversion hexadécimal en décimal programme en C

    Bonsoir,

    je ne vois pas où est le problème :

    ton convertisseur est sous 10 bits donc par exemple si tu as 10 0100 1001 et que tu veux passer en décimale et ba tu convertis :
    1+8+64+512=585

    Donc si tu veux convertir du binaire au décimal il suffit de faire quelque chose de ce style :
    b0*1+b1*2+b2*4+b3*8+...+b9*512 =valeur convertie en décimale

    Je ne crois pas t'avoir bien avancer...

    Bonne soirée

  10. Publicité
  11. #7
    phlauw

    Re : Conversion hexadécimal en décimal programme en C

    Merci pour ces réponses.

    Pour repréciser un peu les choses, je me demandais surtout comment coder la conversion dans mon programme en C, où s'il existe des fonctions qui gèrent ce type de conversion.

    Je peux effectivement faire mes calculs en binaire, mais le problème reste le même puisqu'il me faut une valeur décimale à la fin

  12. #8
    Jack
    Modérateur

    Re : Conversion hexadécimal en décimal programme en C

    si tu veux utiliser le décimal, je suppose que c'est à des fins d'affichage. Ce qu'il te faut donc c'est une transformation en ASCII de la valeur numérique. tu as peut-être à ta disposition la fonction itoa().
    sprintf() est standard et tu dois normalement la retrouver sur ton compilateur, mais elle est gourmande en mémoire. Certains compilateurs permettent de désactiver l'utilisation des flottants, ce qui la rend plus légère en mémoire.

    A+

Discussions similaires

  1. Conversion decimal vers hexadécimal
    Par MAXWELL27 dans le forum Mathématiques du collège et du lycée
    Réponses: 2
    Dernier message: 27/02/2011, 19h36
  2. Programme PIC, convertir une valeur Héxadécimal en Décimal
    Par Quack_MD dans le forum Électronique
    Réponses: 13
    Dernier message: 17/05/2010, 18h05
  3. Réponses: 3
    Dernier message: 01/05/2008, 06h51
  4. convertion (decimal-hexadecimal)
    Par TaRiKq dans le forum Électronique
    Réponses: 1
    Dernier message: 29/02/2008, 21h57
  5. conversion hexadecimal
    Par anthonyfff dans le forum Électronique
    Réponses: 4
    Dernier message: 07/10/2006, 12h59
Découvrez nos comparatifs produits sur l'informatique et les technologies.