推奨: "PHP ビデオ チュートリアル "
ビット演算子
ビット演算子は、バイナリ ビットを下位から参照します。 bit 上位ビットに合わせて演算を実行します。
機能 | 例 | 個人的な理解 | |
---|---|---|---|
ビット単位 AND | $m & $n |
すべての 1 は 1、それ以外の場合は 0 | |
ビット単位 OR | $m | $n |
すべての 0 は 0、1 は 1 |
|
ビット単位 XOR | $m | $n |
は 1 とは異なり、 と同じです0 |
|
ビットごとの反転 | ~$m |
|
|
右にシフト | $m >> $n |
|
<?php $m = 1; $n = 2; $mn = $m & $n; echo $mn;演算結果は 0説明: 1 と 2 をそれぞれ次のようにバイナリに変換します。 0000000100000010ビット単位の AND の処理では、すべての 1 が 1、比較結果は 00000000 となるため、出力は 0
|Operator
<?php $m = 1; $n = 2; $mn = $m | $n; echo $mn;演算結果は 3 です。同様に、上記のように 2 進数 ##00000001# に変換されます ##00000010
# #ビットごとの 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
2df8d2537d91202490cbd3a45c349829> 演算子 << 演算子と同様に、右に 1 位置シフトしますが、これは右シフトではありません。ここで完了しました。説明が多すぎます。
プログラミング関連の知識について詳しくは、
をご覧ください。 !
以上がPHPビット演算子の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。