Las operaciones de bit son básicamente operaciones aritméticas realizadas mediante manipulación a nivel de bit. Internamente los datos se almacenan como ceros y unos. PHP no suministra operadores para que podamos trabajar con los datos en su nivel más bajo, es decir, en su representación binaria. Los operandos están limitados a variables enteras, un valor decimal 32 (2 elevado a la quinta potencia) internamente tiene este aspecto:
00000000000000000000000000010000
O escrito en hexadecimal: 0x20
Pero para comprender mejor estos operadores bit a bit es mejor observar la representación binaria.
Los operadores nos permiten activar o desactivar (poner 1 o poner 0, respectivamente) en cada posición de bit de una variable entera. En la siguiente tabla de operadores bit a bit, se detallan los operadores bit a bit.
Veamos los ejemplos y quedarán claras las distintas alternativas:
// Operador xOR $var3 = $var1 ^ $var2; echo "$var3 <BR>"; // el resultado es 4 (010)) // Operador negación $var3 = ~$var1; echo "$var3 <BR>"; // el resultado es -9 (111...011)) // Operador desplazamiento a la izquierda $var3 = $var1 << 2; // 2 posiciones es como multiplicar por 4 echo "$var3 <BR>"; // el resultado es 32 (10000) // Operador desplazamiento a la derecha $var3 = $var1 >> 2; // 2 posiciones es como dividir por 4 echo "$var3 <BR>"; // el resultado es 2 (001) ?>