对于一个非常简单的问题,我找不到解决方案。
JavaScript中的代码:
var x = -1 ^ 0xF00F9344;
在这种情况下x值为267414715
PHP中的代码:
$x = -1 ^ 0xF00F9344;
其结果是-4027552581
任何想法,如何在PHP中获得267414715(正确)结果?
最佳答案
虽然javascript位操作始终是32位,但是php取决于平台的字长:
在32位平台上
$n = "11110000000011111001001101000100"
-1^$n = "00001111111100000110110010111011" = 267414715
在64位平台上
$n = "0000000000000000000000000000000011110000000011111001001101000100"
-1^$n = "1111111111111111111111111111111100001111111100000110110010111011" = -4027552581