как преобразовать десятичное число в двоичный список.
Например, как мне изменить 8 на [1,0,0,0]
Ответ 1
Возможно, вы можете использовать встроенную функцию bin:
bin(8) #'0b1000'
чтобы получить список:
[int(x) for x in bin(8)[2:]]
Хотя кажется, что, вероятно, лучший способ...
Ответ 2
Попробуйте следующее:
>>> list('{0:0b}'.format(8))
['1', '0', '0', '0']
Изменить - Ooops, вам нужны целые числа:
>>> [int(x) for x in list('{0:0b}'.format(8))]
[1, 0, 0, 0]
Другое редактирование -
версия mgilson немного быстрее:
$ 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
Ответ 3
В духе вашей первоначальной попытки:
binary = []
while num != 0:
bit = num % 2
binary.insert(0, bit)
num = num / 2