为什么在Python中使用模数和地板除法返回一个反向二进制数?



我是一个编程新手,我不明白为什么这段代码返回输入的二进制数。

x = int(input())
while x > 0:
print(x % 2, end='')
x = x // 2

例如,当我输入6时,我希望它返回0(6% 2 = 0,0//2 = 0),但它返回011。

我之所以说考虑这个,是因为在赋值中,我们应该使用这个编码来帮助我们反转输出(当使用字符串时),但是当我不知道它为什么工作时,我不知道如何反转它。

011的答案对于您的代码是正确的,只需跟踪它即可。从6%2开始,得到0。然后6层2是3,这是下一次迭代的x,所以它变成了3%2,也就是1,最后一次迭代创造了最后一个1。请记住,您不会在print语句中更改x的值,它只会在最后一行更改。

最新更新