La conversion d'entier en binaire en python
Afin de convertir un entier en binaire, j'ai utilisé ce code :
>>> bin(6)
'0b110'
et quand pour effacer le '0b', j'utilise ceci :
>>> bin(6)[2:]
'110'
Que puis-je faire si je veux montrer 6
comme 00000110
au lieu de 110
?
- Double Possible de Python int binaire?
Vous devez vous connecter pour publier un commentaire.
Juste pour expliquer les parties de la chaîne de mise en forme:
{}
lieux d'une variable dans une chaîne de0
prend la variable à l'argument de la position 0:
ajoute des options de mise en forme pour cette variable (sinon, il serait de représenter décimal6
)08
formats le numéro à huit chiffres des zéros sur la gaucheb
convertit le nombre en sa représentation binaireSi vous utilisez une version de Python 3.6 ou supérieur, vous pouvez également utiliser f-chaînes:
0
signifie la0th
argumentformat
. Après le côlon est la mise en forme, la seconde0
signifie zéro de remplissage de 8 espaces etb
pour les binairesformat()
function:format(6, '08b')
; la fonction prend une valeur (ce que l'{..}
fente s'applique) et une mise en forme de spécification (tout ce que vous voulez mettre après la:
dans la chaîne de mise en forme).'{0:08b}'.format(-6)
->'-0000110'
. que faire si vous ne voulez pas un signe?struct
?-6%256
?Simplement une autre idée:
Plus court chemin par chaîne d'interpolation (Python 3.6+):
Un peu tourner la méthode...
x
à droite et Padn avec1
, effectivement l'extraction d'un bit (0 ou 1) à la fois.Suffit d'utiliser la fonction format
La forme générale est
1000000 loops, best of 3: 556 ns per loop
eumiro la réponse est mieux, cependant je suis en train de poster ce pour la variété:
'%08x' % int(bin(6)[2:], 16)
.. ou si vous n'êtes pas sûr que ça devrait toujours être de 8 chiffres, vous pouvez le passer en paramètre:
Aller Vieille École fonctionne toujours
numpy.binary_repr(num, largeur=Aucun)
a une magie largeur argumentDes exemples pertinents de la documentation liée ci-dessus:
ou