Citat:
Ako bi neko imao vremena da mi objasni ili da me uputi na neki dobar tutorial koji objasnjavaju
operatore tipa >>, <<, =>>, <<= itd
Radi se o pomeranju bitova (engl. shift-ovanje) neke vrednosti ULEVO ili UDESNO, čime se na primer
može postići isti efekat kao i množenje ili deljenje sa osnovom dva (pod uslovom da se tim pomeranjem
ne izgube neki bitovi).
Npr:
Ovo je neka celobrojna promenljiva
x kojoj je dodeljena vrednost
12 (dekadno), što je isto što i
1100 binarno.
int x = 12;
Iskazom:
x = x >> 1;
... vrši se pomeranje BITOVA za JEDNO mesto UDESNO (1100 -> 0110, dakle, nova vrednost je 6 (dekadno) )
Ako nastavimo:
x = x >> 1;
... vrši se opet pomeranje BITOVA za JEDNO mesto UDESNO (0110 -> 0011, dakle, nova vrednost je 3 (dekadno) )
Dalje:
x = x >> 1;
... vrši se novo pomeranje BITOVA za JEDNO mesto UDESNO (0011 -> 0001 = 1 (dekadno) ), ali
izgubio si jedan bit, nepovratno
Konačno:
x = x >> 1;
... pomeranjem BITOVA za JEDNO mesto UDESNO izgubio si sve bitove (0001 -> 0000 = 0 (dekadno) ).
Naravno, nije obaveza da se pomeranje vrši samo za jedan bit
x = x >> 1; već može odmah i za više
x = x >> y;, u ovom slučaju 'y' bitova. Svi primeri gore su se odnosili na pomeranje bitova udesno >> Svakako
da može i ulevo <<, čime se postiže efekat množenja sa osnovom dva.
Iskaz:
x = x >> 1; je identičan sa iskazom
x >>= 1;.
[Ovu poruku je menjao X Files dana 20.02.2007. u 21:52 GMT+1]