>> operator in Python

Question:

What does the >> operator do? For example, what does the following operation 10 >> 1 = 5 do?

Asked By: AlexBrand

||

Answers:

It’s the right bit shift operator, ‘moves’ all bits once to the right.

10 in binary is

1010

shifted to the right it turns to

0101

which is 5

Answered By: Eton B.

See section 5.7 Shifting Operations in the Python Reference Manual.

They shift the first argument to the
left or right by the number of bits
given by the second argument.

Answered By: Zack The Human

Its the right shift operator.

10 in binary is 1010 now >> 1 says to right shift by 1, effectively loosing the least significant bit to give 101, which is 5 represented in binary.

In effect it divides the number by 2.

Answered By: codaddict

>> and << are the Right-Shift and Left-Shift bit-operators, i.e., they alter the binary representation of the number (it can be used on other data structures as well, but Python doesn’t implement that). They are defined for a class by __rshift__(self, shift) and __lshift__(self, shift).

Example:

>>> bin(10) # 10 in binary
1010
>>> 10 >> 1 # Shifting all the bits to the right and discarding the rightmost one
5 
>>> bin(_) # 5 in binary - you can see the transformation clearly now
0101 

>>> 10 >> 2 # Shifting all the bits right by two and discarding the two-rightmost ones
2
>>> bin(_)
0010

Shortcut: Just to perform an integer division (i.e., discard the remainder, in Python you’d implement it as //) on a number by 2 raised to the number of bits you were shifting.

>>> def rshift(no, shift = 1):
...     return no // 2**shift
...     # This func will now be equivalent to >> operator.
...
Answered By: Yatharth Agarwal

You can actually overloads right-shift operation(>>) yourself.

>>> class wierd(str): 
... def __rshift__(self,other): 
... print self, 'followed by', other 
... 
>>> foo = wierd('foo') 
>>> bar = wierd('bar') 
>>> foo>>bar 
foo followed by bar 

Reference: http://www.gossamer-threads.com/lists/python/python/122384

Answered By: Alan Dong
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.