Fixed Point Arithmetik

OP #1486089
Hallo

ich habe eine Formel zur Berechnung der Schritte eines Servos bei 
Eingabe eines Winkels:

Schritte = ((100*Winkel)/9)+500

Wir wollen aber diese Formel in einer Fixed Point Darstellung bekommen!

Hat einer von euch eine Idee, wie man sowas machen könnte? D.h. anstatt 
der 9 im Nenner den shift Operator verwenden?

Vielen Dank im voraus.
Persönliche Seite
Faktor rausziehen
Faktor Erweitern mit zum Beispiel 256/9. (Irgendwas mit 2^n/9 an dieser 
Stelle ist sinnvoll. Wobei vielfache von n mit 8 am allereinfachsten 
dividiert werden können).
Vereinfachen und Zähler runden (Sodass man einen Integer bekommt).
Umstellen, sodass Division als letztes ausgeführt wird.

Jetzt hast du keine wirkliche Division mehr. Das Teilen durch 256 wird 
durch einfaches Weglassen des untersten Bytes gemacht.

Beachte aber, dass du durch die Rundung von 100*256/9 einen Fehler 
reinbekommst. Je nach Größe der Variable Winkel und maximal erlaubtem 
Fehler musst du mit 65536/9 erweitern.
Beachte auch, dass Überläufe bei der Multiplikation im Zähler entstehen 
können. Also auch hier wieder auf deinen Wertebereich achten.
Gast
> Mit Schieben geht das auch:

Ach, echt? Ich dachte, Simon hätte seine Umformung derart, dass im 
Nenner nur noch Zweierpotenzen stehen, nur zum Spaß gemacht.
Gast
@Detlef_a

Dein PDF sieht interesant aus. Was steht auf den Seiten
0-201 und 202ff; also was ist das für ein Buch/Script?

Ist der Rest empfehlenswert?

avr

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.