Laden...

Logisches und Bedingtes AND(& / &&) Unterschiede?

Erstellt von Fab96 vor 18 Jahren Letzter Beitrag vor 18 Jahren 5.859 Views
F
Fab96 Themenstarter:in
66 Beiträge seit 2004
vor 18 Jahren
Logisches und Bedingtes AND(& / &&) Unterschiede?

Hi, ist eventuell ne dumme frage und eine die nicht wirklich wichtig ist aber mich interessierts.

Wo genau ist der unterschied von


& und &&
| und ||

die einzelnen sind die Logischen die doppelten die Bedingten, soweit klar

bei

if (a && b)

wird wenn a false ist garnicht erst b geprüft, ok das ist mir klar, bei

if (a & b)

wird a und b geprüft, aber so wie ich es gelesen habe(aber nicht ganz verstand)
ist das nicht der einzige Unterschied da && nur für bool werte eigentlich ist und & für bool und int.

Wo ist da nun also noch der unterschied?
es gibt ja beispiele wo bei & und && je andere ergebnisse rauskommen nur momentan seh ich kein beispiel wo das wäre.

6.862 Beiträge seit 2003
vor 18 Jahren

Außer & gibts für die unsigned Datentypen auch noch |,^,~,<<,>> als Operatoren, das sind die sogenannten Bitoperatoren. Damit kannst du die einzelnen Bits beeinflussen. Guck mal hier. Ist zwar für C aber in C# gelten glaube ich fast ausnahmslos die gleichen Regeln.

Baka wa shinanakya naoranai.

Mein XING Profil.

1.274 Beiträge seit 2005
vor 18 Jahren

Ein Beispiel kann es nicht vorkommen das ein Fehler bei der Division durch 0 kommt.


if ((x >0) && ((100 / x) = 5)))
{
doIT();
}
else
{
MessageBox.Show("Ungültiger Teilwert");
}

"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein

S
84 Beiträge seit 2005
vor 18 Jahren

Die bitoperatorn haben eigentlich mit den logischen operatoren nicht viel zu tun! denn die bitoperatoren ändern variablen, die logischen fraen nur bedingungen ab!
jetzt sagen viele "wenn ich c# programmiere habe ich mit den bits reichlich wenig am hut"! das ist eigentlich richtig, dennoch benutze ich gerne ab und zu mal die bitoperatoren! vor allem den "bitweise oder" in verbindung mit boolischen werten!

F
Fab96 Themenstarter:in
66 Beiträge seit 2004
vor 18 Jahren

hm ah ok um 4 uhr nachts lernen kann verwirren, aber nachdem ich das hier gelesen habe und selber etwas getestet habe hab ich es soweit verstanden, danke für die hilfe 🙂

S
1.047 Beiträge seit 2005
vor 18 Jahren

Original von talla
Außer & gibts für die unsigned Datentypen auch noch...

schlagt mich bitte wenn ich mich irre aber die funktionieren sowohl bei signed als auch bei unsigned datentypen...

@topic
bei boolschen hast du halt das logische und, wobei & immer beide seiten auswertet und && sobald ergebnis fest steht aufhört... das gleiche für logisches oder (| bzw. ||) usw.

bei zahlentypen machst du bitoperationen, also z.B. 1 | 2 ergibt 3 da binär 01 und binär 10 durch das bitweise oder zu binär 11 wird, was dezimal ne 3 ist 🙂

6.862 Beiträge seit 2003
vor 18 Jahren

Original von sheitman

Original von talla
Außer & gibts für die unsigned Datentypen auch noch...
schlagt mich bitte wenn ich mich irre aber die funktionieren sowohl bei signed als auch bei unsigned datentypen...

Ist mir später auch aufgefallen, hab da was verwechselt 😉 Weil die funktionieren definitiv nicht mit Fließkommzahlen 😉 Bei manchen Bitoperatoren muss man aber auch achten was man macht wenn man signed Zahlen benutzt, kann ganz schöne Nebeneffekte haben.

Baka wa shinanakya naoranai.

Mein XING Profil.

2.082 Beiträge seit 2005
vor 18 Jahren

Hallo Fab96,

wenn es dir etwas hilf, in Assembler-Sprache wird das oft benutzt. Außerdem gibt es in der Elektrotechnik auch Bausteine, die als logische Und- und Oderoperatoren arbeiten.

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

F
Fab96 Themenstarter:in
66 Beiträge seit 2004
vor 18 Jahren

Original von frisch
Hallo Fab96,

wenn es dir etwas hilf, in Assembler-Sprache wird das oft benutzt. Außerdem gibt es in der Elektrotechnik auch Bausteine, die als logische Und- und Oderoperatoren arbeiten.

jo ich weiß, ASm boolsche algebra usw. kann ich soweit nur war mir das beispiel indem oben genannten buch nicht einleuchtend, aber der tipp mit dem bitoperatoren macht es logischer wenn ich es einfach auf bit/asm ebene sehe, also nochmals danke