Theoretische und technische Informatik - ganz praktisch
Herzlich willkommen auf der Question/Answer-Plattform zu Grundlagen der Informatik II. Wir wünschen Ihnen viel Spaß beim Lernen und Diskutieren!
Loggen Sie sich mit Ihrem KIT-Account (u...) ein, um loszulegen!
Beachten Sie auch diese Informationen zum Schnelleinstieg.
(Nicht-KIT-Studierende beachten bitte diese Informationen.)

Schöne Ferien!
 

 

Addition von Gleitpunktzahlen

+2 Punkte
441 Aufrufe
1. Mantisse: Nachdem man die Mantisse verschoben hat und die Mantissen daraufhin addiert bzw. wie in dieser Aufgabe subtrahiert hat muss man hier die führende 0 und die darauffolgende 1 streichen, um die neue Mantisse zu erhalten. Wenn ich jetzt einen anderen Fall hätte (dh. andere Verschiebung der Mantisse und ggf Addition statt Subtraktion usw.), was muss ich dann streichen? Ich verstehe hier noch nicht, was genau gestrichen werden muss.

2. Charakteristik: Die größere Charakteristik wird genommen und die Anzahl führender Nullen im Ergebnis der Addition/Subtraktion der Mantissen abgezogen. Hier verstehe ich auch noch nicht, warum sich die Charakteristik so berechnet und wie ich in einem anderen Fall vorgehen müsste bzw was ich in einem anderen Fall genau abziehen müsste.

Schon mal vielen Dank für die Antwort!
Gefragt 13, Feb 2016 in ZAH-AH von uedqa uedqa Eins-Komma-Null-Anwärter(in) (1,550 Punkte)  

Eine Antwort

+3 Punkte

Hallo,

erstmal ist glaube ich die angegebene Aufgabe nicht ganz das, was du im Text meinst, ich gehe aber mal allgemein auf deine Fragen ein:

1. Der wichtige Punkt hier ist, warum wir bei einer Addition bzw. Subtraktion unter Umständen die Mantissen gegeneinander verschieben müssen. Mir hilft es, sich die Mantisse als die Angabe der tatsächlichen Zusammensetzung der Zahl aufzufassen und die Charakteristik als ihre "Größenordnung". Also ähnlich den mit 10er-Potenzen dargestellten Zahlen (z.B. 1,234*10^4), bei denen die vordere Zahl die Genauigkeit angibt und die Potenz ihre "Größe".

Wir müssen also die Mantissen genau dann verschieben, wenn die Charakteristiken der zu addierenden bzw. subtrahierenden Zahlen verschieden sind, sie also in verschiedenen "Größenordnungen" sind.

Beispiel: A + B

Wenn die Charakteristik der Zahl A um eins größer ist (ich hoffe die Zahlendarstellung an sich ist klar, das heißt nämlich einfach, dass die größte Zweierpotenz um eins höher ist als bei B), dann verschieben wir die Mantisse von B gegenüber A um eins nach rechts. Die linkeste Stelle von B steht dann unter der zweiten von links von A. Analog geht es bei größeren Unterschieden in der Charakteristik.

Jetzt WICHTIG: Die bei der Umwandlung in die IEEE 754-Darstellung ausgelassene führende 1 muss hier natürlich wieder beachtet werden (wie gesagt, die normale Zahlendarstellung setze ich aktuell mal voraus). Das heißt, vor jede der zwei Zahlen A und B schreibt man links noch eine 1.

Dann führst du wie gewohnt die Addition der Mantissen durch (normale Binäraddition) und bekommst ein Ergebnis.

Durch Verschiebung, führende 1 und ggf. einen Übertrag ist das Ergebnis unter Umständen länger als die normalen 23 Stellen.

Hier kommt dann deine Frage 2 ins Spiel: Wir müssen ggf. die Charakteristik anpassen. Dazu nehmen wir die Charakteristik der größeren Ausgangszahl, also auch die Zahl, die in unserer Addition "weiter links" stand.

Die Anpassung der Charakteristik geschieht nun danach, wo von links gesehen die erste 1 im Ergebnis steht. Steht sie direkt unter der vordersten Stelle der größeren Ausgangszahl, musst du nichts anpassen. Ist sie davon verschoben (durch Übertrag nach links bzw. bei Subtraktion nach rechts), so musst du anpassen. Die Anpassung bestimmt sich dann dadurch, wie weit links bzw. rechts sie vom Ausgangspunkt steht (mathematisch natürlich, was nun unsere neue größte Zweierpotenz ist).

Die Charakteristik wird dann um diese Anpassung verändert, sprich die 8-Bit Zahl vergrößert bzw. verringert.

So, dann der letzte Schritt, die neue Mantisse: Hierzu wird wieder das Ergebnis der Addition der Mantissen betrachtet und wie gewohnt die führende 1 ausgelassen (ist ja schon wieder in der Charakteristik berücksichtigt). Der Rest wird abgeschrieben und bildet die neue Mantisse. Sollte es durch Verschiebung zunächst eine zu lange Mantisse geben, dann muss ggf. am Ende gerundet werden (siehe dazu einen anderen Eintrag hier im Forum, das würde hier auf jeden Fall zu weit führen, also nur der Vollständigkeit halber!).

Mal wieder eine sehr lange Antwort, allerdings war die Frage auch sehr allgemein. Ich hoffe, du kannst damit was anfangen und verstehst das System hinter Addition und Subtraktion etwas besser.

Viele Grüße

Max (Tutor)

Beantwortet 14, Feb 2016 von udebm udebm Tutor(in) (105,070 Punkte)  
...