16.16-Format
Jede Variable besteht also aus 2 Worten, wobei das H-Wort alles
ganzzahlige erfasst und das L-Wort alle Kommastellen.
HW1.LW1 * HW2.LW2 = LW1 * LW1 + HW1 * LW2 + HW2 * LW1 + HW1 * HW2
Hierbei musst du beachten, dass die Wertigkeiten in den Produkten
verschieden sind. Also:
0.16 * 0.16 => 0.32 (davon kannst du also die niedrigsten 16 Bit direkt
verwerfen)
0.16 * 16.0 => 16.16 (das erfässt du alles direkt)
16.0 * 16.0 => 32.0 (hier musst du die oberen 16 Bit verwerfen ->
Zahlenüberlauf in deinem Format)
Du musst nur die Ergebnisse entsprechend ihrer Wertigkeiten summieren
und dann passt das Ergebnis. Für Sättigung bzw. Überlauf musst du
selbst sorgen.
Zum Thema SS, US, SU bzw. UU empfehle ich dir ein genaueres Studium der
Datenblätter/AN von AD. Wenn du dein Zahlenformat signed machen willst,
dann musst du die H-Teile mittels SS, die "Querprodukte" mit US bzw.
SU und die L-Teile mit UU multiplizieren.
So, und jetzt lass mal ein wenig Eigeninitiative und Kreativität
erkennen :)
Alex