use*_*201 13 python binary list converter bit
该函数作为参数接收整数,并且应该返回表示以二进制表示的相同值的列表作为位列表,其中列表中的第一个元素是最重要(最左侧)位.
我的功能目前输出'1011'
数字11,我需要[1,0,1,1]
.
例如,
>>> convert_to_binary(11)
[1,0,1,1]
Run Code Online (Sandbox Code Playgroud)
Jun*_* HU 11
def trans(x):
if x == 0: return [0]
bit = []
while x:
bit.append(x % 2)
x >>= 1
return bit[::-1]
Run Code Online (Sandbox Code Playgroud)
只是为了好玩 - 作为递归单行的解决方案:
def tobin(x):
return tobin(x/2) + [x%2] if x > 1 else [x]
Run Code Online (Sandbox Code Playgroud)
小智 6
我可以提出以下建议:
def tobin(x,s):
return [(x>>k)&1 for k in range(0,s)]
Run Code Online (Sandbox Code Playgroud)
这可能是最快的方法,对我来说似乎很清楚。当性能很重要时,bin方法太慢。
干杯