可能重复:
Convert an integer to binary without using the built-in bin function如何十进制转换为二进制名单蟒蛇
我怎么转换成十进制数转换成二进制列表。
例如,我怎么改8成[1,0,0,0]
可能重复:
Convert an integer to binary without using the built-in bin function如何十进制转换为二进制名单蟒蛇
我怎么转换成十进制数转换成二进制列表。
例如,我怎么改8成[1,0,0,0]
你也许可以使用内置bin
功能:
bin(8) #'0b1000'
以获取列表:
[int(x) for x in bin(8)[2:]]
虽然看起来好像还有更好的办法......
依赖于字符串表示细节,并从一个整数到一个字符串,然后到一个列表似乎....次优。 – slacy
在你的精神里R论着尝试:
binary = []
while num != 0:
bit = num % 2
binary.insert(0, bit)
num = num/2
对于'.append()'位,然后'.reverse()'列表最后会更好,而不是在列表的开头插入''。 – Tim
试试这个:
>>> list('{0:0b}'.format(8))
['1', '0', '0', '0']
编辑 - 哎呀,你想要的整数:
>>> [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
我尝试这样做: 二进制= 0 而NUM = 0: 位= NUM%2 二进制=位+(10 *二进制) NUM = NUM/2 二进制= [二进制] 返回二进制 但它不给我逗号之间的数字,它并不总是添加零。 – booboboobobob
你有什么尝试?你可能想看看Python函数'bin'。 – Yuushi
我想做没有这个功能,如果我可以 – booboboobobob