Convertir une chaîne hexagonale en int en Python

Comment convertir une chaîne hexagonale en un nombre entier en Python ?

Je peux l'avoir comme "0xffff&quot ; ou juste "ffff&quot ;.

Solution

**Sans le préfixe 0x, vous devez spécifier la base explicitement, sinon il n'y a aucun moyen de le savoir :

x = int("deadbeef", 16)

Avec le préfixe 0x, Python peut distinguer automatiquement l'hexagone et le décimal.

>>> print int("0xdeadbeef", 0)
3735928559
>>> print int("10", 0)
10

(Vous doit spécifier 0 comme base afin d'invoquer ce comportement de devinette de préfixe ; omettre le deuxième paramètre signifie supposer la base-10).

Commentaires (3)

int(hexString, 16) fait l'affaire, et fonctionne avec et sans le préfixe 0x :

>>> int("a", 16)
10
>>> int("0xa",16)
10
Commentaires (0)

Pour toute chaîne de caractères donnée s :

int(s, 16)
Commentaires (0)