3

phpに2つの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を正しい番号に置き換えることで、機能する可能性があると思います

4

2 に答える 2

1

論理演算の代わりにビット演算OR|を使用するだけ||です。

$x  = crc32("abc");
$x2 = crc32("abc2");
$b = $x | $x2;              // The integer 2142140882
$result = sprintf('%u',$b); // The string "2142140882"

この結果のバイナリ文字列を取得する場合は、次を使用しますpack

$result_binary = pack('N', $b); // Binary format, "\x7f\xae\x79\d2"
于 2012-07-01T12:28:47.050 に答える
0
    $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);
于 2012-07-01T12:39:01.540 に答える