RE:Para que sirven los bits de desplazamiento?
los operadores de bits es un concepto que PHP arrastra de C++, lo que permite es realizar operaciones a nivel de bits con los datos, ya sea de variables o constantes.
Por ejemplo si tengo:
$a = 5; en binario $a = 00000101
$b = 4; en binario $b = 00000100
si haces $a | $b haces una OR lógica bit a bit
00000101
00000100
--------------
00000101 => el resultado es cinco
si usas desplazamiento de bits $a << 1(creo que es asi, ase mucho que nos los uso) desplasas un bit a la derecha, y como los número son en binario (potencias de dos) equivale a multiplicar por dos, el resultado de lo anterior sería: 10
logicamente para entender esto debes manejar algo de numeracion binario y saber como trabajan los operadores AND OR NOT entre bits etc. etc.
en conclusión estos operadores son útiles solo cuando necesitas realizar operaciones específicas "bajo nivel", o para analizar y/o anular partes de un byte (como los que puse antes).
espero no haberte enredado mucho.
Saludos y suerte