PHP ソケットプログラミング XOR 演算ヘルプ
図のように、Socket プログラミングを行う際には XOR 演算を使用し、コードの一部を添付します。しかし、ここでそのような問題に遭遇しました。この画像は XOR 演算の結果です。よく見ると、笑顔は 1 で、空白の位置は 0 です。 XOR は自身で計算された値、REVC_XOR は受信した (正しいと思われる) XOR 値です。長さは 8 ビットです。
正しい XOR メソッドのコード、またはこの問題の解決方法を教えてください。
<br /> $check = str_split($verify_data, 2); // 将16进制数据转换成两个一组的数组<br /> for ($j = 0; $j < count($check); $j++) {<br /> $data = str_pad(base_convert($check[$j],16,2),8,0,STR_PAD_LEFT);<br /> $xor = $xor ^ $data;<br /> $xor = str_pad($xor,8,0,STR_PAD_LEFT);<br /> }<br /><br /> echo "XOR:" . $xor . "\r\n";<br /> echo "REVC_XOR:" . $revc_xor . "\r\n\r\n";<br />
$s = '81000000003e900000000000000010001031323334353632';<br />$a = unpack('C*', pack('H*', $s));<br />$x = 29;<br />foreach($a as $v) $x ^= $v;<br />printf('%08b', $x);00000111