Convertir une lettre en chiffre
l-vvv
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
_Ritchi_ Messages postés 21333 Date d'inscription Statut Contributeur Dernière intervention -
_Ritchi_ Messages postés 21333 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir ,
Je dois réaliser un programme qui convertit de l'Héxa en décimal et pour cela je dois affecter a chaque lettre du chiffre Héxa une valeur numérique mais je ne sais pas comment faire pouvez vous m'aider ?
PS: je n'ai pas le droit d'utiliser la fonction int("B1C", 16)
Je dois réaliser un programme qui convertit de l'Héxa en décimal et pour cela je dois affecter a chaque lettre du chiffre Héxa une valeur numérique mais je ne sais pas comment faire pouvez vous m'aider ?
PS: je n'ai pas le droit d'utiliser la fonction int("B1C", 16)
A voir également:
- Convertir en lettre
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Clavier iphone chiffre et lettre - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Chiffre en lettre - Télécharger - Outils professionnels
- Convertir epub en kindle - Guide
3 réponses
Salut,
la fonction replace() ?
la fonction replace() ?
ton_nombre_sous_form_de_chaine = ton_nombre_sous_form_de_chaine.replace("a", "11")
Bonjour,
La conversion d'un nombre hexa sous forme de chaine de caractère vers un nombre décimal se fait ainsi:
exemple avec '91FC' (en hexa): il faut lire la chaine à l'envers, de droite à gauche. En faisant cela, on obtient ceci:
Rappel: le caractère ^signifie 'puissance'.
Maintenant, il faut juste traduire C par 12 et F par 15 pour que le calcul te donne un entier décimal.
Pour faire cette traduction, quoi de mieux qu'un ... dictionnaire où tu traduis chaque valeur hexa en décimal:
Maintenant, il te faut lire ta chaine hexa à l'envers, en commençant par le dernier caractère. Et pour cela, quoi de mieux qu'une boucle "for".
Je te laisse chercher encore et si cela t'intéresse toujours, je te donnerai ma boucle for qui tient sur une seule ligne.
A+
Ritchi
La conversion d'un nombre hexa sous forme de chaine de caractère vers un nombre décimal se fait ainsi:
exemple avec '91FC' (en hexa): il faut lire la chaine à l'envers, de droite à gauche. En faisant cela, on obtient ceci:
'C' * 16^0 + 'F' * 16^1 + '1' * 16^2 + '9' * 16^3
Rappel: le caractère ^signifie 'puissance'.
Maintenant, il faut juste traduire C par 12 et F par 15 pour que le calcul te donne un entier décimal.
Pour faire cette traduction, quoi de mieux qu'un ... dictionnaire où tu traduis chaque valeur hexa en décimal:
dico_hex2dec = {'0' : 0, '1' : 1, '2' : 2, '3' : 3, '4' : 4, '5' : 5, '6' : 6, '7' : 7, '8' : 8, '9' : 9, 'A' : 10, 'B' : 11, 'C' : 12, 'D' : 13, 'E' : 14, 'F' : 15}
Maintenant, il te faut lire ta chaine hexa à l'envers, en commençant par le dernier caractère. Et pour cela, quoi de mieux qu'une boucle "for".
Je te laisse chercher encore et si cela t'intéresse toujours, je te donnerai ma boucle for qui tient sur une seule ligne.
A+
Ritchi
Salut
Allez voici ma proposition en Python 3.6:
Ritchi
Allez voici ma proposition en Python 3.6:
# -*- coding: utf-8 -*- def Hex2Dec(nbhex): return sum([16 ** i * int(dico_hex2dec[nbhex[::-1][i]]) for i in range(len(nbhex))]) dico_hex2dec = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, 'A': 10, 'B': 11, 'C': 12, 'D': 13, 'E': 14, 'F': 15, 'x': 0} # exemple: hexa = '0xDEAD' decimal = Hex2Dec(hexa) print('la valeur', hexa, 'vaut', decimal, 'en décimal')
Ritchi