ビット演算は、プログラミングにおけるビット パターンまたは 2 進数に対する単項演算および 2 項演算です。多くの古いマイクロプロセッサでは、ビット単位の演算は加算や減算よりわずかに高速であり、一般にビット単位の演算は乗算や除算よりもはるかに高速です。最新のアーキテクチャでは、ビット単位の演算は加算と同じ速度で動作することがよくあります (それでも乗算よりも高速です)。
^: ビットごとの XOR。値をバイナリに変換して比較し、同じ位置が 1 つでも 1 であればその位置の結果は 1、それ以外の場合は 0 になります。例は次のとおりです。
$a=1;//二进制为00001 $b=2;//二进制为00010 echo $a^$b;// 00011 就是3,因此输出3
&: ビット単位の AND。値をバイナリに変換して比較し、同じ位置が 2 つだけすべて 1 であればその位置の結果は 1、それ以外の場合は 0 になります。例:
$a=1;//二进制为00001 $b=2;//二进制为00010 $c=3;//二进制为00011 echo $a&$b;// 00000 就是0,因此输出0 echo $a&$c;// 00001 就是1,因此输出1 echo $b&$c;// 00010 就是2,因此输出2
ビットごとの & の後の戻り値は、主に $a が $c に存在するかどうかを判断するために使用されるため、多くの権限が使用されます。たとえば、
$my_privilege = 15; // 1+2+4+8 拥有全部权限 $Pri = ''; $privilege_arr = array(8=>'增', 4=>'删',2=>'改',1=>'查'); foreach($privilege_arr as $k =>$v){ $k & $my_privilege && $Pri .= '我有'.$v.'的权力<br>'; } echo $Pri;//输出结果を学習することをお勧めします。
以上がビット演算子で ^ と & を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。