可能重复:
Convert an integer to binary without using the built-in bin function
此函数接收基数为10的参数作为参数,并应返回表示以二进制表示的相同值的列表作为位列表,其中列表中的第一个元素是最重要(最左侧)位。
convert_10_to_2(11)
应该返回[1, 0, 1, 1]
我不能使用二进制函数或外部函数,因此必须以更复杂的方式完成。
b = ''
while num > 0:
b = str(num % 2) + b
num >>= 1
return (b)
好的,我最终得到了我的代码,好吧,我得到'1011'
,但我需要[1,0,1,1]
,我无法使用bin(x)
或{{1}等任何功能}}。这就是这个问题长期存在的问题。
答案 0 :(得分:1)
您可以初始化列表,然后使用for循环遍历字符串,并在每次迭代时将值附加到列表中,如此。
binary_string = convert_10_to_2(11)
binary_list = []
for character in binary_string:
binary_list.append(int(character))
答案 1 :(得分:0)
bin(X),x是函数返回二进制字符串
的整数答案 2 :(得分:0)
这适用于Python 2.x和3.x:
list(map(int, '{:b}'.format(11)))
如果您愿意,请将11
替换为其他号码。如果您不需要Python 3.x支持,请删除封闭的list
调用。如果您确实认为有必要,请将其包含在功能中。