Festpunktmultiplikation mit negativen Zahlen

8

Ich bin ratlos über ein einfaches Problem. Angenommen, ich habe zwei 4-Bit-Zahlen im Q0.3-Format. Ein Vorzeichenbit und drei Bruchbits. So kann ich bis 0,875 darstellen .- -10,875

Angenommen , ich möchte diese Berechnung durchführen: . Welches ist:- -0,25×0,875

- -223×723

Das heißt, ich multipliziere ( - 2 ) mit 0111 ( 7 ). Natürlich lautet die Antwort - 0,21875 oder - 0,25 unter Verwendung der nächsten Q0,3-Zahl.1110- -201117- -0,21875- -0,25

Lass uns arbeiten.

1110×0111=01100010

, wenn man es als Q0.6-Zahl betrachtet , 1.100010 ist , was nach meinen Büchern - 0.46875 ist . Warum ist das falsch? Ich erwarte eine Antwort von 1.110010 ( - 0.21875 ).1.100010- -0,468751.110010- -0,21875

Was habe ich falsch gemacht?

benjwy
quelle

Antworten:

10

Wenn Sie die Zweierkomplementzahlen multiplizieren, müssen Sie Vorzeichenerweiterungen für die Operanden durchführen, um die Anzahl der Stellen zu erreichen, die Ihre Multiplikation ergibt, dh in Ihrem Fall Stellen.4+4=8

111111102×000001112=111100102

Da es Bruchbits gibt , ist das Ergebnis 1.110010 2 = - 1423. Das Normalisieren dieser Zahl auf3Bruchbits im Q0.3-Format ergibt1.1102=-0.25.1.1100102=- -1426=- -0,2187531.1102=- -0,25

Robin Klose
quelle