ビット演算子

ビット演算子は、整数における特定のビットをオンまたはオフにすることを 可能にします。もし左辺値と右辺値共に文字列であった場合にはビット演算子は 文字のASCII値に対して作用します。

<?php
echo 12 ^ 9; // '5'を出力します

echo "12" ^ "9"; // バックスペース文字を出力します(ascii 8)
                 // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" ^ "hello"; // ascii値の #0 #4 #0 #0 #0 を出力します
                        // 'a' ^ 'e' = #4
?>

表 15-3. ビット演算子

名前結果
$a & $bビット積 $aおよび$bの両方にセットされているビット
$a | $bビット和 $aまたは$bのどちらかにセットされているビット
$a ^ $b排他的論理和 $aまたは$bにセットされており、両方にセットされていないビット
~ $a否定 $aにセットされているビットはセットせず、そうでないものは逆にする
$a << $b左シフト $a のビットを左に $b ビットシフトする(各シフトは "2をかける"こ とを意味します)
$a >> $b右シフト $a のビットを右に $b ビットシフトします (各シフトは "2で割る" ことを意味します)

警告

Don't right shift for more than 32 bits on 32 bits systems. Don't left shift in case it results to number longer than 32 bits.