可能重复:
Python - '>>' 运算符
有一些代码可以做到这一点:
x = n - 1 >> 1
我不知道是否必须提供更多语法,但是 >> 是什么意思?我一直在寻找,但找不到任何解释。
它是一个右移逻辑,它是一个按位运算,告诉数字按该量移位。在这种情况下,您将移动 1,这相当于除以 2。
如果您不了解按位运算,那么您要记住的简单转换就是这样。
x >> n
相当于
x // (2**n)
它是按位右移运算符。
它将整数参数的位向右移动表达式右侧的数字:
>>> 8 >> 2
2
或以二进制说明:
>>> bin(0b1000 >> 2)
'0b10'
您的代码示例实际上是双重混淆,因为它混合了算术和按位运算。它应该使用'//' 整数除法运算来代替:
x = (n - 1) // 2
x >> y
相当于
x.__rshift__(y)
正如其他人所说,这意味着位移。
>> 是按位右移运算符。此运算符将第一个操作数中的所有位向右移动第二个操作数。
所以:a >> b = a // 2**b
例子:
请注意,运算符在添加之后进行。因此代码首先执行 n-1,然后将其右移 1 位(即除以 2)。