Python中的零填充右移

3
function(e, t) {
    return e << t | e >>> 32 - t
}

我在js中有这个方法,但我对移位运算不是很了解。我想用python编写等效的代码,但是Python不支持JS中的零填充右移位运算符>>>,请问如何编写?


1
我的回答解决了你的问题吗? - lmiguelvargasf
重复的问题:如何在Python中实现逻辑右移位运算其中一种优雅的解决方案是:def rshift(val, n): return (val % 0x100000000) >> n。请参考该问题和答案。 - Ali
1个回答

3

Python中没有内置的零填充右移运算符,但是您可以轻松地定义自己的zero_fill_right_shift函数:

def zero_fill_right_shift(val, n):
    return (val >> n) if val >= 0 else ((val + 0x100000000) >> n)

然后,您可以定义您的函数:

def f(e, t):
    return e << t or zero_fill_right_shift(e, 32 - t)

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