Python で単純なビット単位の Javascript 操作を複製しようとしています。
【ジャバスクリプト】
> 0xA867Df55
2825379669
> 0xA867Df55 ^ 0
-1469587627
【パイソン】
>>> 0xA867DF55
2825379669L
>>> 0xA867DF55 ^ 0
2825379669L
以下を読んだ後:
ここでの問題は、Javascript の 0xA867Df55 (2825379669) が最大の符号付き 32 ビット int (2147483647) よりも大きく、予期しない Javascript の結果を引き起こしていることのようです。
その後、メールは次のように提案します。
「何らかの理由でRubyでそれを再現したい場合は、数値に1FFFFFFFFのANDを付けて、最下位32ビットのみを操作し、次に0でORします(これは何もしませんが、同じ結果が得られます) ."
しかし、私がこれを試してみると:
>>> (0xA867DF55 & 0x1FFFFFFF) ^ 0
141025109L
Python で Javascript の動作を再現する必要があるだけです。誰でも適切なビット単位の操作を提案できますか?
ありがとう。