PHP の基本的な構文ビット操作
数年間 PHP を書いてきた人は、ビット演算子を一度も使用したことがないと言うことに興味を持ちます。なので、ここでバイナリを見てめまいを感じたら、T¥M¥Dに行ってください。
ビット演算子は基本的には使用せず、この知識も理解レベルに設定しています。ビット演算子に関する知識を学びたくない場合は、学ぶ必要はありません。 将来ビット演算を使用するときにもう一度学習しましょう。
知識学習レベル[理解レベル、感想だけ]。
例 | 説明 | 詳細 |
---|---|---|
$a & $b | And (bitwise AND) | は、 $a と $b のビットを両方とも 1 から 1 に設定します。 |
$a | $b | Or (ビット単位の OR) | は、$a と $b の任意のビットを 1 対 1 に設定します。 |
$a ^ $b | Xor (ビット単位の XOR) | は、$a と $b のビットのうち 1 で、もう一方のビットを 0 から 1 に設定します。 |
~ $a | Not (ビットごとの否定) | $a の 0 であるビットを 1 に設定し、その逆も同様です。 |
$a << $b | Shift Left | $a のビットを左に $b 回移動します (各移動は「2 を掛ける」ことを意味します)。 |
$a >> $b | 右シフト | $a のビットを右に $b 回移動します (各移動は「2 で割る」ことを意味します)。 |
上記の記号はすべて二項演算です。
バイナリーに遭遇することはほとんどありませんが、遭遇した場合はバイナリーの知識を補うことができます。
<?php //$x二进制值为: $x = 5; //$y二进制值为: $y = 8; //结果为13 echo $x ^ $y; ?>
変数 | バイナリ値 |
---|---|
$x | 0101 |
$y | 1000 |
異なる結果 | 1101 |
XOR 説明: x と y の 2 つの値が同じでない場合、XOR の結果は 1 になります。 x と y の値が同じ場合、XOR の結果は 0 になります。
1101 は $x と $y の XOR の結果であると推測できます。2 進数から 10 進数への変換ツールを使用して 1101 を変換した結果は 13 です。
10 進数変換の二次的なオンラインのスクリーンショット: