Logicni operatori

2

Logicni operatori

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

Ovako:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int
  5. main()
  6. {
  7.  
  8. int x, y;
  9. x = 7;
  10. y = 3;
  11.  
  12. if (x && y < 10)
  13.  
  14.    printf("Obe promenljive su manje od 10.");
  15.  
  16. return EXIT_SUCCESS;
  17. }



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
  • Am I evil? I am man, yes I am.
  • 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
  • Am I evil? I am man, yes I am.
  • 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:

  1. 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:

  1. 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
  • Am I evil? I am man, yes I am.
  • 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:

  1. 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 1110 korisnika na forumu :: 34 registrovanih, 4 sakrivenih i 1072 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: acov34, black venom, brause, Bubimir, chervoncy, Cicumile, cojapop, Dimitrise93, GveX, Joksss, lafa008, ljuba.b, Lotus, MarkoD, milanstankovic087, mist-mist, mrkanidja, N95, Polifon, Prečanin30, S2M, saki80, septembar, tanzanija, tmanda323, Tribal, Velizar Laro, Vladko, vlado_pg, zanimame, Zeljo980, zlatkoa987, Zmaj001, zvomar