我的问题与此stackoverflow帖子有关:enter link description here,其中inspectorG4dget提供了代码
def decToBin(n):
if n==0: return ''
else:
return decToBin(n/2) + str(n%2)
Alex Martelli观察到的递归是不必要的,因为可以使用明显的bin(x)[2:]。如果用户需要二进制表示作为字符串,这很好。但是,我需要二进制表示作为列表或numpy ndarray。我可以看到,我的选择是a)改编这段代码或b)像这样的string.split(','.join(bin(10)[2:]),',')
。我知道字符串操作往往很昂贵,但递归也很昂贵。
鉴于我需要将一个整数转换为一个array_like的位,哪个选项(a或b)可能更有效?还有另一个更简单的&完全更好的方式?
答案 0 :(得分:5)
您只需按list()
将字符串转换为列表即可。
list(bin(10)[2:])