Voir le flux RSS

danielhagnoul

Python. Convertir un nombre décimal en hexadécimal sans utiliser hex(dec)

Noter ce billet
par , 10/11/2019 à 01h06 (317 Affichages)
Pour un débutant, cela ne me semble pas aussi simpliste que certains le disent.

Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#! python3
# coding: utf-8
 
from math import trunc
 
# dict mapping dec -> hexa
D2H = dict(zip(range(16), "0123456789abcdef"))
 
 
def to_hex(n: int) -> str:
    lst = []
    while True:
        if n >= 16:
            quotient = trunc(n / 16)
            reste = n % 16
            lst.append(str(D2H[reste]))
            n = quotient
        else:
            lst.append(str(D2H[n]))
            break
    # on a obtenu les éléments dans l'ordre inverse
    lst.reverse()
    return "0x" + "".join(lst)
 
 
numbers = [0, 11, 16, 32, 33, 41, 45, 678, 775, 1256, 574893]
 
print([to_hex(x) for x in numbers])
# debug
print([hex(x) for x in numbers])
 
'''
['0x0', '0xb', '0x10', '0x20', '0x21', '0x29', '0x2d', '0x2a6', '0x307', '0x4e8', '0x8c5ad']
['0x0', '0xb', '0x10', '0x20', '0x21', '0x29', '0x2d', '0x2a6', '0x307', '0x4e8', '0x8c5ad']
'''

Licence Creative Commons Attribution 2.0 Belgique

Envoyer le billet « Python. Convertir un nombre décimal en hexadécimal sans utiliser hex(dec) » dans le blog Viadeo Envoyer le billet « Python. Convertir un nombre décimal en hexadécimal sans utiliser hex(dec) » dans le blog Twitter Envoyer le billet « Python. Convertir un nombre décimal en hexadécimal sans utiliser hex(dec) » dans le blog Google Envoyer le billet « Python. Convertir un nombre décimal en hexadécimal sans utiliser hex(dec) » dans le blog Facebook Envoyer le billet « Python. Convertir un nombre décimal en hexadécimal sans utiliser hex(dec) » dans le blog Digg Envoyer le billet « Python. Convertir un nombre décimal en hexadécimal sans utiliser hex(dec) » dans le blog Delicious Envoyer le billet « Python. Convertir un nombre décimal en hexadécimal sans utiliser hex(dec) » dans le blog MySpace Envoyer le billet « Python. Convertir un nombre décimal en hexadécimal sans utiliser hex(dec) » dans le blog Yahoo

Mis à jour 10/11/2019 à 10h14 par danielhagnoul

Catégories
Programmation , Python , Python

Commentaires

  1. Avatar de Beginner.
    • |
    • permalink
    Salut,

    Je viens de voir ton billet...

    Et oui ce n'est pas forcément évident à faire pour un débutant...

    Je note l'usage de la fonction trunc : quotient = trunc(n / 16)...

    J'avais vu il y a quelques temps que la division entière pouvait aussi se faire avec l'opérateur // : quotient = n // 16...

    Je ne connais pas encore zip, il faudra que je regarde ça...