-1

可能重复:
Python - '>>' 运算符

有一些代码可以做到这一点:

x = n - 1 >> 1

我不知道是否必须提供更多语法,但是 >> 是什么意思?我一直在寻找,但找不到任何解释。

4

4 回答 4

6

它是一个右移逻辑,它是一个按位运算,告诉数字按该量移位。在这种情况下,您将移动 1,这相当于除以 2。

如果您不了解按位运算,那么您要记住的简单转换就是这样。

x >> n

相当于

x // (2**n)

于 2012-07-12T16:18:32.140 回答
3

它是按位右移运算符

它将整数参数的位向右移动表达式右侧的数字:

>>> 8 >> 2
2

或以二进制说明:

>>> bin(0b1000 >> 2)
'0b10'

您的代码示例实际上是双重混淆,因为它混合了算术和按位运算。它应该使用'//' 整数除法运算来代替:

x = (n - 1) // 2
于 2012-07-12T16:18:49.220 回答
1
x >> y

相当于

x.__rshift__(y)

正如其他人所说,这意味着位移。

于 2012-07-12T16:27:18.130 回答
1

>> 是按位右移运算符。此运算符将第一个操作数中的所有位向右移动第二个操作数。

所以:a >> b = a // 2**b

例子:

  • 36 二进制是 0b100100
  • 36 >> 1 是 0b10010 (最后一个二进制数字或“位”被删除),即 18
  • 36 >> 2 是 0b1001(删除 2 位),即 9

请注意,运算符在添加之后进行。因此代码首先执行 n-1,然后将其右移 1 位(即除以 2)。

于 2012-07-12T16:30:09.547 回答