Umrechnung Zahlenformat G1,15 nach dezimal

OP #1054098
Hi,
ich versuche mich gerade an einem Signalprozessor und möchte ein Filter 
berechnen. Der DSP verarbeitet vorzeichenbehaftete Zahlen im Format 
G1,15.
Damit ich kontrollieren kann, ob alles richtig gerechnet wird, suche ich 
eine einfache Möglichkeit, eine solche Zahl auf dem PC in einen 
Dezimalwert umzurechnen und umgekehrt.
Im großen Internet bin ich leider nicht fündig geworden.
Kennt vielleicht jemand ein solches Programm oder Internetformular?

Jürgen
OP
Vielen Dank für die Antwort. Leider trifft sie noch nicht den Kern, weil 
ich wahrscheinlich zu wenig geschrieben habe.
Ein Beispiel. Wenn ich im Debugger eine Filterformel ablaufen lasse und 
mir am Ende das Ergebnis ansehe, bekomme ich einen binären Wert 
angezeigt. Es ist ein Festkommaformat G1,15.
Nun möchte ich als Mensch gern wissen, wie die Zahl im Dezimalsystem 
aussieht. Vielleicht möchte ich gern eine andere Zahl drüberschreiben. 
Dann benötige ich eine Konvertierung dieser Zahl in das Festkommaformat 
des Prozessors.
Eigentlich wollte ich den Prozessor programmieren möchte und nicht 
Konvertierungsprogramme. Wurde so was nicht schon lange erfunden?
Jürgen
Gast
Jürgen,

das was du meinst IST das fractional format.

Bsp: 0.4563 in Q1.15 ausgedückt. Dazu wird die Zahl mit 2^15 
multipliziert und nur die Ganzzahl verwendet.

0.4563 * 2^15 = 14952.0384  --> Verwende nur 14952 zum Rechnen im uC, 
der Datentyp ist dann INT (16 BIT)

um diese Q1.15 Zahl wieder in eine vom Menschen lesbare Zahl um zu 
wandeln, muss diese durch 2^15 geteilt werden. Das Ergebnis muss aber in 
float dargestellt werden.

also: 14952 / 2^15 = 0.456298....

Durch die Quantisierung bekommt man einen kleinen Fehler..


DK
OP
Heute habe ich nachgerechnet. Das Ergebnis beträgt tatsächlich 
0.456298828125. Tolle Sache.
Bei negativen gebrochenen Zahlen habe ich die Regel aus dem Hinweis von 
hans angewandt und das negative Ergebnis der Multiplikation mit 2^15 von 
65536 abgezogen. Diese Zahl lässt sich dann wieder in eine Binärzahl 
umwandeln und in den Prozessor schieben.
Wahrscheinlich werde ich mir ein kleines Programm schreiben, dass diese 
Schritte für mich übernimmt.
Vielen Dank für die helfenden Hinweise!
Jürgen

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.