0 Daumen
659 Aufrufe

Ich betrachte folgenden Maschienzahlenbereich $$ F=F(2,5,-5,5), \quad x=\Bigg(\frac{2}{9}\Bigg)_{10}, \quad y=\Bigg(\frac{1}{2}\Bigg)_{10}$$

Gesucht ist eine Rundung für den Ausdruck y-x.

Exaktes Ergebnis:

$$ y-x=\frac{5}{18}\approx 0,2778 $$

Gerundet:

$$ \Bigg(\frac{2}{9}\Bigg)_{10}=(0,\overline{001110})_2\\\Bigg(\frac{1}{2}\Bigg)_{10}=(0,1)_2 \\[30pt] rd(x)=(1,1100)_2\cdot 2^{-3}\\rd(y)=(1,0000)_2\cdot 2^{-1} $$

Also:

$$ y \ominus x = rd\big((1,0000)_2\cdot 2^{-1}-(1,1100)_2\cdot 2^{-3}\big)\\\stackrel{(1)}{=}rd\big((100,00)_2\cdot 2^{-3}-(1,1100)_2\cdot 2^{-3}\big)\\\stackrel{(2)}{=}rd\big((100,00)_2\cdot 2^{-3}+(0,0100)_2\cdot 2^{-3}\big)=rd\big((100,01)_2\cdot 2^{-3}\big)\\=(1,0001)_2\cdot 2^{-1}=0,53125 $$

(1) Bringe den Exponenten auf denselben Wert.

(2) Bilde das 2er-Komplement: 1,1100 ---> 0,0011+0,0001=0,0100

Ich finde nicht den Fehler, den ich hier begangen habe.


EDIT: rd ist die Rundungsfunktion, also eine Abbildung rd:ℝ -> F .

Avatar von

1 Antwort

+1 Daumen
 
Beste Antwort

Bei der Berechnung des Zweierkomplements muss man beachten, an welcher Stelle das höchstwertige Bit (Vorzeichenbit) steht. Wegen $$ rd(x) = bin(001.11)* 2^{-3} \\ rd(y) = bin(100.0)*2^{-3}$$könnte man das Vorzeichenbit einfach voranstellen (aber eben für alle Werte an derselben Stelle)$$ rd(x) = bin(0 001.11)* 2^{-3} \\ rd(y) = bin(0100.0)*2^{-3}$$Das Zweierkomplement von rd(x) sieht nun so aus
000111 -> 111000 -> 111001$$-rd(x) = bin(1110.01)* 2^{-3} $$Dann addieren
$$bin(0100.0)*2^{-3} + bin(1110.01)*2^{-3} = bin(0010.01)*2^{-3} = 0.28125$$Der Rundungsfehler liegt bei ~ 0,003472

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community