我从未使用过 >>
和 <<
运算符,不是因为我从来不需要它们,而是因为我不知道我是否可以使用它们,或者我应该在哪里使用它们。
100 >> 3
输出 12
而不是 12.5
.为什么是这样。也许学习在哪里最好地使用右移会隐含地回答这个问题,但我很好奇。
最佳答案
右移不是除法
让我们看看是什么right-shift 实际上确实如此,而且会变得很清楚。
首先,回想一下,数字是以二进制数字的集合形式存储在内存中的。如果我们有 8 位内存,我们可以将 2 存储为 00000010
,将 5 存储为 00000101
。
右移将这些数字向右移动。例如,将上述两位数右移一位将分别得到 00000001
和 00000010
。
请注意,最低位(最右边)完全移出了末尾,对最终结果没有影响。
关于Python:为什么右移>>向下舍入,应该在哪里使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2314181/