To mephi:
Da a taky se to docela casto pouziva. Napriklad bitovy posun doleva << se pouziva pro rychle nasobeni mocnin 2. Bitovy posyun doprava je pak opereaci inverzni - deleni mocninou dvojky.
int num = 10 << 1; // <=> 10 *(2^1) = 20
int num = 10 >> 1; // <=> 10/(2^1) = 5
Bitovy soucet:
Umoznuje nastavit vybrane bity.
Pokud se vhodne definuji honoty, opet nasobky mocniny dvojky, da se do jedne promene ulozit(nastavit) vice hodnot.
typedef enum {
ePaprika = 0x02,
eOkurka = 0x04,
eOmacka = 0x08
}eCode;
int jidlo = 0; // namichame si papriku s omackou
jidlo |= ePaprika; // prida papriku nastavi 2. bit
jidlo |= eOmacka; // prida omacku - nastavi 4. bit
A k cemu to je dobre?
Da se to krasne vyuzit s operaci bitoveho nasobeni &, ktera slouzi pro vymaskovani(nastaveni bitu do 0 a samozrejme k testovani, ostatne jako prakticky vsechno v C):
if(jidlo & ePaprika)
cout << "Je tam paprika" << endl;
if(jidlo & eOmacka)
cout << "Je tam i omacka" << endl;
if(jidlo & eOkurka)
cout << "A takz okurka" << endl;
Tim jsem rozhodne nevycerpal vsechny moznosti bitovych operaci, ale zbytek si uz nekde na webu najdes jiste sam.