[ Leoo @ 26.10.2014. 18:33 ] @
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 !
[ X Files @ 28.10.2014. 07:55 ] @
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.
[ Leoo @ 29.10.2014. 22:53 ] @
@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.