2

を含む JS コードを移植する必要がありますMath.random()*2147483648)^(new Date).getTime()。小さい数値ではpython関数とJS関数は同等の機能のように見えますが、このように大きな数値では値がまったく異なります。

パイソン:

>>> 2147483647 ^ 1257628307380
1257075044427

Javascript:

> 2147483647 ^ 1257628307380
-1350373301

PythonからJavascriptの値を取得するにはどうすればよいですか?

4

2 に答える 2

7

Python には無制限の精度の整数がありますが、Javascript は 32 ビット整数を使用しています。32 ビット制限を手動で適用して、必要な結果を得ることができます。

def xor32bit(a, b):
    m = (a ^ b) % (2**32)
    if m > (2**16):
        m -= 2**32
    return m
于 2009-11-07T21:41:17.607 に答える
4

最も簡単な方法は、ctypes を使用して Javascript と同じオーバーフロー動作を取得することです。

>>> import ctypes
>>> ctypes.c_int(1257075044427)
c_long(-1350373301)

値を取得するには:

>>> ctypes.c_int(1257075044427).value
-1350373301
于 2009-11-07T21:44:42.020 に答える