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

Python Discussion :

Conversion hexadécimale en binaire avec Python


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 5
    Par défaut Conversion hexadécimale en binaire avec Python
    Bonjour
    Je dois convertir un nombre hexadécimal en decimale. Seulement je ne suis que debutant avec python. Alors si quelqu'un pourrait m'aider en utilisant les bases rudimentaire de Python ça m'arrangerait bien 😅

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par tom.grbrt Voir le message
    Je dois convertir un nombre hexadécimal en decimale. Seulement je ne suis que debutant avec python. Alors si quelqu'un pourrait m'aider en utilisant les bases rudimentaire de Python ça m'arrangerait bien
    Un nombre hexadécimal est un nombre représenté sous forme hexadécimale (i.e. une chaine de caractères).
    Avec Python, c'est facile de convertir avec "int" et "hex":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> int('a0', 16)
    160
    >>> hex(int('a0', 16))
    '0xa0'
    Et si on veut afficher çà en binaire avec la fonction "bin":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> bin(160)
    '0b10100000'
    >>>
    Si le but est de faire çà vous même à partir de chaines de caractères et des polynomes pour vous faire pratiquer chaines de caractères et boucles "for", impossible d'utiliser ces fonctions... Mais si vous voulez qu'on vous aide, il faudra poster du code et expliquer ce que vous ne comprenez pas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 5
    Par défaut
    Oui daccord mais c'est pour un devoir à rendre et je dois impérativement utiliser le code Ascii

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par tom.grbrt Voir le message
    Oui daccord mais c'est pour un devoir à rendre et je dois impérativement utiliser le code Ascii
    Certes mais sans expliquer les difficultés que vous rencontrez en les illustrant avec ce que vous avez codé, pas grand monde vous donnera de solution.

    Le seul intérêt de ce genre d'exercice est dans ce que vous allez découvrir en essayant d'écrire et mettre au point ces quelques lignes de code.
    Dans le tas, il y a peut être des notions qui vous échappent encore faut-il comprendre leur nature pour savoir sur quoi/comment vous aider.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 5
    Par défaut
    Oui mais le problème c'est que je n'ai absolument pas réussi à le codé !

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par tom.grbrt Voir le message
    Oui mais le problème c'est que je n'ai absolument pas réussi à le codé !
    Montrez ce que vous avez fait.
    Racontez les soucis que vous avez.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 5
    Par défaut
    Voici mon programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Hexa=input ("valeur en majuscule")
    Decimal=0
    Rang=0
     
    For j in range (0,len (hexa)):
         If hexa [j]=="A":rang=10
         Elif hexa [j]=="B":rang=11
         Elif hexa [j]=="C":rang=12
         Elif hexa [j]=="D":rang=13
         Elif hexa [j]=="E":rang=14
    Else:rang=15
     
    Decimal=Decimal+rang*16**(hexa-i-1)
    Print (decimal)

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    C'est bien mais vu le nombre de bourdes qu'il y a la dedans, vous n'avez pas encore l'habitude de la console interactive Python.
    Si vous écrivez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> Hexa = 'abcd'
    >>> For j in range(len(hexa)):
      File "<stdin>", line 1
        For j in range(len(hexa)):
            ^
    SyntaxError: invalid syntax
    >>>
    vous avez déjà une erreur parce que "for" ne s'écrit pas "For".
    Cela corrigé, çà va se vautrer encore avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> for j in range(len(hexa)):
    ...     pass
    ...
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'hexa' is not defined
    >>>
    Pareil: Hexa et hexa sont deux noms de variables différentes.

    Le but de ce genre d'exercice est de vous faire pratiquer. i.e. vous écrivez une ânerie, çà affiche un beau message d'erreur et vous essayez de comprendre la bourde que vous avez fait. C'est fastidieux mais c'est comme çà que vous apprenez qu'un ordi. est un machin très bête à qui il faut tout expliquer en y mettant les formes.
    La console Python interactive vous permet d'avoir une erreur bien plus vite qu'en passant par un fichier script.
    C'est tout ce que je peux vous raconter en attendant que vous ayez un programme "correct" côté Python même s'il ne vous donne pas le résultat attendu et une explication de ce que vous ne comprenez pas (le but ici est e vous forcer à mettre des "mots", du sens à ce que vous faîtes... comme la programmation est une technique, il faut apprendre à raconter ce qu'on fait).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 5
    Par défaut
    Oui je sais cela c'est au cause de mon téléphone qui met des majuscule
    Alors voici le vrai programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    hexa=input ("valeur en majuscule")
    decimal=0
    rang=0
     
    For j in range (0,len (hexa)):
         if hexa [j]=="A":valeur=10
         elif hexa [j]=="B":valeur=11
         elif hexa [j]=="C":valeur=12
         elif hexa [j]=="D":valeur=13
         elif hexa [j]=="E":valeur=14
         elif hexa [j]=="F":valeur=15
     
    decimal=decimal+rang*16**(len (hexa)-j-1)
    print (decimal)
    En faite je n'arrive pas à exprimer la valeur decimal final juste...

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par tom.grbrt Voir le message
    Oui je sais cela c'est au cause de mon téléphone qui met des majuscule
    Et bien il faut utiliser un outil qui évite de déformer ce que vous écrivez.


    Citation Envoyé par tom.grbrt;8761030Alors voici le vrai programme:
    [CODE
    hexa=input ("valeur en majuscule")
    decimal=0
    rang=0

    For j in range (0,len (hexa)):
    if hexa [j]=="A":valeur=10
    elif hexa [j]=="B":valeur=11
    elif hexa [j]=="C":valeur=12
    elif hexa [j]=="D":valeur=13
    elif hexa [j]=="E":valeur=14
    elif hexa [j]=="F":valeur=15

    decimal=decimal+rang*16**(len (hexa)-j-1)
    print (decimal)[/CODE]

    En faite je n'arrive pas à exprimer la valeur decimal final juste...
    Relisez le code que vous avez posté:
    Vous assigné quelque chose à la variable "valeur" mais vous calculez avec "rang" qui a été initialisé à 0. De plus vous mettez à jour "decimal" en sortie de boucle plutôt qu'a chaque itération.
    Pour calculer "valeur", je vous suggère d'utiliser .index:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> 'abcd'.index('c')
    2
    Ce qui vous évitera d'écrire un tas de "elif" (il en manque 10!!!).
    Puis il vous faudra revoir/simplifier la formule qui calcule "decimal"...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 8
    Dernier message: 18/04/2011, 14h46
  2. Afficher un arbre binaire avec sa structure
    Par PhoneKilleR dans le forum C
    Réponses: 7
    Dernier message: 23/04/2008, 23h24
  3. [LabView-MATLAB] Conversion de fichier binaire
    Par flzox dans le forum LabVIEW
    Réponses: 3
    Dernier message: 20/01/2007, 18h42
  4. Réponses: 1
    Dernier message: 11/09/2005, 02h04
  5. Arbre binaire avec la STL ?
    Par SteelBox dans le forum SL & STL
    Réponses: 9
    Dernier message: 10/11/2004, 13h22

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