为什么在 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 的值,它只改变了最后一行。
我是编程新手,我不明白为什么这段代码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 的值,它只改变了最后一行。