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.
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.
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
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!
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 🙂
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 🙂
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.
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
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