Los operadores bit a bit le permiten activar o desactivar bits individuales de un entero. Si los parámetros tanto a la izquierda y a la derecha son cadenas, el operador bit a bit trabajará sobre los valores ASCII de los caracteres.
<?php
echo 12 ^ 9; // Imprime '5'
echo "12" ^ "9"; // Imprime el caracter Backspace (ascii 8)
// ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8
echo "hallo" ^ "hello"; // Imprime los valores ascii #0 #4 #0 #0 #0
// 'a' ^ 'e' = #4
?>
Ejemplo | Nombre | Resultado |
---|---|---|
$a & $b | Y | Los bits que están activos tanto en $a como en $b son activados. |
$a | $b | O | Los bits que están activos ya sea en $a o en $b son activados. |
$a ^ $b | O exclusivo (Xor) | Los bits que estén activos en $a o $b, pero no en ambos, son activados. |
~ $a | No | Los bits que estén activos en $a son desactivados, y vice-versa. |
$a << $b | Desplazamiento a izquierda | Desplaza los bits de $a, $b pasos a la izquierda (cada paso quiere decir "multiplicar por dos") |
$a >> $b | Desplazamiento a derecha | Desplaza los bits de $a, $b pasos a la derecha (cada paso quiere decir "dividir por dos") |
No realice desplazamientos a derecha para más de 32 bits en sistemas de 32 bits. No realice desplazamientos a izquierda en caso de que resulte en un número de más de 32 bits.