&
es a nivel de bits Y. Dados dos bits para entradas, el siguiente da la salida de bit por bit a bit Y:
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
En este caso,
7 in binary is 00000111
8 in binary is 00001000
--------
00000000, which is 0 in decimal.
Supongamos que tenía 26 en lugar de 8.
7 in binary is 00000111
26 in binary is 00011010
--------
00000010, which is 2 in decimal.
bit a bit las operaciones se usan para extraer y manipular campos empaquetados en un número.
Por ejemplo, supongamos que tiene 3 campos agrupados en un número, dos de 4 bits cada uno (0..15), uno y 3 bits (0..7).
// n = aaaabbbbccc
// Unpack the fields:
a = (n >> 7) & 0xF;
b = (n >> 3) & 0xF;
c = (n >> 0) & 0x7;
// Pack the fields:
n = (a << 7)
| (b << 3)
| (c << 0);