02B.1 Operatoren, Präzedenz, Short-Circuit-Auswertung
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Serientitel | ||
Anzahl der Teile | 36 | |
Autor | ||
Lizenz | CC-Namensnennung - keine kommerzielle Nutzung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben. | |
Identifikatoren | 10.5446/9611 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache | ||
Produzent |
Inhaltliche Metadaten
Fachgebiet | |
Genre |
19
00:00
MathematikOrdnung <Mathematik>ProgrammierspracheRechnenVolumenFormelsammlungGRADEMultiplikationPositionPunktrechnungOperation <Informatik>AdditionNegative ZahlLogische OperationRechenartRichtungBimodulDickeComputeranimation
06:21
InformationMathematikProgrammierspracheRechnenZahlPhysikalische GrößeVariableGanze ZahlUngleichungFormelsammlungPunktrechnungTabelleTermOperation <Informatik>NormalvektorLogische OperationVorzeichen <Mathematik>GleitkommarechnungGleitkommazahlProgrammiererMischung <Mathematik>RichtungStandardabweichungGleichheitszeichenComputeranimationDiagramm
12:41
MathematikZahlVariableGanze ZahlUngleichungCompilerLogische OperationStrich <Typographie>Diagramm
15:26
MathematikRechnenFunktion <Mathematik>Ausdruck <Logik>PunktrechnungOperation <Informatik>Mischung <Mathematik>Logische OperationVorzeichen <Mathematik>Strich <Typographie>ProgrammierungDiagramm
Transkript: Deutsch(automatisch erzeugt)
00:00
eine Aufgabe, die aus einer alten Klausur stammt. Das ist eigentlich ziemlich blöd und sofort mit Formelsammlung zu lösen. Aber mit der Aufgabe will ich alle Leute dazu zwingen, dass sie wirklich mal nachdenken, wie C innen drin funktioniert, wie C längere Operationen auswertet.
00:22
Und die anderen Sprachen machen es genauso. Punktrechnung vor Sprichrechtung kennen Sie schon aus der Mathematik. Und bei den Programmiersprachen ist das richtig weit ausgeklügelt, was jetzt zuerst gemacht wird und jetzt was später gemacht wird. Nicht Punktrechnung vor Sprichrechtung nur, sondern über ein Dutzend Stufen typischerweise.
00:44
Schauen wir mal irgendeinen Ausdruck hin hier. A plus A mal 3 modulo 4 größer A durch 4 und nicht B oder A gleich eins.
01:01
Wenn ich es vorlese, merke ich gerade, dann ist eigentlich schon die Aufgabe fast gelöst. Der Job für Anfängerinnen und Anfänger ist erst mal dieses fürchterlich kryptische Zeug dazu entschlüsseln. A plus A Sternchen 3 Prozent 4 größer A Schrägstrich 4 Kaufmannsund Kaufmannsund
01:23
Ausrufezeichen B Ausrufezeichen B Strichstrich A gleich gleich eins. Wenn Sie noch nie was von C gehört haben oder seinen Nachvorgesprachen, sieht das ja so aus, als ob ein Huhn über die Tastatur gelaufen ist.
01:40
Und ich möchte, dass wir so ein bisschen Ideen kriegen, was das bedeutet. Es sind alles Operationen, aber eben nicht Operationen, wie man sie so aus der Mathematik kennt. Addition, Multiplikation, es sind auch die logischen Operationen dazwischen gestrickt und auch Rechenoperationen, die in der Mathematik eher selten vorkommen. Job für Sie, jetzt gucken Sie sich das hier mal an und setzen Sie Klammern.
02:04
Das war auch dann die Klausuraufgabe. Setzen Sie Klammern, so wie C diesen Ausdruck liest. Zum Beispiel mit Punktrechnung vor Strichrechnung, wenn ich sowas hätte. 3 plus 4 mal 5 plus 7. In der normalen Mathematik, dann würde ich so klammern.
02:22
Erst kommt die Punktrechnung und dann käme da vorne 3 plus diese 20, die da rauskommen. Und dann kommt, was auch immer, 23 und da hinten noch die 7 dazu. So würde die normale Mathematik klammern. Was wird zuerst ausgerechnet, ist die innerste Klammer.
02:41
Und die äußerste Klammer ist das, was zuletzt ausgerechnet wird. Wenn Sie keine Klammern setzen in der Mathematik, wie in C und allen anderen Programmiersprachen, passiert automatisch etwas. Hier wird in der Mathematik nicht gerechnet 3 plus 4 mal 5. Sondern es wird die Punktrechnung zuerst gemacht. Analog dazu passiert etwas deutlich komplizierteres in C und allen anderen Sprachen.
03:07
Setzen Sie hier mal Klammern, um klar zu machen, was die Standardreihenfolge ist. Wenn Sie etwas anderes haben wollen als die Standardreihenfolge, dann können Sie Klammern setzen in C und in der Mathematik. Das wäre nicht die Standardreihenfolge. Sobald Sie diese Klammern ausdrücklich hinschreiben, passiert etwas anderes.
03:23
Wenn Sie keine Klammern hinschreiben, passieren sozusagen die automatischen Klammern. Und die möchte ich gerne wissen an dieser Stelle. Was sind die automatischen Klammern? Ich bin begeistert, wie gut das geht.
03:42
Sie können tatsächlich so einen monströsen Ausdruck in das IF reinschreiben. Das sind natürlich alle Leute, die das Programm lesen, einschließlich Sie selbst, nach zwei Wochen total irritiert, was denn das mal gewesen sein mag. Also bitte nicht echt so programmieren. Das ist nur ein Beispiel, dass C es wirklich fressen würde. Und alle anderen Sprachen würden es auch fressen.
04:03
Nur Sie würden es im Zweifelsfall nicht mehr verstehen. Aber jetzt haben Sie alle schön Klammern gesetzt und wüssten dann auch tatsächlich, was gemeint ist. Wo fange ich mal an? Am einfachsten ist ganz oben in der Liste anzufangen, die ich jetzt nicht dabei habe. Sehr klug. Was ist alles ganz oben in der Liste? Was wird alles zuerst gemacht?
04:20
Zum Beispiel die Punktrechenarten. Die klassischen mathematischen Punktrechenarten, die kommen sehr früh. Das Mal und diese Neurechenart, das Modulo, der Rest. Vielleicht auch noch mal, wenn Sie sowas haben wie 10 modulo 4. Was kommt da raus? Korrekt, 2. Also das heißt 10 durch 4 teilen.
04:43
Das ist ein schlechtes Beispiel. Total schlechtes Beispiel, weil es auch 2 rauskommt. Man sollte sich Beispiele vorher überlegen. Der Rest ist aber 2. Wenn Sie 10 durch 4 teilen, ist der Rest 2. Ich sollte noch mal was anders machen. 10 modulo 5 ist jetzt nicht mehr 2, sondern...
05:01
Korrekt, 10 modulo 5 ist 0. Ich teile 10 durch 5. Der Rest ist 0. Also dieser Modulo-Operator gibt immer den Rest zurück. Schwieriger wird es mit negativen Zahlen. Ignorieren wir mal. Was ist der Rest, wenn ich negative Zahlen nehme? Ist nicht so wichtig in der Praxis.
05:22
Also das sind beides Punktrechenarten sozusagen. Die stehen auf derselben Stufe. Und die übliche Lösung ist für Operationen auf derselben Stufe, dass man von links anfängt und sich nach rechts vorarbeitet. Das kennen Sie aus der normalen Mathematik. 3 plus 4 minus 5 plus 6.
05:43
Dann arbeiten Sie von links nach rechts. 3 plus 4. Dann ziehen Sie die 5 ab und zum Schluss addieren Sie die 6 dazu. Wenn Sie so eine Folge haben von Rechenoperationen auf derselben Stufe, also Strichrechnung, dann rechnen Sie nicht 5 plus 6
06:01
und ziehen das von der 4 ab oder so. Das wäre sehr überraschend. Also bei Rechenoperationen auf der gleichen Stufe, typischerweise von links nach rechts. In C gibt es, glaube ich, nur eine einzige Ausnahme davon. Und die ist auch eher esoterisch. Man kann sich also als Hausregel merken, gleiche Stufe von links nach rechts.
06:21
Das haben wir hier. Gleiche Stufe von links nach rechts. Also es muss hier so etwas passieren wie a mal 3. Und dann nehmen wir Modulo. Es ist nicht 3 modulo 4 zuerst, sondern ist a mal 3 zuerst. Warum gucke ich mir das Plus jetzt gerade gar nicht an? Das könnte ja auch noch ins Spiel kommen.
06:41
Ja, richtig. Das Plus hier ist kein Vorzeichen oder was, sondern eine ganz normale Strichrechnung. a plus irgendwas. Da halten sich alle Programmiersprachen an die Mathematik. Punktrechnung vor Strichrechnung. Dieses Plus hier, a plus irgendwas, kommt definitiv später. Es kommt erstmals a mal 3. Und dann hier die weitere ungewöhnliche Punktrechenart, die auch gar keinen Punkt im Symbol hat.
07:02
Die kommt als Nächste. Ich mache mal eine andere Farbe, damit das noch übersichtlich bleibt. Aber den Term hier schon mal. Und das könnte man jetzt sogar tatsächlich ausrechnen. a soll 1 sein. Also a mal 3. Der hier ist 3. a mal 3.
07:20
Jetzt nehme ich 3 modulo 4. Das ist 3 modulo 4. Ja, eben hatte ich nur Zahlen. So und so viel, wo das erste so und so viel größer war. Als das, wonach ich modulo bilde. Wenn Sie teilen 3 durch 4, dann gibt das 0 Rest 3.
07:43
Genau das kommt hier raus, der Rest 3. Also hier vorne 3. Ja, und dann haben wir schon die Anmerkung, eigentlich mache ich das doch in der falschen Reihenfolge. Genau. Wenn Sie anders als ich die Tabelle dabei haben, Stichwort Formelsammlung. Wenn Sie anders als ich die Tabelle dabei haben, stellen Sie fest, eigentlich sollten Sie mit dem hier anfangen.
08:02
Mit den Operationen, die ganz ganz oben in der Tabelle stehen. Vorzeichen, und dieses hier ist so eine Art logisches Vorzeichen. Was macht das Ausrufezeichen? Das Ausrufezeichen ist in C und in Nachfolgesprachen sowas wie das logische Minus. Es sind nicht genug Symbole auf der Tastatur.
08:22
Es gibt Programmiersprachen, die haben eine komplett anders belegte Tastatur, wo es dann total lustige Symbolchen für all das gibt. Aber C kommt mit der Standardtastaturbelegung aus, und irgendwo muss ein Symbol her, deshalb das Ausrufezeichen, für logisch nicht. B soll falsch sein, dann ist logisch nicht, also true.
08:46
Das können wir ausrechnen. Da haben wir den. Weitere Baustellen. A durch 4, in der Tat, das wird auch eher ausgerechnet.
09:03
Das Größere und das Und ist schwächer als das Geteilt. Also rechnen wir A durch 4, oder der Rechner rechnet A durch 4 zuerst aus. 1 durch 4 ist immer eine große Überraschung. 1 durch 4 ist hier zu rechnen. Also solange wir in ganzen Zahlen arbeiten, das ist ständig ein Ärgernis, auch für Profi-Programmierer,
09:22
solange wir in ganzen Zahlen arbeiten, wird in ganzen Zahlen gerechnet. 1 durch 4 ist nicht ein Viertel, sondern eine ganze Zahl und deshalb Null. Vorsicht, Vorsicht, Vorsicht. Bei den Gleitkombazahlen sage ich noch mal ein bisschen was. Die einfachste Lösung ist hier zu schreiben durch 4.0, eine dieser Zahlen zu einer Gleitkombazahl zu machen.
09:43
Mehr dazu später. Aber sobald Sie nur ganze Zahlen haben, ist C strikt und das Ergebnis wird auch wieder eine ganze Zahl sein. Mit dem überraschenden Ergebnis Null. Dann eben 1 durch 4 gibt Null. Muss ich mal hier vorsichtig gucken, was wir noch veratzen können.
10:06
Wie gesagt, wenn Sie das streng nach Rezept machen, dann nehmen Sie sich diese Präzedenzliste, welche Operationen sind zuerst dran, welche sind später dran und gehen dann von oben nach unten durch. Ich mache das jetzt sehr hemsärmlich hier,
10:20
weil ich die Liste nicht dabei habe und die auch nicht auswendig weiß. Genau das, erst mal das Plus. Dieses Größerzeichen bindet schwächer als das Plus, also wird garantiert dieses Plus erst ausgeführt. Kann ich da eine Klammer setzen. Hier wird das zuerst ausgeführt, jetzt wird es hier enkarmälich. Ich habe also zu rechnen 1 plus 3.
10:42
Das macht 4. Na toll. So, sehen Sie den nächsten Ausdruck, den man jetzt ausrechnen kann. Dieses Größer bindet stärker als das Und. Das weiß man irgendwann auswendig. Notfalls setzt man dann Klammern, wenn man sich nicht sicher ist.
11:02
Diese Vergleiche sind stärker als diese logischen Und und Oders. Also kann ich jetzt erst mal hier das Größer machen. Jetzt wird es allmählich crowded. So habe ich das Größer. 4 größer Null. Was kommt also aus der grünen Klammer raus?
11:22
In der Tat, True. Der Wahrheitswert war. 4 ist größer als Null. Da sehen Sie wie in C diese normalen Rechenoperationen, Mal, Plus und das nicht ganz so normale Rest hier, Modulo. Wie die durcheinander gehen mit logischen Operationen. Die stehen einfach so nebeneinander
11:42
und wir rechnen und rechnen und rechnen. Eine Zahl größer als eine andere Zahl wird nicht eine Zahl wieder, sondern wahr oder falsch. Und jetzt rechnen wir mit dem Wahr oder Falsch weiter. Wie man in der Logik, in der Mathematik, im 1. Semester eben mit logischen Operationen gerechnet hat. Das ist hier auf dieselbe Art gemacht.
12:03
Ob es nun Rechenoperationen sind, oder klassische Art oder logische Operationen, ist der Maschine ziemlich schnurrt. Der rechnet mit den Zahlen 4 und 3 genauso, wie er einfach mit diesem 1 Bit wahr oder falsch rechnet. Dieses 1 Bit wird üblicherweise nicht als 1 Bit gespeichert, sondern verbraucht viel mehr Speicherplatz. Aber anschaulich ist das ja ein einziges Bit,
12:21
diese Booge Variable. Sie ist wahr oder sie ist falsch. Diese Integer Variable ist nicht nur ein einziges Bit. Da passt viel mehr an Informationen rein. Auf dieser Maschine eben 16 Bit, auf anderen Maschinen 32 Bit. Der vordere Teil. Hier hinten ist noch ein bisschen was an Baustelle.
12:43
Dieser Vergleich hier noch richtig. Das habe ich keine Farben mehr. Die Vergleiche stehen in der Hierarchie oberhalb von diesen logischen Operationen. A gleich, gleich eins. Auch das ist so ein C-Phänomen,
13:01
wie dieses Teilen zweier ganzer Zahlen durcheinander. Das muss man sich einmal ganz dick auf die Formelsammlung schreiben. Vorsicht, da teile ich zwei ganze Zahlen durcheinander. Es passiert fürchterliches. Und diese Geschichte hier auch. Gleich, gleich ist der Vergleich. Das schlichte Gleich ist die Zuweisung. Nehme das, was rechts steht,
13:21
und schreibe das in diese Variable b rein. Nehme die Zahl 1 da und schreibe die in die Variable a rein. Das ist das einfache Gleich. Und das Gleich, gleich ist zur Unterscheidung der Vergleich. Ist a gleich eins, was ich in der Mathematik gerne immer geschrieben habe, als a?
13:41
Die beiden auseinanderhalten. Das ist eine komplett verschiedene Bedeutung. Wenn Sie hier a gleich eins schreiben, da hinten, heißt das, wenn das da stünde, a gleich eins, würde das heißen, nehme diesen Wert eins, schreibe den in die Variable a rein und perverserweise hat das, was da rauskommt,
14:00
den Wert eins. Und dann würde jetzt ein logisches oder mit dem Wert eins machen. Das geht tatsächlich alles durch. Der Compiler wird Sie warnen, aber der wird das locker übersetzen, obwohl das Blödsinn ist. Vorsicht an der Stelle. Wenn Sie einen Vergleich meinen, schreiben Sie auch einen Vergleich. Und in C ist das eben gleichgleich. Ist nicht in allen Sprachen so?
14:22
Es gibt auch Sprachen, wo dann hier diese Zuweisung als Doppelpunktgleich zum Beispiel steht, a Doppelpunktgleich eins, wie definiert in der Mathematik. Dann habe ich das Gleicherzeichen, das einfache Gleicherzeichen, frei für diesen Vergleich. Wobei ich, wenn ich gerade dabei bin, andere Sprachen, hier das mit dem Prozent und diesem Kaufmannsund ist auch
14:42
einigen Spracherfindern zu kurz gewesen. Sie sehen statt des Prozent gesagt, statt des Ausrufezeichens, statt des Ausrufezeichens sehen Sie in einigen Sprachen tatsächlich ausdrücklich ein Not, N-O-N-T und statt dieses Doppelt-Kaufmannsund und Doppelt- Strich sehen Sie tatsächlich in anderen Sprachen N und O,
15:02
ausgeschrieben in Buchstaben. So sieht es eben in C aus, so ein bisschen kryptisch. So, was hatten wir hinten schon? A gleichgleich eins. Also ich prüfe, ob A gleich eins ist. Ja, A ist gleich eins. Also ist das da hinten true? War? Und jetzt kommt das, was ich im ersten Semester
15:20
auch immer gepredigt habe. Logisch und, logisch oder, wie sind die Klammern zu setzen? Korrekt. Erst das und. Das logische und ist sowas wie die Punktrechnung bei der Logik. Und das logische oder ist sowas wie die Strichrechnung bei der Logik. Erst kommt das logische und
15:41
in der Form. Und dann kommt das logische oder ganz zum Schluss. Muss ich eigentlich gar keine Klammern setzen, das ist ja schon direkt in dem if drin. Also jetzt habe ich noch hier den linken Teil. Oh, oh. Den linken Teil. True und true, zweimal war. Mit einem und zusammen ist natürlich wieder true.
16:01
Oder true macht nichts mehr kaputt. Der gesamte Ausdruck bleibt true. Das heißt, dieses if wird tatsächlich ausgeführt. Der Körper von dem if wird tatsächlich ausgeführt. Also hier haben wir nochmal diese Mischung aus Zahlen,
16:20
Operationen. A mal 3, Modulo 4, bla bla bla. Und ganz harmlos in derselben Zeile, als ob nichts wäre, logische Operationen und oder. Auch mit derselben Regelwerk. Punktrechnung vor Strichrechnung. Das logische und ist die Punktrechnung und das logische oder ist die Strichrechnung. Und dieses Ausrufezeichen,
16:41
das logische nicht, ist so etwas wie ein Vorzeichen. Das ist ganz ganz wichtig. Vorzeichen kommt zuallererst. So wie ich das hier aufgemalt habe, ist das noch nicht hundertprozentig das, was der Rechner tut. Ich weiß nicht, ob Sie das schon mitgekriegt haben. Es gibt so einen Kniff, den habe ich in den alten
17:01
Vorlesungen erwähnt. Wenn ich und und oder oder schreibe, mit diesen doppelten Symbolen, gibt es einen Kniff, der hier noch greift. Es kommt zum Schluss true raus, aber es wird nicht ganz so gemacht, wie ich es hier aufgeschrieben habe. Genau. Das oder weiß ja schon. Wenn dieser blaue
17:20
Ausdruck hier auf der linken Seite true ist, wenn der blaue Ausdruck weiß, dann ist das oder automatisch wahr. Das muss ich ja nicht noch angucken, was rechts ist. Das nennt sich Short-Circuit. Was also passiert, wenn Sie dieses Strichstrich schreiben, ist, dass das hier gar nicht ausgerechnet wird, auf der rechten Seite. Der guckt sich niemals an. Das nennt sich Short-Circuit.
17:41
Kurzschluss. Bei dieser Sorte an Rechnungen ist es egal. Es kommt das raus, was Sie mathematisch erwarten. Es wird dann spannender, sehen wir später, wenn hier irgendwelche Funktionen aufgerufen werden. Teste, ob du genug Speicher hast. Und dann steht auf der anderen Seite, dann tue auch noch was mit dem Speicher, wenn du genug
18:00
Speicher hast. Dann wird es dann plötzlich spannend, was das Short-Circuit Auswertung macht. Hier ist es nicht so dramatisch. Hier ist es dann einfach nur schneller. Sie kriegen das selbe Ergebnis schneller. Der Rechner guckt nicht nach, ob A gleich 1 ist, denn er weiß ja schon, die linke Seite ist wahr. Dann ist das oder auf jeden Fall wahr. Wir sehen, da stecken so ganz fürchterliche
18:21
Kniffe drin. Das ist gemeint mit diesem und und oder oder Short-Circuit Auswertung. Also es kann sein, dass von dem oder oder hier zwei Striche nur die linke Seite ausgewertet wird und das Rechner nie die rechte Seite anguckt. Wenn die linke Seite schon wahr ist, wird er nie die rechte Seite angucken.
18:41
Wie ist das bei dem und und Short-Circuit für das logische und? Was ist da die Abkürzung? Genau, bei dem und und, dem logischen und mit Short-Circuit Guckt ja, ob der erste falsch ist. Falls ist. Wenn der erste falsch ist, kann das und ja niemals wahr werden.
19:00
Falsch und irgendwas falsch und wahr, falsch und falsch keine Chance, wenn der erste falsch ist, ist das und niemals wahr. Also guckt er sich bei diesem Kaufmanns und Kaufmanns und dem verdoppelten und nur den linken an erst mal und stellt fest, ob der falsch ist. Wenn der falsch ist, ignoriert er den rechten und sagt sofort, ist insgesamt falsch. Wenn der linke wahr ist,
19:20
das ist dann blöd, dann müsste man mehr machen. Wenn der linke wahr ist und irgendwas, dann kann es falsch werden oder wahr werden. Abhängig von dem, was rechts steht. Dann guckt er sich beide an, wenn der linke wahr ist. Das sind so dann die alltäglichen Freuden der Programmiererinnen und des Programmierers, dass diese Sachen sich nicht ganz so verhalten, wie in der Mathematik. Man gewöhnt sich
19:41
aber es kostet eben dann doch ein bisschen Zeit. Also das im Hinterkopf behalten, zwei Punkte zum dran gewöhnen oder drei Punkte zum dran gewöhnen. Ganzzahl durch Ganzzahl wird eine Ganzzahl der Vergleich auf Gleichheit ist Gleich-Gleich. Nicht Gleich. Gleich in C ist die Zuweisung. Gleich-Gleich
20:01
ist der Vergleich auf Gleichheit. Was habe ich gesagt? Vier Sachen. Ich hoffe, ich kriege jetzt alle vier zusammen. Kaufmanns und Kaufmanns und ist das und mit Kurzschluss. Er guckt erst mal, ob die linke Seite falsch ist. Und der Strichstrich, das Oder mit
20:21
Kurzschluss, Short-Circuit, guckt erst mal, ob die linke Seite wahr ist. Also vier Sachen zu merken. An Stellen, an denen C sich nicht so ganz so verhält, wie die Mathematik es nahelegen würde. Ich gehe gerade nochmal zu dem Short-Circuit bei dem Oder. Wenn das erste
20:41
falsch ist, wenn das erste falsch ist, false oder oder. Wenn der erste falsch ist, kommt es auf den zweiten an. Wenn der zweite wahr ist, wird es insgesamt wahr werden. Wenn der zweite falsch ist, wird es insgesamt false werden.
21:02
Also beim Oder ist es so, dass er gucken muss, ob der erste wahr ist. Wenn der erste wahr ist, ist das Oder erledigt, dann ist das Oder wahr. Aber wenn der erste falsch ist, muss er den zweiten lang gucken. Und genau das, was da an zweiter Stelle steht, kommt netterweise auch aus. Mit Short-Circuit.
21:21
Bitwise-Operationen kriegen wir auch noch. Bei den Bitwise-Operationen hat man hier nur ein Und und ein Oder stehen. Da kommen die vor. Und insbesondere in den Nachfolgesprachen, sowas wie Java und C-Sharp, stehen diese einfachen Striche auch dafür, dass man eben kein Short-Circuit macht, dass man auf jeden Fall beide Seiten anguckt. Was ineffizient
21:41
ist, aber für weniger Überraschungen sorgt. Ich denke, wir sehen dieses Semester bei logischen Ausdrücken nur die. Also, sobald Sie wirklich wahr und falsch haben, sollten Sie eigentlich auch nur diese beiden hier haben. Das doppelte Kaufmannsund und den doppelten Strich. Und keine anderen. In C werden die einfachen, nur das
22:01
Kaufmannsund und nur der Strich dann für Bitwise-Operationen benutzt. Typischerweise sehen wir später.