Logicni operatori

2

Logicni operatori

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Ovako:

#include <stdio.h> #include <stdlib.h> int main() { int x, y; x = 7; y = 3; if (x && y < 10)    printf("Obe promenljive su manje od 10."); return EXIT_SUCCESS; }



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 26 Avg 2010
  • Poruke: 10622
  • Gde živiš: Hypnos Control Room, Tokyo Metropolitan Government Building

Ne.

if (x < 10 && y < 10)



offline
  • Srđan Tot
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Skoro... trebalo je da piše if (x < 10 && y < 10), ali to sad nije važno. Važno je da si iskoritio && kako treba i da razumeš šta radi. Kada bi želeo da izvršiš kod ako je ili x ili y manje od 10, onda bi koristio operator ||.
Da li sad odprilike razumeš logičke operatore?

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Da, sada razumem, i hvala vam na ispravci, da zna za ubuduce.

E ali sad ono Ili, i na bitovima, pa nesto iskljucivo Ili nad bitovima ne razumem bas nista o cemu on radi i kako radi? I zasta nam treba?

Mozete li mi to objasniti?

offline
  • Srđan Tot
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

E... sad kad razumeš logičke operatore, biće ti lakše da razumeš binarne. Binarni operatori, kao što ime sugeriše, rade nad bitovima. Recimo da imaš promenljive:
byte a = 45, b = 170
Broj 170 se u binarnom obliku piše ovako: 10101010
Broj 45 se u binarnom obliku piše ovako: 00101101
170 & 45 jednostavno proveri svaki bit oba broja i ako su i jedan i drugi 1, upiše 1, u suprotnom upiše 0:
10101010
&
00101101
=
00101000

| upiše 1 ako je bilo koji bit 1:
10101010
|
00101101
=
10101111

~ je negacija i koristi samo jedan parametar
~
00101101
=
11010010

offline
  • Més que un club
  • Glavni vokal @ Harpun
  • Pridružio: 27 Feb 2009
  • Poruke: 3898
  • Gde živiš: Novi Sad,Klisa

Operatori nad bitovima se koriste najvise u robotici zbog toga sto je tamo memorija ogranicena i u jednu promenljivu mozes,uz pomoc poznavanja operatora nad bitovima, smestis vise podataka.

offline
  • Na odmoru xD
  • Na odmoru xD
  • Pridružio: 15 Feb 2012
  • Poruke: 430

Srki_82 ::E... sad kad razumeš logičke operatore, biće ti lakše da razumeš binarne. Binarni operatori, kao što ime sugeriše, rade nad bitovima. Recimo da imaš promenljive:
byte a = 45, b = 170
Broj 170 se u binarnom obliku piše ovako: 10101010
Broj 45 se u binarnom obliku piše ovako: 00101101
170 & 45 jednostavno proveri svaki bit oba broja i ako su i jedan i drugi 1, upiše 1, u suprotnom upiše 0:
10101010
&
00101101
=
00101000

| upiše 1 ako je bilo koji bit 1:
10101010
|
00101101
=
10101111

~ upiše 1 samo ako su bitovi različiti:
10101010
~
00101101
=
10000111


Ali zar ~ nije nesta tipa kao negacija samo na nivou bita npr 4 = 100 pa ~100 = 011 a operator ^ (ekskluzivno ili na nivou bitova) upisuje 1 samo kao su razliciti.

offline
  • Srđan Tot
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Bravo, majstore... u pravu si Smile ~ jeste negacija, a ^ radi ono što sam napisao da ustvari radi ~ Very Happy
Imaš pivo od mene kad se negde budemo sreli Smile

offline
  • Na odmoru xD
  • Na odmoru xD
  • Pridružio: 15 Feb 2012
  • Poruke: 430

Zeleo bih napomenuti da kad uradim u C ~ npr nad cetvorkom (ili bilo kojim drugim brojem) dobijem -5 ali verovatno je to zato sto se u pozitivne brojeve racuna 0.

EDIT: Pisali smo u isto vrme. Svako moze da pogresi Ziveli

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Srki_82 ::E... sad kad razumeš logičke operatore, biće ti lakše da razumeš binarne. Binarni operatori, kao što ime sugeriše, rade nad bitovima. Recimo da imaš promenljive:
byte a = 45, b = 170
Broj 170 se u binarnom obliku piše ovako: 10101010
Broj 45 se u binarnom obliku piše ovako: 00101101
170 & 45 jednostavno proveri svaki bit oba broja i ako su i jedan i drugi 1, upiše 1, u suprotnom upiše 0:
10101010
&
00101101
=
00101000

| upiše 1 ako je bilo koji bit 1:
10101010
|
00101101
=
10101111

~ je negacija i koristi samo jedan parametar
~
00101101
=
11010010


Ovo za broj 45, zar se binarni oblik mora da na poceku ima 1, nemoze da ima 0.

I ja i dalje ne kapiram za ovo, kako na bitovima, sta radi. Ne kapiram.

Ko je trenutno na forumu
 

Ukupno su 1682 korisnika na forumu :: 113 registrovanih, 15 sakrivenih i 1554 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 15694 - dana 01 Feb 2026 12:23

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 8u47, Andrija357, Apok, bankulen, Bobrock1, Bojke549, Boris BM, bpop, BrcakRS, Bubimir, Citalac, Clouseau, CVOJ 410.lad PVO, dane007, Dedal, dejandr, Denaya, Dimitrije Paunovic, Dimitrise93, Dioniss, dok80, dolinalima, DonRumataEstorski, Dvogled, EXIT78, foka106, Frunze, geo.dule, GH69, Giskard, goran.vvv, Goran_, halkin gol, HogarStrashni, Holy Saber, Ir, Iskander, ISOF, Jager715510, jalos, Jerry Drake, kalens021, Kapetan Hadok, king111, kobaja77, Koja79, kolle.the.kid, komsija1, koneks, kovacicbozo, kybonacci, ladro, Lepi Jova, Leteća Krofna, Matija, mercedesamg, mishkooo, mist-mist, mm1811, Naj-Turs, Natuzzi, neko iz mase, nenaddz, nenorodjo, neutrino, nevjerna beba, nightwish, NiKoLa27, Novakomp, novator, nuke92, obsc, opt1, Pilence, Posluzilac, Povratak1912, radza1, RD84, read-only, renvoi, repac, Rothmans, Shilok, Sićko, Smiljkovich, sova72, spalev, stegonosa, tanzanija, Tas011, tooooom, tritonus, Troja, Tumansky, uruk, vathra, vazduh, Velizar Laro, VJ, Vladko, Vzor50, wizzardone, Wrangler, x011, xAlex2, Zdilar, zmajbre, Zoran1959, Zorge, zubri, |_MeD_|, Žrnov, Đurđevdan