Python >> Tutoriel Python >  >> Python

Programme Python pour convertir une valeur hexadécimale en décimale

Programme Python pour convertir une valeur hexadécimale en décimale :

Dans cet article, nous allons apprendre à convertir un hexadécimal valeur en décimal en Python. Comme nous savons que hexadécimal le système de numération est une base-16 système de numération et décimal le système de numération est une base-10 système de numération. Dans les deux systèmes de numération, nous utilisons différentes manières de représenter un nombre.

En hexadécimal , 0 à 9 et A à F sont utilisés pour représenter un nombre. Au lieu de A à F , on peut aussi utiliser a à f , c'est-à-dire en minuscules. Mais, dans le système de numération décimale, 0 à 9 est utilisé pour représenter un nombre.

Nous devons suivre un algorithme spécifique pour effectuer la conversion.

Méthode 1 : Voie standard :

La méthode standard pour convertir un hexadécimal valeur en décimal est en multipliant chaque chiffre du nombre par 16 à la puissance de sa position d'index.

Donc, nous devons commencer par le chiffre le plus à droite de l'hexadécimal Numéro. Nous pouvons considérer sa position comme 0 , le deuxième chiffre le plus à droite étant 1 etc. Pour le chiffre le plus à droite, nous le multiplierons par 16^0 , pour le deuxième chiffre le plus à droite, nous le multiplierons par 16^1 etc. Et enfin nous additionnerons toutes ces valeurs pour trouver le décimal valeur.

Mais, les nombres hexadécimaux incluent également d'autres caractères non décimaux, c'est-à-dire A, B, C, D, E, F ou a, b, c, d, e,f . Nous devons donc utiliser la table de mappage suivante pour obtenir l'équivalent décimal à multiplier par 16 puissance.

valeur hexadécimale valeur décimale
A ou un 10
B ou b 11
C ou c 12
D ou d 13
E ou e 14
F ou f 15

Pour les autres chiffres 0 à 9 , nous utiliserons la même valeur en décimal.

Exemple de conversion hexadécimal en décimal :

Essayons de convertir 2EF4 valeur hexadécimale en décimale :

2 * 16^ 3 + 14 * 16^2 + 15 * 16^1 + 4 * 16^0
= 12020

Comme vous pouvez le voir ici, nous multiplions chaque chiffre par 16 à la puissance de sa position.

Programme Python :

Ci-dessous le programme python complet qui prend un hexadécimal valeur en tant qu'entrée de l'utilisateur et imprime la valeur décimale pour celle-ci :

def hex_to_decimal(hex):
    hex_decimal_conversion = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9,
                              'A': 10, 'a': 10, 'B': 11, 'b': 11, 'C': 12, 'c': 12, 'D': 13, 'd': 13, 'E': 14, 'e': 14, 'F': 15, 'f': 15}

    p = len(hex) - 1
    decimal = 0

    for c in hex:
        decimal += hex_decimal_conversion[c] * (16 ** p)
        p -= 1

    return decimal


hex = input('Enter the hexadecimal value: ')
decimal = hex_to_decimal(hex)

print(f'Decimal of {hex} is {decimal}')

Dans ce programme,

  • hexà décimal La méthode est utilisée pour convertir une chaîne hexadécimale en valeur décimale. Il prend la chaîne hexadécimale comme paramètre et renvoie la valeur décimale.
  • hexadécimaldécimal transformation est un dictionnaire dont les clés sont hexadécimales valeurs et valeurs sont des représentations décimales. Il a le mappage pour les caractères hexadécimaux majuscules et minuscules.
  • p est la puissance à utiliser pendant 16
  • décimal la variable est initialisée à 0 pour contenir la valeur décimale finale.
  • La boucle for parcourt les caractères de la chaîne hexadécimale un par un. Pour chaque caractère, il utilise le dictionnaire pour obtenir la valeur décimale et la multiplier par 16 à la puissance p . Il ajoute cette valeur à décimal .
  • Il décrémente la valeur de p par 1 avant de passer au chiffre suivant.
  • Une fois la boucle terminée, elle renvoie le décimal valeur calculée.

Si vous exécutez ce programme, il imprimera la sortie comme ci-dessous :

Enter the hexadecimal value: EF
Decimal of EF is 239

Enter the hexadecimal value: 2ef4
Decimal of 2ef4 is 12020

Comme vous pouvez le voir ici, cela fonctionne avec les caractères majuscules et minuscules.

Méthode 2 :en utilisant int() :

C'est le moyen le plus simple de convertir un hexadécimal en décimal en Python. Nous pouvons simplement passer la valeur hexadécimale à cette méthode et elle nous renverra le décimal converti valeur.

Les nombres hexadécimaux sont préfixés par 0x ou 0X . Donc, si nous transmettons un nombre hexadécimal commençant par 0x ou 0X , int() détectera automatiquement qu'il s'agit d'une valeur hexadécimale et la convertira en décimal.

Mais, si nous passons une chaîne à int() , alors nous devons passer un autre deuxième paramètre comme 16 pour définir que la conversion est pour hexadécimal valeurs. Il convertira cette chaîne en décimal et renvoie la valeur décimale.

print(f'0XEF => {int(0XEF)}')
print(f'0xef => {int(0xef)}')

print(f"2ef4 => {int('2ef4', 16)}")
print(f"2EF4 => {int('2EF4', 16)}")

Si vous exécutez ce programme, il convertira les valeurs hexadécimales en valeurs décimales et imprimera les résultats.

0XEF => 239
0xef => 239
2ef4 => 12020
2EF4 => 12020