La conversion de hex binaire sans perdre pointe de 0 python
J'ai une valeur hexadécimale dans une chaîne de caractères comme
h = '00112233aabbccddee'
Je sais que je peux convertir ce binaire avec:
h = bin(int(h, 16))[2:]
Toutefois, cela perd le 0 initial. Est-il de toute façon pour faire cette conversion sans perdre le 0? Ou est le meilleur moyen pour ce faire il suffit de compter le nombre de ' 0 ' avant de la conversion puis de l'ajouter dans la suite.
Est-il une raison particulière pour laquelle vous avez besoin de la
Je suis en utilisant la valeur de h plus tard comme l'une des clés d'un dictionnaire. La clé, cependant, dispose de tous les 0 de.
Est-il convaincant raison pour laquelle vous êtes à l'aide d'une chaîne binaire de représentation de la valeur plutôt qu'un entier pour la clé de dictionnaire?
Je cherchais ce que je puisse comparer facilement les 50 nombres binaires et de regarder pour les bits qui ne sont pas en train de changer.
connexes: Convertir en binaire en ASCII et vice versa
0
's?Je suis en utilisant la valeur de h plus tard comme l'une des clés d'un dictionnaire. La clé, cependant, dispose de tous les 0 de.
Est-il convaincant raison pour laquelle vous êtes à l'aide d'une chaîne binaire de représentation de la valeur plutôt qu'un entier pour la clé de dictionnaire?
Je cherchais ce que je puisse comparer facilement les 50 nombres binaires et de regarder pour les bits qui ne sont pas en train de changer.
[bin(x).rjust(20) for x in a]
est assez bon.connexes: Convertir en binaire en ASCII et vice versa
OriginalL'auteur root | 2010-07-15
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas qu'il y est un moyen de garder ces zéros non significatifs par défaut.
Chaque chiffre hexadécimal se traduit par 4 chiffres binaires, de sorte que la longueur de la nouvelle chaîne doit être exactement 4 fois la taille de l'original.
Ensuite, vous pouvez utiliser
.zfill
à remplir de zéros à la taille que vous voulez:Ah tant pis, il fonctionne parfaitement. Je n'ai pas compter le 0 avant le premier non nul nombre hexadécimal. Merci.
sans rapport: ne pas réutiliser
h
nom à des choses différentes, par exemple, l'utilisationbits
nom pour le résultat:bits = bin(int(h, 16))[2:].zfill(len(h) * 4)
OriginalL'auteur Donald Miner
C'est en fait assez facile en Python, car il n'a pas de limite sur la taille des nombres entiers. Simplement ajouter un
'1'
de la chaîne hexadécimale, et la bande correspondant'1'
à partir de la sortie.OriginalL'auteur Mark Ransom
Fondamentalement la même, mais le rembourrage pour 4 bindigits chaque hexdigit
OriginalL'auteur Nas Banov
Un débutant de python comme je voudrais procéder comme
Rembourrage pour accueillir précédent zéros le cas échéant, lorsqu'python convertit une chaîne en Hexadécimal.
Convertir collier de valeur en binaire.
Supprimer 2bits ('0b') que python ajoute pour désigner binaire + collier de 16 bits .
OriginalL'auteur AdKash
Cette fonction convertit une chaîne hexadécimale en une chaîne binaire. Puisque vous voulez la longueur dépend de l'original, c'est peut être ce que vous voulez.
OriginalL'auteur Robert Jacobs
OriginalL'auteur Haresh Shyara