Példa
int a = 40; // binárisan: 0000000000101000
int b = a >> 3; // binárisan: 0000000000000101, vagy 5 in decimálisan
Megjegyzések és figyelmeztetések
Ha x-et y bittel (x >> y) jobbra tolja, és az x-ben a legmagasabb helyiértékű bit 1-es, a viselkedés az x pontos adattípusától függ. Ha x int típusú, akkor a legmagasabb bit az előjelbit, amely meghatározza, hogy x negatív-e vagy sem, amint azt fentebb tárgyaltuk. Ebben az esetben ezoterikus történelmi okokból az előjelbitet alacsonyabb bitekre másolják:
int x = -16; // binárisan: 1111111111110000
int y = 3;
int result = x >> y; // binárisan: 1111111111111110
Ez a jelkiterjesztésnek nevezett viselkedés gyakran nem a kívánt viselkedés. Ehelyett azt kívánhatja, hogy a nullákat balról tolja el. Kiderült, hogy a jobb oldali eltolási szabályok eltérőek az előjel nélküli int kifejezéseknél, így típusátalakítás segítségével elnyomhatja a balról másolandókat:
int x = -16; // binárisan: 1111111111110000
int y = 3;
int result = (unsigned int)x >> y; // binárisan: 0001111111111110
Ha ügyel arra, hogy elkerülje a jelek kiterjesztését, használhatja a >> jobbra váltó operátort a 2 hatványaival való osztáshoz. Például:
int x = 1000;
int y = x >> 3; // 1000 egész osztása 8-cal, ami y = 125-öt eredményez.