我正在用python的javascript复制方程式。
这是Javascript中的等式:-
var q = 1;
var c = [608875978, 500902236, -1359500678, -1631660920];
var x = c[q >>> 2] >>> 24 - q % 4 * 8 & 255;
输出:- x = 74
与Python类似:-
def rshift(val, n):
return (val % 0x100000000) >> n
i = 1
words = [608875978, 500902236, -1359500678, -1631660920]
x = rshift((words[rshift(i, 2)]), 24) - i % 4 * 8 & 255
print(x)
输出:- x = 28
我确定rshift
返回的值正确。 Python评估与JS评估到底有什么错?
答案 0 :(得分:1)
我刚刚在python中尝试了相同的操作,它输出了74
:
q = 1;
c = [608875978, 500902236, -1359500678, -1631660920];
x = c[q >> 2] >> 24 - q % 4 * 8 & 255;
print(x) // prints `74`
注意:在python中,我只是将>>>
替换为>>
。
我不是python专家-我刚刚从昨天开始学习。因此,我现在无法分析您的示例代码。但是您应该修复-可能存在一些问题。
据我所知,任何语言都遵循相同的数学规则。