convertir une chaîne en hexadécimal en python
J'ai un script qui appelle une fonction qui prend un nombre hexadécimal pour un argument. L'argument doit le préfixe 0x. La source de données est une table de base de données et est stocké sous forme de chaîne, de sorte qu'il est retourné '0x77'. Je suis à la recherche d'un moyen de prendre de la chaîne à partir de la base de données et l'utiliser comme un argument en forme hexagonale avec le préfixe 0x.
Cela fonctionne:
addr = 0x77
value = class.function(addr)
L'entrée de base de données doit être une chaîne de caractères, comme la plupart des autres dossiers n'ont pas de valeurs hexadécimales dans cette colonne, mais les valeurs peuvent être modifiés afin de la rendre plus facile, au lieu de "0x77", il pourrait être '119'.
source d'informationauteur Edyoucaterself
Vous devez vous connecter pour publier un commentaire.
Votre
class.function
s'attend à une entier qui peut être représenté par un nombre décimal ou hexadécimal littéralede sorte que ces deux appels sont complètement équivalentes:Même
print(0x77)
montrera119
(parce que la décimale est la représentation par défaut).Donc, nous devrions plutôt parler de la conversion d'une représentation de chaîne de entier. La chaîne peut être une représentation hexadécimale, comme "0x77', puis de l'analyser avec la base de paramètres:
ou une virgule, puis de l'analyser comme
int('119')
.Encore, de stockage entier chaque fois que vous faites affaire avec des entiers, c'est mieux.
EDIT: @gnibbler suggéré, vous pouvez analyser
int(x, 0)
qui gère à la fois les formats.Cela devrait fonctionner pour vous.
Vous pouvez également obtenir la représentation hexadécimale de caractères:
Je pense que vous êtes en train de dire que vous lire une chaîne de caractères à partir de la base de données et vous souhaitez le convertir en un nombre entier, si la chaîne a le préfixe 0x, vous pouvez le convertir comme suit:
Si elle ne marche pas: