Q1.7 + Q2.6 = Q2.6 Soweit ich es verstanden habe ist das Q-Format die Menge an Werten, die mit einer bestimmten Wortlänge und einer bestimmten Interpretation der Bitfolge, zwischen zwei Zahlen abgebildet werden kann. Was sind bedeuten nun aber diese Zahlen hinter dem Q und was bedeutet die obere Aussage?
Soweit ich ganz entfernt in Erinnerung habe, sind das die Vorkomma- und Nachkommastellen. Das würde bedeuten, dass die Summe einer Zahl mit einer Vor- und sieben Nachkommastellen und einer Zahl mit zwei Vor- und sechs Nachkommastellen eine Zahl mit zwei Vorkomma- und sechs Nachkommastellen ist. Das wäre auch sinnvoll, da man die zwei Vorkommastellen im Ergebnis irgendwie darstellen muss und dafür bei acht Bit eine Nachkommastelle wegfallen lassen kann, die sowieso im Ergebnis nicht relevant ist. Es kann aber auch sein, dass im komplett falsch liege.
Dussel schrieb: > Es kann aber auch sein, dass im komplett falsch liege. Nee, das stimmt schon so. Wenn man das genauer aufdröselt (ich zitiere mal aus "Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C"), dann gibt es zwei Formate: "UQm.n" bedeutet 'm' Bits vor dem Komma, 'n' Bits hinter dem Komma, unsigned. UQ5.3 sind also 8 Bit lang, das MSB hat die Wertigkeit 2^4 und das LSB die Wertigkeit 2^(-3). "Qm.n" bedeutet 'm-1' Bits vor dem Komma, 'n' Bits hinter dem Komma, signed mit Vorzeichenbit. Q4.3 ist also 8 Bit lang, das MSB hat die Wertigkeit 2^3 und das LSB die Wertigkeit 2^(-3) und das Vorzeichenbit gibt an, ob die Zahl negativ ist (1) oder nicht (0). Q7 ist eine Abkürzung und steht für Q0.7, weil man oft nur Zahlen im Bereich 0..1 oder -1..+1 braucht. Nachtrag: In der Realität wird die Trennung in UQm.n und Qm.n oft nicht vorgenommen. Was genau gilt, hängt also davon ab, wie der Rest der Umgebung (z.B. das Datenblatt vom Chip oder der Compiler) das definiert; sollte meist drinstehen oder anhand eines Beispieles erkennbar sein.
:
Bearbeitet durch User
LuisBaatz schrieb: > Q1.7 + Q2.6 = Q2.6 > > Was sind bedeuten nun aber diese Zahlen hinter dem Q und > was bedeutet die obere Aussage? Die obere Aussage bedeutet, dass bei deiner Rechnung etwas Genauigkeit verloren geht, um den Wertebereich einzuhalten. Q2.6 kann größere Zahlen darstellen, Q1.7 kann Zahlen genauer darstellen. Die Summe von beiden muss in jedem Fall die größere Zahl darstellen können (sonst ist das Ergebnis schlicht falsch), verliert also die höhere Genauigkeit des ersten Summanden. Überträge werden nicht berücksichtigt, d.h. ein Überlauf kann trotzdem stattfinden; um das zu verhindern, brauchst du mehr Bits.
LuisBaatz schrieb: > Q1.7 + Q2.6 = Q2.6 > Was sind bedeuten nun aber diese Zahlen hinter dem Q Q1.7: 8-Bit Zahlendarstellung mit einem Vorzeichen-Bit, keinem Integer-Teil (Null Integer-Bits), sieben Bruchteil-Bits. Q2.6: 8-Bit Zahlendarstellung mit einem Vorzeichen-Bit, einem Integer-Bit, sechs Bruchteil-Bits. > und was bedeutet > die obere Aussage Das auf dem System für das die Aussage getroffen wurde bei der Addition einer Q1.7 mit einer Q2.6 Zahl das Ergebnis als Q2.6 dargestellt wird. Ob das LSB der Q1.7 Zahl dabei einfach abgeschnitten wird oder welche andere Rundungsvorschrift vor oder nach der Addition verwendet wird ist nicht gegeben.
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.