Te operatory to przesunięcia bitowe. Czyli trzeba rozumieć binarną postać liczby. Każda liczba dziesiętna ma w komputerze reprezentację binarną, np taką 10001. I teraz, jak wykonasz przesunięcie bitowe o 3 (<<3), to powstanie z niej 10001000.czyli wszystko przesunie się o 3 w lewo. A jak zrobisz >>3, to wróci. Można porównać to do mnożenia i dzielenia przez 10 w systemie dziesiętnym.
Zastosowań tych operatorów jest wiele, między innymi szybkie mnożenie / dzielenie przez 2. Procesor szybciej wykonuje przesunięcie bitowe niż dzielenie. Zamiast więc dzielić przez 8, można zrobić >>3.
W języku C++, operatory te są przeciążone w obiektach związanych ze strumieniami i w kontekście tego obiektu znaczą wtedy coś innego. Trzeba na to uważać.
Np. przy zapisie cout << "Kaczka" pokazują symbolicznie przepływ napisu do obiektu.
W ogóle trzeba uważać z operatorami w C++, bo mogą być różnie przeciążone i nagle + może oznaczać *