Texter mir x: effektiver künstlicher Zahlenüberlauf oder Modulo selber gemacht

Beitrag lesen

Integer?

z = x - ((x / y) * y)

Ja, ganze Zahlen.

Beispiel:
-10, -370, -730 ist gleichbedeutend und soll 350 ergeben
370, 730, 1090 ist gleichbedeutend und soll 10 ergeben

z = x - ((x / y) * y) ergibt
-10 (mit absi ist da nichts zu machen)
10

Ich komme jetzt auf folgendes, ich glaube meine alte Lösung war noch etwas schlechter:
z = (x + 1440) - (((x + 1440) / y) * y) ergibt
350
10
Das sind 15 Takte ohne Klammern. Bei Klammern verhält sich der Compiler relativ undurchschaubar, das muß ich testen. Vermutlich sind es in Summe 18 Takte.

Da ich die Funktion je Prozeßaufruf relativ häufig ausführen muß, sind 18 Takte für einen Überlauf der sonst nebenbei Auftritt recht viel. Leider funktioniert das nur bei 2^x.

Daher hatte ich auf eine schnelle Lösung auf Bit-Ebene gehofft.