将整数转换为二进制

lov*_*eed 5 python

我有一个整数,我想转换为二进制,并从右边开始将一串位存储在一维数组中.例如,如果输入6那么它应该返回一个数组[1,1,0].如何在python中做到这一点?

Tad*_*eck 6

可能最简单的方法是不使用bin()和字符串切片,但使用以下功能.format():

'{:b}'.format(some_int)
Run Code Online (Sandbox Code Playgroud)

它的表现如何:

>>> print '{:b}'.format(6)
110
>>> print '{:b}'.format(123)
1111011
Run Code Online (Sandbox Code Playgroud)

如果bin()你只是得到相同的字符串,但前面加上" 0b",所以你必须删除它.

int从二进制表示中获取s的列表

编辑:好的,所以不要只是一个字符串,而是一个整数列表.你可以这样做:

your_list = map(int, your_string)
Run Code Online (Sandbox Code Playgroud)

编辑问题的组合解决方案

所以整个过程看起来像这样:

your_list = map(int, '{:b}'.format(your_int))
Run Code Online (Sandbox Code Playgroud)

bin()我认为的更清洁.


Lev*_*sky 1

bin如果您的 Python >= 2.6,则可以使用该函数:

list(bin(6))[2:]
Run Code Online (Sandbox Code Playgroud)

编辑:哎呀,忘记将项目转换为int

map(int, list(bin(6))[2:])
Run Code Online (Sandbox Code Playgroud)