python中的双重不等式(>>)符号是什么?

时间:2012-07-12 16:16:56

标签: python

  

可能重复:
  Python - '>>' operator

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

x = n - 1 >> 1

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

4 个答案:

答案 0 :(得分:6)

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

如果你不理解按位操作,那么你需要记住一个简单的转换。

x>> Ñ

相当于

x //(2 ** n)

答案 1 :(得分:3)

这是bitwise shift-to-right operator

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

>>> 8 >> 2
2

或二进制说明:

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

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

x = (n - 1) // 2

答案 2 :(得分:1)

x >> y

相当于

x.__rshift__(y)
正如其他人所说的那样,

意味着是一个分档。

答案 3 :(得分:1)

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

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

示例:

  • 36 in binary是0b100100
  • 36>> 1是0b10010(最后一位二进制数字或"位"被删除),这是18
  • 36>> 2是0b1001(去掉2位),即9

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