1

可能重复:
在不使用内置 bin 函数的情况下将整数转换为二进制

此函数接收一个以 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)or之类的任何函数binary_list。这就是这个问题这么长时间的原因。

4

3 回答 3

1

您可以初始化一个列表,然后使用 for 循环遍历字符串,并在每次迭代时将值附加到列表中,就像这样。

binary_string = convert_10_to_2(11)

binary_list = []

for character in binary_string:
    binary_list.append(int(character))
于 2012-11-23T05:26:06.663 回答
0

bin(X), x 是函数返回二进制字符串的整数

更多@python 内置函数

于 2012-11-23T05:31:59.900 回答
0

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

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

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

于 2012-11-23T05:49:24.993 回答