我有一个非常具体的问题,关于如何通过Python将整数转换为二进制,而是只使用mod(%)和除(/)函数。在Python中将整数转换为二进制
到目前为止,我已经成功地创建了实际的函数并循环了自身,但函数似乎永远循环并增加了一个0和1的数字,尽管成功地进行了转换。
例如,输入4,输出[0,0,1,0,1]。正如你所看到的,它已经成功获得[0,0,1],它是二进制的4,但是在末尾增加了一个0和一个1。
我认为这是与我参考和传递参数的方式有关,但很乐意接受一些帮助。
num = int(input("Enter the Number"))
def func(num)
if num == 1:
alist.append(1)
return num
while num != 1:
modnum = int(num%2)
num = int(num/2)
if modnum == 0:
alist.append(0)
print(alist)
elif modnum == 1:
alist.append(1)
print(alist)
func(num)
alist = []
func(num)
print(alist)
print (alist[::-1])
递归*和*循环快速实现这一点?似乎你需要选择一种方式或另一种方式。 –
你能解释一下吗?我知道我在循环中使用递归,但在这种情况下,它是否重要?我很新,所以任何帮助都会很乐意。 – Nawlidge
为什么不使用'list(“{0:b}”.format(num))'来获取列表? –