我需要移植一些JS代碼,它涉及到Math.random()*2147483648)^(new Date).getTime()
。雖然它看起來像較小的數字,但python函數和JS函數在功能上是等價的,但是像這樣的大數字,這些值最終會完全不同。JS和Python中^操作符的區別
的Python:
>>> 2147483647^1257628307380
1257075044427
的Javascript:
> 2147483647^1257628307380
-1350373301
我怎樣才能從蟒蛇的JavaScript值?
更好地使用'1 << 32'或直接'4294967296'而不是'2 ** 32'。 – Gumbo 2009-11-07 22:00:33
使用4294967296會很愚蠢 - 它會殺死可讀性。 2 ** 32不是非常昂貴,而且可能是不斷摺疊的。 1 << 32很容易理解。 – 2009-11-07 22:22:54
我剛剛檢查過,Python 3.1不斷摺疊'2 ** 16'和'2 ** 32'。 – u0b34a0f6ae 2009-11-08 09:56:33