Python/Javascript - 整数按位排他或问题

Nik*_*hil 3 javascript python integer bit-manipulation xor

我精通两种语言......但我遇到整数按位异或逻辑运算符的问题.在javascript中,它给了我一个结果,在python中它给了我另一个..

继续,打开python并执行(-5270299)^ 2825379669

现在使用javascript,进行相同的计算,并提醒结果或其他任何内容(例如http://thorat.org/OS/js.php)

结果不同!我不知道为什么!

我肯定错过了什么.

Joh*_*ica 8

JavaScript的整数是32位,而long当值超过32位时,Python会自动转换为无限长度格式.如果明确强制Python不签名扩展超过32位,或者如果将结果截断为32位,那么结果是相同的:

>>> (-5270299 & 0xFFFFFFFF) ^ 2825379669
1472744368L
>>> (-5270299 ^ 2825379669) & 0xFFFFFFFF
1472744368L
Run Code Online (Sandbox Code Playgroud)