整数到二进制

时间:2012-11-23 05:16:45

标签: python

  

可能重复:
  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}等任何功能}}。这就是这个问题长期存在的问题。

3 个答案:

答案 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是函数返回二进制字符串

的整数

更多@ python build in functions

答案 2 :(得分:0)

这适用于Python 2.x和3.x:

list(map(int, '{:b}'.format(11)))

如果您愿意,请将11替换为其他号码。如果您不需要Python 3.x支持,请删除封闭的list调用。如果您确实认为有必要,请将其包含在功能中。