Gast
#4376284
Hallo, kann man das noch weiter verbessern?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
|
Anzeige
|
Inkrementieren/Dekrementieren
Gast
#4376284
Hallo, kann man das noch weiter verbessern?
Kommentieren / Dokumentieren, was das soll.
Gast
#4376297
Marion schrieb: > Hallo, > > kann man das noch weiter verbessern? Hallo, ja!
Gast
#4376298
Möchte eine Variable hoch oder runterzählen lassen, je nachdem ob step positiv oder negativ ist. Der Werte Bereich soll dann von 0 - 359 (inkl. Überlauf) gehen.
Gast
#4376299
Marion schrieb: > kann man das noch weiter verbessern? Das kommt auf die verfügbare Hardware und auf das Kriterien für "besser" an. Marion schrieb: > shift = (shift + step) % maxShift+1; Da maxShift hier wohl im allgemeinen Fall keine 2-er Potenz sein wird, würde ich dir hier von einer % Operation abraten. Das +1 dürfte hier auch falsch sein, es sei denn du machst da eine Klammer drum herum
das hier
ist mir ehrlich gesagt zu gekünstelt. Da du sowieso mit Vorzeichen rechnest:
Ob da jetzt jeweils eine Korrektur um +1 sein muss oder nicht, hängt davon ab, ob der Wert maxShift auch erlaubt ist oder nicht. Ich würde allerdings hier nicht in den Berechnungen immer +1 rechnen, sondern den Wert maxShift an sich um 1 höher halten. Lässt sich ja einfach beim Setzen bzw. Auslesen des Wertes berücksichtigen. Der Grund ist simpel: den Wert verändern wird man wohl eher selten, jedoch häufiger anwenden. Dann spar ich dem µC beim Anwenden das ständige +1 dazurechnen, während es beim Verändern als Operation unter "ferner liefen" fungiert. Karl H. schrieb: > Da maxShift hier wohl im allgemeinen Fall keine 2-er Potenz sein wird, > würde ich dir hier von einer % Operation abraten. Edit: Es sei denn natürlich, dein unbekannter Computer kann Divisionen in Hardware durchführen.
Gast
#4376309
Ja, die Klammer hat gefehlt. % bindet stärker als + (und da helfen Leerzeichen auch nicht, der Compiler will Klammern sehen). Und auch bei negativem step wäre eine Addition richtig. Viel einfacher so:
Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|