我有一段JavaScript代码:
var c = 267414715;
var d = c ^ ("0x81BE16CD");
结果为-1907459466
我似乎无法获得 PHP 的等效结果。已经尝试了以下方法:
<?php
$c=267414715;
$d=$c ^ hexdec("0x81BE16CD");
echo "With hexdec: $d\n";
$d=$c ^ base_convert("0x81BE16CD", 16, 2);
echo "With base_convert(2): $d\n";
$d=$c ^ base_convert("0x81BE16CD", 16, 10);
echo "With base_convert(10): $d\n";
?>
输出:
With hexdec: 2387507830
With base_convert(2): 9223372036587361092
With base_convert(10): 2387507830
请问有人能指出正确的等价代码,并解释不同版本(base_convert / hexdec / “正确”等价版本)在工作方式上的区别吗?
& 0xffffffff
确切的位置?在掩码中吗?我希望PHP代码的行为与JS代码相同。 - workwise