Operatorpriorität: Bitshift



  • Mich würde interessieren, wieso der Bitshift Operator eine kleinere Priorität als die Addition hat. Wenn ich Bits shifte, interpretiere ich das meistens als Multiplikation mit 2^x und muss immer aufpassen, dass ich die Klammern nicht vergesse. Ich sage nicht, dass die Reihenfolge der Operatoren schlecht ist, ich hätte es einfach intuitiv anders erwartet.

    In C++ bin ich sogar froh, dass die << und >> Operatoren niedrige Priorität haben. Bei Streams macht es für mich Sinn, dass z.B. cout << i+1; als cout << (i+1); ausgewertet wird. Aber in C? Was war da der Grund? Ich kann mir nicht vorstellen, dass man an das gedacht hat, als man die Prioritäten definiert hat (lange vor C++).

    Ausserdem ist das scheinbar in vielen Sprachen so (auch in Python, Java), da gibt es doch sicher eine Erklärung ;).



  • z.B. wenn einer bits << i+1 machen will. 🤡



  • lustig schrieb:

    In C++ bin ich sogar froh, dass die << und >> Operatoren niedrige Priorität haben. Bei Streams macht es für mich Sinn, dass z.B. cout << i+1; als cout << (i+1); ausgewertet wird.

    Die haben wohl eher deswegen diese kryptische Schreibweise gewählt.


Log in to reply