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

Pomoc oko operatora za manipulaciju bitovima

[es] :: C/C++ programiranje :: C/C++ za početnike :: Pomoc oko operatora za manipulaciju bitovima

[ Pregleda: 2539 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Leoo
nezaposlen

Član broj: 324448
Poruke: 12
212.200.167.*



+1 Profil

icon Pomoc oko operatora za manipulaciju bitovima26.10.2014. u 18:33 - pre 114 meseci
Od skoro ucim programski jezik C, pre njega od programskih jezika ucio sam samo Paskal.

Pre par dana ucio sam operatore i "zakucao" sam na oblasti OPERATORI ZA MANIPULACIJU BITOVIMA, pa sam istu "preleteo" i krenuo da ucim druge oblasti. Razumeo sam koja je uloga tih operatora, ali ne razumem nista u vezi bitova, jednostavno nemam potrebno predznanje. Nadam se da neko iskusniji moze pomoci oko literature koju bih trebao da procitam - naucim da bih bolje razumeo ovu oblast . Unapred hvala !
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.3gnet.mts.telekom.rs.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Pomoc oko operatora za manipulaciju bitovima28.10.2014. u 07:55 - pre 114 meseci
Priča o bitovima i njihovoj manipulaciji je prilično široka, ima puno aspekata (upravljanje grafikom, efikasna izračunavanja, kompaktno definsanje atributa, ...), pa pretpostavljam da se zato niko ne odlučuje da započne sa odgovorima. Tj, šta god se kaže, ostaće još puno toga nedorečenog.

Za početak je dobro znati da je "manipulacija bitovima" sastavni deo instrukcija mašinskih jezika (SHIFT LEFT, SHIFT RIGHT, XOR, ...), a u programske jezike je deo tih funkcionalnosti preuzet kroz operatore ili posebne funkcije. Drugim rečima, manipulacija bitovima nije specijalka viših programskih jezika, već je biblija mašinskih jezika.

Na nivou mašinsih jezika, vodi se bespoštedna borba sa generisanjem koda koji ima što manje "ciklusa" u izvršenju, kako bi se recimo dobilo na brzini. Poznavanje instrukcija koje omogućavaju manipulaciju bitovima, strahovito pomaže ovom zadatku.

Nekakav pregled trikova koje možeš izvesti manipulacijom bitovima, u okviru jezika C/C++ imaš ovde:
http://www.elitesecurity.org/t247378-Bit-Twiddling-Hacks

Na nivou viših programskih jezika uglavnom razmišljaš o sasvim drugim stvarima - čitljivosti koda, prenosivosti koda i sl. Uglavom se ne baviš preterano optimizacijom, jer je ona već u pristojnoj meri ugrađena u bazične funkcije koje se interno koriste.

Mi matorci smo u svet bitova ušli iz "prakse ka teoriji", prvenstveno preko grafike. Na primer, zanimalo nas je kako su programeri uspeli da naprave impresivne grafičke animacije, glatke skrolove teksta i sl, na mašinama koje su imale samo 1MHz brzine. Radilo se o pravilnoj primeni operatora s bitovima.

Ako bi tu istu stvar pokušao da uradiš na konvencionalan način, dobio bi skrol koji se vuče kao mazga, i uz to odvratnim refresh efektima.
 
Odgovor na temu

Leoo
nezaposlen

Član broj: 324448
Poruke: 12
212.200.167.*



+1 Profil

icon Re: Pomoc oko operatora za manipulaciju bitovima29.10.2014. u 22:53 - pre 114 meseci
@X Files Hvala za odgovor. Kapiram da mi u radu sa C i C ++ manipulacija bitovima i nece mnogo znaciti, ali me je zanimalo kako to funkcionise...eksperimentisacu kroz primere sa linka.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Pomoc oko operatora za manipulaciju bitovima

[ Pregleda: 2539 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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