Dlaczego tak
Binarnie 12 = 1100, a 10 = 1010; iloczyn bitowy & zostawia jedynki tylko na pozycjach wspólnych, więc 1000 = 8. Przesunięcie w prawo a >> 2 dzieli 12 przez 4 i daje 3, więc wynik to 8 + 3 = 11. Wynik 17 powstaje, gdy & pomyli się z alternatywą bitową | (1110 = 14), a 56 — gdy przesunięcie w prawo pomyli się z przesunięciem w lewo (12 << 2 = 48).