![]() |
c - logische operatoren - vergleich
auf ein neues: hab ich da wieder mal einen denkfehler? oder stimmt mal wieder des skript nicht *grml*
Code:
übungsbeispiele: ergebnisse laut skript: 17 ist kleiner als 20 (trifft zu) - 17 ist aber nicht kleiner als 4-4 (trifft nicht zu) da aber beide zutreffen müssen ist das ergebnis bei mir 0 hmm... scheibar komm ich auch irgendwie nicht mit dem ! not operator zurecht: !0 ergebnis =1 (ist mir klar, wenn der operand gleich 0 ist, dann ist das ausdrucksergebnis 1, wenn nicht dann 0) !14 || 12 > 11 ergebnis= 1 (wieso? !14 ist nicht null also muss ergebnis= 0 sein und 12 ist grösser als 11, also trifft zu, ergebnis=1) nach welcher regel wird beurteilt, das logische oder, hilft mir dabei nicht wirklich und die operanden haben die gleiche priorität. ich hab mir schon das gehirn verrenkt aber ich komm einfach nicht drauf welchen denkfehler ich begehe. |
Re: c - logische operatoren - vergleich
Zitat:
Wenn der Operator && vorkäme wär das Ergebnis 0. 17 < 20 && !(4-4) Ich würd auch sagen es ist 1 weil !0 bedeutet ja alle Zahlen außer 0 sind wahr. Alles ohne Gewähr, hab auch Probleme beim C++ Programmieren an der Uni. ;) |
Re: Re: c - logische operatoren - vergleich
sry doppelpost...
|
Re: c - logische operatoren - vergleich
[quote]Original geschrieben von Bastet
Code:
17 < 20 && !(4-4) ergebnis= 1 denke aber es ist 0!! Code:
(17 < 20) && !(4-4) Code:
(17 < 20) - > 1 Code:
!(4-4) - > !(0) - > 1 Code:
1 && 1 |
danke erstmal - ich glaub ich habs
!14||12>11 also sobald ein , oder || operator dabei ist, wird davon ausgegangen dass einer wahr ist. @fabsi ja, daran dachte ich auch schon, aber auf grund eines anderen beispiels habe ich den gedanken wieder verworfen. |
Verstaubten Kernighan Ritchie aus dem Schrank hol ...:D
Bei solchen Aufgaben ist es wichtig, die Priorität der Operatoren zu kennen. vielleicht hilft dir das hier weiter, wenn nicht eh schon bekannt -> Code:
Priorität Operator Assoziativität |
Re: c - logische operatoren - vergleich
Zitat:
! liefert immer null, wenn operand <> 0 ist |
operatoren, die in der gleichen zeile stehen, haben gleiche priorität. aso - die wie oben in der liste aufgezählt wurden zb. + - gleiche priorität.
@maxb wahhh.... verwirr mich nicht :lol: !not - ist dieser operand gleich null ist das ausdrucksergebnis 1, andernfalls 0 somit: !10 ergebnis= 0 !0 ergebnis= 1 !14 ergebnis= 0 gibts zu ! evt. ne erklärung für dummies? hab schon überall nachgelesen, aber es wird immer wie oben erklärt. |
Re: Re: c - logische operatoren - vergleich
Zitat:
z.B. 15<10||3+5==8 ist das Ergebnis 1 weil 3+5=8 wahr ist. |
Zitat:
http://www.schellong.de/c.htm Das ist mein Standardnachschlagwerk, wenn ich wo nicht weiter weiß. (a || b) = c: Logisch oder: Sobald a ODER b 1 ergeben ist c 1 (a && b) = c: Logisch und: Sobald a UND b 1 ergeben ist c 1 deiner erklärung von ! war eh gut: !Zahl liefert 1 wenn Zahl 0 ist und 0 wenn Zahl nicht 0 ist. |
Zitat:
was willist du mehr :confused: wenn das per definiton so festgelegt ist, passt es ja :) |
danke
@maxb passt eh... du bist nur meister im verunsichern ;) und dann bin ich :confused: :rolleyes: |
hoppala, jetzt weiß ich was du meinst. habe dein "14 ist nicht null, daher ..." (du hast zwar "!14" ist nicht 0 geschrieben ;)) jetzt erst verstanden. war ein mißverständnis und deswegen die verwirrung, sorry :)
|
Ich hab' eigentlich immer gedacht nur 1 ist true und alles andere ist false.
Jak |
Alles ungleich 0 (= "!0") ist TRUE oder wahr.
Nur die Null ist FALSE oder unwahr. !Wert -> wahr, wenn der Wert Null ist (wegen der Umkehrfunktion "!" = NOT Funktion bzw. Operator NOT) Ist der Wert 1 oder -1 oder irgendein Wert außer 0 so ergibt !Wert FALSE, da der Wert ohne "!" ja TRUE ergibt. Die Umkehrung dieser logischen Wertung ist dann eben FALSE. Wert ... 1 --> TRUE; !Wert --> FALSE Wert ... -1 --> TRUE; !Wert --> FALSE Wert ... 0 --> FALSE; !Wert --> TRUE mfg Kikakater |
if(Wert)
bedeutet soviel wie: if(Wert<0 || Wert>0) - if(!Wert) bedeutet: if(Wert == 0) ~ mfg Kikakater |
Zitat:
nicht nur :D ausserdem kannst da sowieso alles so definieren wie du es grad brauchst. @bastet wenn du das mit den logischen operatoren wirklich VERSTEHEN willst und nicht nur benutzen, dann kann ich dir nur die grundlagen der (elektronischen) logik-schaltungen ans herz legen. das zeug mit den gattern ;) wennst das richtig kapiert hast, hast mit logischen operatoren keine probleme mehr, weil es genau analog funktioniert. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 10:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag