Hallo, ich möchte den Mod von einem Integer % 360 mit Shifts berechnen. Und zwar weiß ich nicht wie man sowas mit Shifts machen kann. Der normale '%' Operator braucht zu lange bei den großen Zahlen. Vielen Dank im Voraus. Giovanni
Moin, Welche CPU, wieviel Bit ist der Integer? Was fuer weitere Rosinen stecken in deiner Nase, die man einzeln rausziehen muss? Gruss WK
Dergute W. schrieb: > Moin, > > Welche CPU, wieviel Bit ist der Integer? Was fuer weitere Rosinen > stecken in deiner Nase, die man einzeln rausziehen muss? > > Gruss > WK Für einen STM32, int 4Bit.
Mark B. schrieb: > Giovanni schrieb: >> Für einen STM32, int 4Bit. > > Du meinst wohl 4 Byte. Oder auf gut deutsch 32 Bit. Naturlich :D
Giovanni schrieb: > Der normale '%' Operator braucht zu lange bei den großen Zahlen. Wofür braucht der für 32 bit auf einem STM32 in C zu lange?
Beitrag #5021517 wurde von einem Moderator gelöscht.
Giovanni schrieb: > ich möchte den Mod von einem Integer % 360 360 ist ne blöde Zahl dafür - Teile den Kreis lieber in 512 Einheiten statt Grad zu benutzen, dann geht es mit einem simplen & 0x1FF.
Moin, OK, bei einem AVR haett's mich nicht gewundert; aber beim STM32 kann ich fast nicht glauben, dass es daran liegt. iirc kann der doch Division in Hardware; da waer's sehr verwunderlich, wenn das laenger dauern sollte als eine handgebastelte shifterei. Wie kommst du drauf, dass das lange dauert? Schon mal geguckt, was der Compiler draus fuer Code erzeugt? Gruss WK
Hi 4bit 0...15 Da ist ein MOD 360 einfach ;) Wenn sich der Wert immer nur sporadisch erhöht und relativ langsam erhöht, kannst Du den Wert korrigieren, wenn Er über 360 angewachsen ist (Wert=Wert-360). In die andere Richtung müsste man auf 'Negativ' prüfen (höchste Bit gesetzt) und dann eben Wert=Wert+360 machen, bis der Wert wieder 'im grünen Bereich' ist. Dafür sollten dann 9bit reichen bzw, 10bit, um das 'Negatib-Bit' nicht irrtümlich zu setzen. MfG
:
Bearbeitet durch User
Giovanni schrieb: > Der normale '%' Operator braucht zu lange bei den großen Zahlen. Wie wurde das festgestellt?
Moin, Jepp. So in etwa hatte ich mir das auch vorgestellt. Da wird irgendwas anderes klemmen... Gruss WK
Beitrag #5021575 wurde von einem Moderator gelöscht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.