可能重複:
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