[ OTAC_XXL @ 20.02.2007. 08:58 ] @
Pozdrav,

Ako bi neko imao vremena da mi objasni ili da me uputi na neki dobar tutorial koji objasnjavaju operatore tipa >>, <<, =>>, <<= itd

ili u primjeru ( cmd <<= 1, 0x1<<5)

Unaprijed hvala !!!
[ X Files @ 20.02.2007. 12:56 ] @
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]
[ OTAC_XXL @ 20.02.2007. 14:23 ] @
Hvala puno na odgovoru i na utrosenom vremenu.
[ lucky @ 20.02.2007. 19:50 ] @
Citat:
Ovo je neka celobrojna promenljiva x kojoj je dodeljena vrednost 12 (dekadno), što je isto što i 1100 heksadekadno.

Samo sto je 1100 binarni zapis broja 12. (Siguran sam da je u brzini napisano, ali posto je forum za pocetnike da ne bi doslo do zabune)
[ X Files @ 20.02.2007. 20:51 ] @
Hvala na ispravci, evo popravicu i gore ;)