Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Konfuzni operatori

[es] :: C/C++ programiranje :: C/C++ za početnike :: Konfuzni operatori

[ Pregleda: 1651 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

OTAC_XXL
Benjamin

Član broj: 98749
Poruke: 36
*.PPPoE-4847.sa.bih.net.ba.



Profil

icon Konfuzni operatori20.02.2007. u 08:58 - pre 209 meseci
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 !!!
Sve mozes nahraniti ali oci nikad :-)
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Konfuzni operatori20.02.2007. u 12:56 - pre 209 meseci
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]
 
Odgovor na temu

OTAC_XXL
Benjamin

Član broj: 98749
Poruke: 36
*.PPPoE-7096.sa.bih.net.ba.



Profil

icon Re: Konfuzni operatori20.02.2007. u 14:23 - pre 209 meseci
Hvala puno na odgovoru i na utrosenom vremenu.
Sve mozes nahraniti ali oci nikad :-)
 
Odgovor na temu

lucky

Član broj: 2032
Poruke: 57
..AT.HighSpeedADSL.beotel.net.

Jabber: lucky@elitesecurity.org


+1 Profil

icon Re: Konfuzni operatori20.02.2007. u 19:50 - pre 209 meseci
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)
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Konfuzni operatori20.02.2007. u 20:51 - pre 209 meseci
Hvala na ispravci, evo popravicu i gore ;)

 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Konfuzni operatori

[ Pregleda: 1651 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.