如何在Python中获取逻辑右移位
正如标题所说,在JavaScript中有一个特定的运算符叫做 >>>
。比如,在JavaScript中我们会得到以下结果:
(-1000) >>> 3 = 536870787
(-1000) >> 3 = -125
1000 >>> 3 = 125
1000 >> 3 = 125
那么,有没有某种方法或运算符可以表示这个 >>>
呢?
12 个回答
3
这是对aix的回答的一个衍生内容。正常的右移操作符在你输入一个正数时是可以工作的,所以你实际上是在寻找一种将有符号数转换为无符号数的方法。
def unsigned32(signed):
return signed % 0x100000000
>>> unsigned32(-1000) >> 3
536870787L
11
不,没有这样的东西。在Python中,右移操作是算术右移。
62
这个功能没有现成的操作符可以用,但你可以很简单地自己模拟一下 >>>
的效果:
>>> def rshift(val, n): return val>>n if val >= 0 else (val+0x100000000)>>n
...
>>> rshift(-1000, 3)
536870787
>>> rshift(1000, 3)
125
下面这个替代的实现方法就不需要用到 if
了:
>>> def rshift(val, n): return (val % 0x100000000) >> n