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
  • 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:
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
  • 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:
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 868 korisnika na forumu :: 4 registrovanih, 2 sakrivenih i 862 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: ALBION101, MilosKop, S-lash, Shilok