推奨: "PHP ビデオ チュートリアル "
ビット演算子
ビット演算子は、バイナリ ビットを下位から参照します。 bit 上位ビットに合わせて演算を実行します。
機能 | 例 | 個人的な理解 | |
---|---|---|---|
ビット単位 AND | $m & $n |
すべての 1 は 1、それ以外の場合は 0 | |
ビット単位 OR | $m | $n |
すべての 0 は 0、1 は 1 |
|
ビット単位 XOR | $m | $n |
は 1 とは異なり、 と同じです0 |
|
ビットごとの反転 | ~$m |
|
|
左にシフト | $m << $n | | |
右にシフト | $m >> $n |
|
<?php $m = 1; $n = 2; $mn = $m & $n; echo $mn;
|Operator
<?php $m = 1; $n = 2; $mn = $m | $n; echo $mn;
# #ビットごとの OR のプロセスで、1 が 1 で、すべての 0 が 0 の場合、結果は 00000011 となるため、出力は 3
^ 演算子<?php $m = 1; $n = 2; $mn = $m ^ $n; echo $mn;
The実行結果は 3 です。同様に、上記の 2 進数に変換されます。
0000000100000010
ビットごとの OR の処理で、差が 1、同じが0 なので、結果は 00000011 となり、3 が出力されます。
~Operator<?php $m = 2; $m1 = ~$m; echo $m1;
演算結果は -3 で、これは考えさせられます。
注: コンピューターでは、負の数は正の値の補数形式で表現されます。 1: 2 の 32 ビットの元のコードは 0000 0000 0000 0000 0000 0000 0000 0010
2: ビットごとの反転は 1111 1111 1111 1111 1111 1111 1111 1101
最初の数値が 1 で符号ビットが 1 であるため、負の数です。したがって、その正の値の補数形式は次のように表されます (符号ビットは変更されず、ビットごとに反転され、最後に 1 が追加されます) )
1000 0000 0000 0000 0000 0000 0000 0011
したがって、出力は -3
<<?php $m = 3; $m1=$m << 1; echo $m1;
3 の 32 ビットの元のコードは、0000 0000 0000 0000 0000 0000 0000 0011
左に 1 桁シフトします: 0000 0000 0000 0000 0000 0000 0000 0110# # なので 6 です
マニュアルの説明によると、ビット単位の演算は 1 ビット左にシフトすることで確認できることがわかります。これは 2 の乗算です。変位演算は乗算より演算速度がはるかに速いためです。したがって、データ乗算演算を処理する場合、ディスプレイスメント演算を使用すると高速化できます。
ヒント: プログラムの実行効率を向上させるために、2 のすべての乗算演算を変位演算に変換します。>> 演算子
<< 演算子と同様に、右に 1 位置シフトしますが、これは右シフトではありません。ここで完了しました。説明が多すぎます。
プログラミング関連の知識について詳しくは、
をご覧ください。 !
以上がPHPビット演算子の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。