十六进制XOR,PHP和JavaScript中有2个值

时间:2011-09-19 09:49:17

标签: php javascript hex xor

我找不到解决方案非常容易的问题。

JavaScript中的代码:

var x = -1 ^ 0xF00F9344;

在这种情况下,x值为267414715

PHP代码:

$x = -1 ^ 0xF00F9344;

结果是-4027552581

任何想法,如何在PHP中获得267414715(正确)结果?

1 个答案:

答案 0 :(得分:4)

虽然javascript位操作总是32位,但php取决于平台的字大小:

在32位平台上

$n    = "11110000000011111001001101000100"
-1^$n = "00001111111100000110110010111011"  = 267414715

在64位平台上

$n    = "0000000000000000000000000000000011110000000011111001001101000100"
-1^$n = "1111111111111111111111111111111100001111111100000110110010111011" = -4027552581