web-dev-qa-db-fra.com

Comment convertir une liste décimale en liste binaire dans python

Duplicata possible:
Convertir un entier en binaire sans utiliser la fonction bin intégrée

comment convertir un nombre décimal en une liste binaire.

Par exemple, comment changer 8 en [1,0,0,0]

20
booboboobobob

Vous pouvez probablement utiliser la fonction intégrée bin:

bin(8) #'0b1000'

pour obtenir la liste:

[int(x) for x in bin(8)[2:]]

Bien qu'il semble qu'il y ait probablement une meilleure façon ...

25
mgilson

Essaye ça:

>>> list('{0:0b}'.format(8))
['1', '0', '0', '0']

Edit - Oups, vous vouliez des entiers:

>>> [int(x) for x in list('{0:0b}'.format(8))]
[1, 0, 0, 0]

Un autre montage -

la version de mgilson est un peu plus rapide:

$ python -m timeit "[int(x) for x in list('{0:0b}'.format(8))]"
100000 loops, best of 3: 5.37 usec per loop
$ python -m timeit "[int(x) for x in bin(8)[2:]]"
100000 loops, best of 3: 4.26 usec per loop
16
Sean Redmond

Dans l'esprit de votre tentative originale:

binary = []
while num != 0:
    bit = num % 2
    binary.insert(0, bit)
    num = num / 2
4
Alexey Feldgendler