如何在Python中实现逻辑右移?

45

如标题所示,在JavaScript中有一个特定的运算符>>>。例如,在JavaScript中我们将得到以下结果:

(-1000) >>> 3 = 536870787

(-1000) >> 3 = -125

1000 >>> 3 = 125

1000 >> 3 = 125

那么是否有某种方法或运算符表示这个 >>>

12个回答

-2

我认为Python中没有直接提供逻辑右移位运算符。不过你可以在Python中使用JavaScript,例如:

import js2py
rshift = js2py.eval_js('function $(a, b){ return a >>> b}')
print (rshift(244, 324)) #15

-3

最高票答案对于 val < 0 和 n == 0 的情况产生了错误的结果!

def rshift(val, n):
    if (val >= 0): return val >> n
    elif (n == 0): return val
    else: return (val + 0x10000000) >> n

>>> rshift(-1, 0)
-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接