如何在32位php上获得64位数字的逐位结果

如何在32位php上获得64位数字的逐位结果,php,Php,我在php中有两个32位无符号整数(crc32()的结果),我想在32位版本的php中获得这些数字的逐位结果 我已经尝试了很多实验,但很明显,php如何处理这些数字和二进制数据,我还缺少一些东西 更新: 我在找这样的东西: $x = crc32("abc"); $bin = sprintf("%b", $x); $x2 = crc32("abc2"); $bin2 = sprintf("%b", $x2); $b = $bin | $bin2; $result = sprintf(

我在php中有两个32位无符号整数(crc32()的结果),我想在32位版本的php中获得这些数字的逐位结果

我已经尝试了很多实验,但很明显,php如何处理这些数字和二进制数据,我还缺少一些东西

更新:

我在找这样的东西:

$x = crc32("abc");
$bin = sprintf("%b", $x);

$x2    = crc32("abc2");
$bin2 = sprintf("%b", $x2);

$b = $bin | $bin2;


$result = sprintf("%u",$b);

var_dump($result);
该代码不起作用,但通过用正确的数字替换%b和%u,我认为它可以起作用

只需使用而不是逻辑代码,
|

$x  = crc32("abc");
$x2 = crc32("abc2");
$b = $x | $x2;              // The integer 2142140882
$result = sprintf('%u',$b); // The string "2142140882"
如果要获取此结果的二进制字符串,请使用:

$x=crc32(“abc”);
printf(“%x”,$x);echo“(sedecimal)
\n”; printf(“%u”,x美元);echo“(整数)
\n”; printf(“%b”,x美元);echo“(二进制)
\n”; $bin=sprintf(“%b”,$x);
那么64位是从哪里来的呢?例如4257153023 | 3825205239@alnitak-php整数是有符号的,所以它们只能接受按位的31位有符号整数,或者是
|
运算符,我相信不是?谢谢,但我希望得到两个crc结果的按位结果,然后将其返回到正确的无符号值字符串。你是说我可以得到这个二进制结果,然后按位计算,它会工作吗?这与我的问题有什么关系?@user1122069你以前的问题版本要求得到
按位结果,我认为这意味着两个数字的按位表示的
串联。您的编辑澄清了您指的是按位OR运算的
结果,这是完全不同的事情。更新了答案。谢谢。我很确定我以前也用过这种方法,但它确实有效。
$result_binary = pack('N', $b); // Binary format, "\x7f\xae\x79\d2"
    $x = crc32("abc");
    printf("%x", $x); echo "(sedecimal)<br>\n";
    printf("%u", $x); echo "(integer)<br>\n";
    printf("%b", $x); echo "(binary)<br>\n";
    $bin = sprintf("%b", $x);