&
- поразрядное И.Учитывая два бита для входов, следующее дает битовый вывод поразрядным И:
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
В этом случае
7 in binary is 00000111
8 in binary is 00001000
--------
00000000, which is 0 in decimal.
Скажем, у вас было 26 вместо 8.
7 in binary is 00000111
26 in binary is 00011010
--------
00000010, which is 2 in decimal.
Битовые операции используются для извлечения и манипулирования полями, упакованными в число.
Например, скажем, у вас есть 3 поля, упакованные в одно число, два из 4 бит в каждом (0..15), один и 3 бита (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);