Forum: PC-Programmierung C++ Reihenfolge bei arithmetischen Operationen


von A. R. (redegle)


Lesenswert?

Hallo,

ich möchte einen Wert in 25er Schritten abrunden.

Ein Beispiel:
0 bis 24 --> 0
25 bis 49 --> 25
50 bis 74 --> 50
74 bis 99 --> 75
100 bis 124 --> 100

Bei Integerberechnung ist es nun so, dass bei einer Division automatisch 
abgerundet wird. Mach auch Sinn, da der Rest meist in ein extra Register 
geschrieben. In C/C++ lässt sich der Rest dann mit Modulo auslesen.

Folgender Code macht die Abrundung so wie gewollt.

Test = x/25*25;

Kann ich davon ausgehen, dass immer zuerst x/25 gerechnet wird und dann 
erst die Multipikation mit 25 erfolgt?

von spaltpol (Gast)


Lesenswert?

Setz doch ne Klammer

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

unabhängig von dem sehr sinnvollen Vorschlag der Klammerung: Ja, das ist 
garantiert ->

http://en.cppreference.com/w/cpp/language/operator_precedence

Matthias

von Kast (Gast)


Lesenswert?

A. R. schrieb:
>
> Kann ich davon ausgehen, dass immer zuerst x/25 gerechnet wird und dann
> erst die Multipikation mit 25 erfolgt?

Sollte so sein, da * und / die gleich Prio. haben und die Assoziativität 
von links nach rechts ist

von A. R. (redegle)


Lesenswert?

Vielen Dank,

damit wurde meine Frage beantwortet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.