How to get the logical right binary shift in python How to get the logical right binary shift in python python python

How to get the logical right binary shift in python


There isn't a built-in operator for this, but you can easily simulate the >>> yourself:

>>> def rshift(val, n): return val>>n if val >= 0 else (val+0x100000000)>>n... >>> rshift(-1000, 3)536870787>>> rshift(1000, 3)125

The following alternative implementation removes the need for the if:

>>> def rshift(val, n): return (val % 0x100000000) >> n


No, there isn't. The right shift in python is arithmetical.


Numpy provides the right_shift() function that does this:

>>> import numpy>>> numpy.right_shift(1000, 3)125