operatori pomeranja
26.02.2004. u 17:37 · pre 275 meseci
#1
Pozdrav svima.
Posle duzeg odsustvovanja zbog bavljenja drugim stvarima (by force of circumstances), evo me opet na ESu.
Nabavio sam (po brojnim preporukama) knjigu 'Thinking in C++' od B.Eckela, koja je izasla nedavno.
Eckel ima potpuno drugaciji(klasicniji) pristup od Liberty-ja, ali sad vidim da obe
knjige imaju svoje prednosti i nedostatke.
Liberty vas odmah baca u vatru, dok Eckel polazi od temelja (dajuci prednost textu nad kodom). Mislim da bi za pocetnika bilo korisno da procita obe knjige (i pored svih, opstepoznatih zamerki na 'C++ za 21 dan'), ali nisam siguran kojim redosledom.
Moram da primetim i jedan, po meni, nekorektan potez B.Eckela, koji za resenja zadataka trazi small fee, koji iznosi 50% cene knjige. To nije ogromna suma (12$), ali obzirom na vaznost vezbi u ovakvim knjigama ovaj postupak malo smrdi. Sasvim bi OK bilo da knjiga kosta 50%(ili koliko god) vise, i da kupac zna na cemu je. Zamislite da vam prodaju novi automobil i onda pri izlasku iz salona kazu da kocioni sistem mozete (ako zelite), uz small fee, nabaviti u njihovom servisu. I ako neko ima savet; trazio sam, nije da nisam. Small fee or nothing.
Ali da predjem na stvar.
Molio bih za pomoc po sledecem pitanju:
"Rezultat operatora za pomeranje ulevo (<<) jeste vrednost operanda s leve strane
operatora, pomerena ulevo za broj bitova definisan s desne strane operatora."
Ali sta onda predstavlja (1<<i)? ("daje jedinicu u svakoj od uzastopnih pozicija bitova, binarno: 00000001, 00000010, itd")
Npr:
void printBinary(const unsigned char val) {
for(int i = 7; i >= 0; i--)
if(val & (1 << i))
std::cout << "1";
else
std::cout << "0";
"Ova f-ja ispisuje jedan bajt, bit po bit" (??)
Operator & vrsi logicku konjunkciju odgovarajucih bitova 2 bajta koja uporedjuje(npr c=a&b).
Ali u ovom slucaju da bi rez. tog operatora dao 1 ili 0 operandi moraju biti bitovi a ne bajtovi.
Vot iz dis 'baut ?
Hvala
Posle duzeg odsustvovanja zbog bavljenja drugim stvarima (by force of circumstances), evo me opet na ESu.
Nabavio sam (po brojnim preporukama) knjigu 'Thinking in C++' od B.Eckela, koja je izasla nedavno.
Eckel ima potpuno drugaciji(klasicniji) pristup od Liberty-ja, ali sad vidim da obe
knjige imaju svoje prednosti i nedostatke.
Liberty vas odmah baca u vatru, dok Eckel polazi od temelja (dajuci prednost textu nad kodom). Mislim da bi za pocetnika bilo korisno da procita obe knjige (i pored svih, opstepoznatih zamerki na 'C++ za 21 dan'), ali nisam siguran kojim redosledom.
Moram da primetim i jedan, po meni, nekorektan potez B.Eckela, koji za resenja zadataka trazi small fee, koji iznosi 50% cene knjige. To nije ogromna suma (12$), ali obzirom na vaznost vezbi u ovakvim knjigama ovaj postupak malo smrdi. Sasvim bi OK bilo da knjiga kosta 50%(ili koliko god) vise, i da kupac zna na cemu je. Zamislite da vam prodaju novi automobil i onda pri izlasku iz salona kazu da kocioni sistem mozete (ako zelite), uz small fee, nabaviti u njihovom servisu. I ako neko ima savet; trazio sam, nije da nisam. Small fee or nothing.
Ali da predjem na stvar.
Molio bih za pomoc po sledecem pitanju:
"Rezultat operatora za pomeranje ulevo (<<) jeste vrednost operanda s leve strane
operatora, pomerena ulevo za broj bitova definisan s desne strane operatora."
Ali sta onda predstavlja (1<<i)? ("daje jedinicu u svakoj od uzastopnih pozicija bitova, binarno: 00000001, 00000010, itd")
Npr:
void printBinary(const unsigned char val) {
for(int i = 7; i >= 0; i--)
if(val & (1 << i))
std::cout << "1";
else
std::cout << "0";
"Ova f-ja ispisuje jedan bajt, bit po bit" (??)
Operator & vrsi logicku konjunkciju odgovarajucih bitova 2 bajta koja uporedjuje(npr c=a&b).
Ali u ovom slucaju da bi rez. tog operatora dao 1 ili 0 operandi moraju biti bitovi a ne bajtovi.
Vot iz dis 'baut ?
Hvala
Re: operatori pomeranja