为什么在 Python return 中使用模数和底除法是一个反转的二进制数?

Why does using modulus and floor division in Python return a reversed binary number?

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

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

例如,当我输入 6 时,我希望它是 return 0 (6 % 2 = 0, 0 // 2 = 0),但它 returns 011.

我说考虑这个是因为,在一个作业中,我们应该使用这个编码来帮助我们反转输出(同时使用字符串)但我不知道如何在我不这样做时反转它知道它为什么有效。

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