Conversion d'entier en binaire en python
Afin de convertir un entier en binaire, j'ai utilisé ce code :
>>> bin(6)
'0b110'
Et quand 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
?
117
demandé sur
jamylak
2012-05-02 13:31:41
8 réponses
>>> '{0:08b}'.format(6)
'00000110'
Juste pour expliquer les parties de la chaîne de formatage:
-
{}
place une variable dans une chaîne -
0
prend la variable à la position de l'argument 0 -
:
ajoute des options de formatage pour cette variable (sinon elle représenterait decimal6
) -
08
formate le nombre à huit chiffres zero-rembourré sur la gauche -
b
convertit le nombre en sa représentation binaire
256
répondu
eumiro
2017-05-13 07:21:47
Juste une autre idée:
>>> bin(6)[2:].zfill(8)
'00000110'
Chemin plus court via interpolation de chaîne (Python 3.6+):
>>> f'{6:08b}'
'00000110'
80
répondu
mshsayem
2018-01-10 06:33:29
Un peu tourner la méthode...
>>> bin8 = lambda x : ''.join(reversed( [str((x >> i) & 1) for i in range(8)] ) )
>>> bin8(6)
'00000110'
>>> bin8(-3)
'11111101'
15
répondu
sobel
2018-02-18 11:41:29
Utilisez simplement la fonction de format
format(6, "08b")
La forme générale est
format(<the_integer>, "<0><width_of_string><format_specifier>")
10
répondu
theOne
2016-04-07 20:16:08
La réponse D'Eumiro est meilleure, mais je ne fais que poster ceci pour variety:
>>> "%08d" % int(bin(6)[2:])
00000110
5
répondu
jedwards
2012-05-02 09:35:17
.. ou si vous n'êtes pas sûr qu'il devrait toujours être de 8 chiffres, vous pouvez le passer en paramètre:
>>> '%0*d' % (8, int(bin(6)[2:]))
'00000110'
5
répondu
thebjorn
2012-05-02 09:47:30
Aller à la vieille école fonctionne toujours
def intoBinary(number):
binarynumber=""
if (number!=0):
while (number>=1):
if (number %2==0):
binarynumber=binarynumber+"0"
number=number/2
else:
binarynumber=binarynumber+"1"
number=(number-1)/2
else:
binarynumber="0"
return "".join(reversed(binarynumber))
0
répondu
Shadychiri
2018-06-08 16:40:11
('0' * 7 + bin(6)[2:])[-8:]
Ou
right_side = bin(6)[2:]
'0' * ( 8 - len( right_side )) + right_side
0
répondu
zerg
2018-09-05 00:07:31