0
我無法找到非常簡單問題的解決方案。在PHP和JavaScript中使用2個值的十六進制XOR
代碼在JavaScript:
var x = -1^0xF00F9344;
在這種情況下,x值是267414715
代碼在PHP中:
$x = -1^0xF00F9344;
結果是-4027552581
任何想法,怎麼樣在PHP中獲得267414715(正確)結果?
我無法找到非常簡單問題的解決方案。在PHP和JavaScript中使用2個值的十六進制XOR
代碼在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
[適用於我](http://www.ideone.com/DILsQ)。 – Jon
是的,也在這裏工作。你有什麼版本的PHP?並在什麼硬件? –
對我也適用 – Melsi