J'ai une valeur hexagonale dans une chaîne comme Je sais que je peux convertir cela en binaire avec: p> Toutefois, Cela perd le premier 0. Y a-t-il de toute façon pour faire cette conversion sans perdre les 0? Ou est le meilleur moyen de le faire juste pour compter le nombre de 0 d'avant de la conversion, puis l'ajoutez ensuite. P> p>
7 Réponses :
Je ne pense pas qu'il y ait un moyen de garder ces principaux zéros par défaut.
Chaque chiffre hexagonal se traduit par 4 chiffres binaires, la longueur de la nouvelle chaîne doit donc être exactement 4 fois la taille de l'original. p> alors, vous pouvez utiliser .zfill code> pour remplir les zéros à la taille souhaitée: p>
Je pense que cela m'a donné 3 extra 0 pour une raison quelconque
Ah Nevermind ça marche parfaitement. Je ne comptant pas les 0 avant le premier numéro hexagonal non nul. Merci.
@Root: non liée: ne réutilisez pas h code> nom pour différentes choses, par exemple, utilisez
bits code> nom pour le résultat:
bits = bac (int (h, 16) ) [2:]. Zfill (len (h) * 4) code>
Fondamentalement le même mais le rembourrage à 4 bindusts chaque hexdigit
Un débutant à python tel que je vais procéder comme si
databinCrop = databin[18:]
Ceci convertit une chaîne hexagonale en une chaîne binaire. Puisque vous voulez que la longueur soit dépendante de l'original, cela peut être ce que vous voulez.
Ceci est en fait assez facile dans Python, car il n'a aucune limite sur la taille des entiers. Il suffit de préparer un '1' 1 ' code> à la chaîne hexagonale et bandez le
correspondant à partir de la sortie.
>>> h = '00112233aabbccddee'
>>> bin(int(h, 16))[2:] # old way
'1000100100010001100111010101010111011110011001101110111101110'
>>> bin(int('1'+h, 16))[3:] # new way
'000000000001000100100010001100111010101010111011110011001101110111101110'
Cherché exactement cela pendant une heure!
hexa = '91278c4bfb3cbb95ffddc668d995bfe0' binary = bin(int(hexa, 16))[2:] print binary hexa_dec = hex(int(binary, 2))[2:] print hexa_dec
J'avais besoin d'un entier comme une entrée et des chaînes hexagonales / cornes pure avec les préfixes '0b' et '0x' afin que ma solution générale est la suivante:
Y a-t-il une raison particulière dont vous avez besoin le
0 code> s?
J'utilise la valeur h ultérieurement comme une clé d'un dictionnaire. La clé a toutefois tous les chanteurs.
Y a-t-il une raison convaincante que vous utilisez une représentation de chaîne binaire de la valeur plutôt que d'un entier pour la clé de dictionnaire?
@Waynewerner: Je cherchais cela afin que je puisse facilement comparer 50 numéros binaires et chercher des bits qui ne changent pas.
[bin (x) .RJUST (20) pour x dans a] code> est assez bon.
Connexes: Convertir binaire en ASCII et vice versa