J'ai de la difficulté à changer un hexadécimal vers un int / char (char de préférence). Via le site web; http://home2.paulschou.net/tools/xlate/ i Entrez dans l'hex de c0a80026 dans la boîte hexagonale, dans la boîte déc / Char, il génère correctement l'IP que je m'attendais à contenir.
Ces données sont tirées d'une base de données externe et je ne suis pas conscient de la manière dont il est sauvegardé pour tout ce que je dois travailler avec est la chaîne hexagone elle-même. p>
J'ai essayé d'utiliser la fonction Attaquez-vous pour imprimer uniquement l'utilisation d'une installation int () n'a également pas produit les résultats requis. J'ai besoin d'un moyen de convertir de cette chaîne hexagonale (ou une personne similaire) à l'adresse IP d'origine. P> Mise à jour: pour toute personne qui apparaît à l'avenir, j'ai légèrement modifié la réponse ci-dessous pour fournir une impression exacte comme une adresse IP en utilisant; p> binAcii.unhexLify code> pour voir si je pouvais le décoder, mais je crains que je n'ai peut-être pas une bonne compréhension suffisante de hexagonal pour apprécier ce que je fais. P>
6 Réponses :
J'espère que c'est ce que vous attendez:
hex_val = 0x42424242 # hexadecimal value int_val = int(hex_val) # integer value str_val = str(int_val) # string representation of integer value
Literal 0x4242422 code> crée déjà un entier,
int (heex_val) code> est redondant.
Si vous souhaitez obtenir 4 numéros distincts, donnez-le comme 4 numéros distincts. Vous n'avez pas besoin Ceci peut être généralisé, mais je laisserai un exercice pour vous. P> P> binAcii code>.
Vous avez peut-être aussi besoin de la fonction CHR:
chr(65) => 'A'
CHR accepte uniquement les entiers La question indique clairement que l'utilisateur doit convertir un hexadécimal dans un int / char (pas un intégrité en caractères) et de la CHR n'accepte que des entiers, ce qui n'était donc pas une solution.
>>> htext='C0A80026' >>> [int(htext[i:i+2],16) for i in range(0,len(htext),2)] # [192, 168, 0, 38]
Un moyen simple si vous préférez des comprimés de liste p>
Joli. Je décodage code> et
ord code>.
Pour convertir une chaîne hexadécoise en chaîne lisible humaine, vous pouvez échapper à chaque personnage hexagonal, comme celui-ci: à partir de la chaîne, vous pouvez facilement boucler sur la liste INT: P> >>> [ord(c) for c in '\xC0\xA8\x00\x26']
[192, 168, 0, 38]
Dupliqué possible de Convertir une chaîne hexagonale en int in dans Python
Cette solution ne fonctionne pas avec mon problème
Veuillez expliquer exactement comment la question de la duplication n'est pas une duplication. Détails compte. "Ne travaille pas avec mon problème" est trop vague pour dire quoi que ce soit.
Désolé, je suppose que vous les aviez déjà comparé. Mon problème est lié à la décodage hexagone dans une adresse IP que l'autre question ne couvre pas. Également bien que je ne connaisse pas beaucoup d'expérience sur HEX ou Python, il n'y a pas de questions connexes qui suggère que notre similitude se termine à tenter de décoder hex mais qui essaient d'atteindre deux extrémités différentes
Il aide à éviter toutes les hypothèses. Je ne comprends toujours pas pourquoi la question fournie n'est pas la réponse à votre question car (1) Je ne comprends pas les nuances de votre question et (2) je ne comprends pas les lacunes de votre connaissance. Plutôt que d'assumer, s'il vous plaît Mettre à jour B> Votre question aux détails - spécifiquement - pourquoi une réponse existante largement acceptée n'est pas appropriée pour cela. Détails compte. Et mises à jour b> à la question sont meilleures que des commentaires.