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

Bitwise operatori - znacaj

[es] :: C/C++ programiranje :: Bitwise operatori - znacaj

[ Pregleda: 2789 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Aleksa Stankovic

Član broj: 147264
Poruke: 38
*.smin-1.sezampro.yu.



Profil

icon Bitwise operatori - znacaj28.04.2008. u 19:04 - pre 194 meseci
Zanima me gde se primenljuju bitwise operatori(&, |, >>, <<,...), tj. koliko su zaista zastupljeni i vazni. Ustvari, najbolje pitanje bi bilo: Da li da se opterecujem njima ili bas i nema neke potrebe da ih ucim?

Moze neki primer koda gde su bitwise operatori neizbezni??
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

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

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Bitwise operatori - znacaj28.04.2008. u 19:51 - pre 194 meseci
Za pocetak pogledaj sta kaze Wiki
http://en.wikipedia.org/wiki/Bitwise_operation
... gde se na samom pocetku teksta pominje brzina izvrsavanja.

Operacije sa bitovima su utemeljene poodavno u masinskim jezicima, a C je samo sintaksno omogucio da se isto to koristi u samom jeziku sto kompajliranjem proizvodi ekvivalenciju kao direktno programiranje na asembleru. Mnogi C programi su prepuni operacija sa bitovima i u najmanju ruku pametno je prouciti barem na osnovnom nivou o cemu se radi. Ako ni zbog cega drugog, barem radi razumevanja postojeceg koda.

Postoji i TOP tema bas u ovom forumu, gde su navedeni neki primeri upotrebe bitwise operatora.

Ipak, operacije sa bitovima se u realnom programiranju uglavnom koriste za sastavljanje i rastavljanje 'atributa' za neku operaciju. U donjem primeru vidi se kako se montiraju atributiti za pretragu fajlova:

Code:

// Primer iz BCB Helpa:
void __fastcall TForm1::Button1Click(TObject *Sender)

{
  TSearchRec sr;
  int iAttributes = 0;
  StringGrid1->RowCount = 1;
  iAttributes |= faReadOnly * CheckBox1->Checked;
  iAttributes |= faHidden * CheckBox2->Checked;
  iAttributes |= faSysFile * CheckBox3->Checked;
  iAttributes |= faVolumeID * CheckBox4->Checked;
  iAttributes |= faDirectory * CheckBox5->Checked;
  iAttributes |= faArchive * CheckBox6->Checked;
  iAttributes |= faAnyFile * CheckBox7->Checked;
  StringGrid1->RowCount = 0;
  if (FindFirst(Edit1->Text, iAttributes, sr) == 0)

  {
    do
    {
      if ((sr.Attr & iAttributes) == sr.Attr)
      {
        StringGrid1->RowCount = StringGrid1->RowCount + 1;
        StringGrid1->Cells[1][StringGrid1->RowCount-1] = sr.Name;
        StringGrid1->Cells[2][StringGrid1->RowCount-1] = IntToStr(sr.Size);
      }
    } while (FindNext(sr) == 0);
    FindClose(sr);
  }
}

 
Odgovor na temu

Aleksa Stankovic

Član broj: 147264
Poruke: 38
*.smin-1.sezampro.yu.



Profil

icon Re: Bitwise operatori - znacaj28.04.2008. u 19:59 - pre 194 meseci
Hm... Zanimljivo, u svakom slucaju. Naucicu ih, svakako... Inace i video sam TOP temu pa kad sam ukapiro da bitwise i nije tako prost resih da vidim kolko je potreban...

Hvala na pomoci...

 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Bitwise operatori - znacaj30.04.2008. u 19:28 - pre 194 meseci
Ako pogledas opise Windows API-ja u MSDN, videces da tamo vri od potrebe za bitwise oeratorima.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Bitwise operatori - znacaj

[ Pregleda: 2789 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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