web-dev-qa-db-fra.com

Comment convertir une chaîne hexadécimale en nombre hexadécimal

Je veux convertir une chaîne hexagonale (ex: 0xAD4) au nombre hexadécimal, puis à ajouter 0x200 à ce numéro et souhaitez à nouveau imprimer ce numéro sous la forme de 0x sous forme de chaîne.

j'ai essayé pour la première étape:

str(int(str(item[1][:-2]),16))

mais la valeur imprimée est une chaîne décimale et non une chaîne au format hexadécimal (au format 0x) (je veux imprimer le résultat final sous la forme de 0x)

  • [:-2] pour supprimer les derniers 00 de ce nombre
  • item[1] contient le nombre hexadécimal sous la forme de 0x
36
RATHI

Essaye ça:

hex_str = "0xAD4"
hex_int = int(hex_str, 16)
new_int = hex_int + 0x200
print hex(new_int)

Si vous n'aimez pas le 0x au début, remplacez la dernière ligne par

print hex(new_int)[2:]
74
Bach

Utilisez la fonction int avec le deuxième paramètre 16 pour convertir une chaîne hexadécimale en entier. Enfin, utilisez la fonction hex pour la reconvertir en nombre hexadécimal.

print hex(int("0xAD4", 16) + int("0x200", 16)) # 0xcd4

Au lieu de cela, vous pouvez directement faire

print hex(int("0xAD4", 16) + 0x200) # 0xcd4
13
thefourtheye