2.1.2 Gleitkommazahlen

Ähnliche Dokumente
6.2 Kodierung von Zahlen

BB/CS- SS00 Rechner im Überblick 1/1. Ein Stellenwertsystem (Zahlensystem) ist ein Tripel S = (b, Z, δ) mit den folgenden Eigenschaften:

Wertebereiche, Overflow und Underflow

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen

Grundlagen der Technischen Informatik. 4. Übung

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen

in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen

Grundlagen der Technischen Informatik. 4. Übung

Motivation 31. Mai 2005

2 Darstellung von Zahlen und Zeichen

Gleitkommaarithmetik. Erhöhen der Genauigkeit. Grundlagen der Rechnerarchitektur Logik und Arithmetik 124

HaDePrak WS 05/ Versuch

Vorlesung Programmieren

Kapitel 5: Darstellung von Daten im Rechner

Grundzüge der Informatik Tutorium Gruppe 6

Binäre Division. Binäre Division (Forts.)

Rechnergrundlagen SS Vorlesung

Die Zahl ist: (z 2, z 1, z 0 ) (z ) : 7 = 0 Rest z 2

Einführung in die Programmiertechnik

Lösung 2. Übungsblatt

Mathematische Werkzeuge für Computergrafik 2016/17. Gleitkommzahlen

Dezimalkomma (decimal point) rechts von Stelle mit Wertigkeit 100 nachfolgende Stellen haben Wertigkeit 10-1, 10-2, etc.

Binäre Gleitkommazahlen

Grundlagen der Technischen Informatik Wintersemester 12/13 J. Kaiser, IVS-EOS

Informatik I Modul 2: Rechnerarithmetik (1)

Modul 2: Rechnerarithmetik (1) Informatik I. Modul 2: Rechnerarithmetik (1) Rechnerarithmetik. Formale Grundlagen. Zahlensysteme (1) Zahlensysteme (2)

Einführung in die Informatik I

DuE-Tutorien 16 und 17

Technische Grundlagen der Informatik Kapitel 8. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt

3. Datentypen, Ausdrücke und Operatoren

Kapitel 1. Zahlendarstellung. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik

WH: Arithmetik: Floating Point

Zum Nachdenken. Wenn die Zahl (123) hat, was könnte dann (123,45) 10

Numerik. Festpunkt-Darstellung

2 Darstellung von Zahlen und Zeichen

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Übung Praktische Informatik II

RO-Tutorien 3 / 6 / 12

Rundungsfehler-Problematik bei Gleitpunktzahlen

Computer Arithmetik. Computer Arithmetik Allgemein

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer?

Informationsdarstellung 2.2

2 Rechnen auf einem Computer

TI II: Computer Architecture Data Representation and Computer Arithmetic

Darstellung von Zeichen und Zahlen

Dipl.-Ing. Halit Ünver Datenbanken/Künstliche Intelligenz FAW/n. Zahlensysteme

Zahlen in Binärdarstellung

Darstellung rationaler und reeller Zahlen Vorlesung vom

II. Grundlagen der Programmierung

B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Z = a 0 B 0 + a 1 B 1 + a 2 B a n-1 B n-1

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit

1. Vorzeichen und Betrag (engl. Sign-/Magnitude) 2. Stellenkomplement 3. Basiskomplement

1.5 Einführung und Zahlensysteme/Darstellung gebrochener Zahlen

TeI = 1 D C = C. Rechnerarchitektur I Informationsverarbeitung. Technische Universität Dresden Institut für Technische Informatik

Rechnerstrukturen. Michael Engel und Peter Marwedel. Sommer TU Dortmund, Fakultät für Informatik

Numerische Lineare Algebra

Arithmetik: Vorzeichenregeln und Überlauf, Exponenten & Normalisierung, Umrechnungen. Architektur: - Rechnerarchitektur, Instruktionssatz, Assembler

Einführung in die Informatik

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

Numerische Verfahren und Grundlagen der Analysis

, 2015S Übungstermin: Mi.,

Grundlagen der Informatik I ATI / MB

Binärdarstellung von Fliesskommazahlen

Kapitel 6 Darstellung von Daten im Rechner. Kapitel 6: Darstellung von Daten im Rechner Seite 1 / 63

Lösungsvorschlag 6. Übung Technische Grundlagen der Informatik II Sommersemester Aufgabe 6.1: Multiplikation von positiven Dualzahlen

1. Tutorium Digitaltechnik und Entwurfsverfahren

Rechnerarithmetik. Vorlesung im Sommersemester Eberhard Zehendner. FSU Jena. Thema: Fest- und Gleitkommasysteme

5 Zahlenformate und deren Grenzen

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation

Datendarstellung Teil 2

Computer-orientierte Mathematik

Numerische Programmierung Konkrete Mathematik

2.5 Primitive Datentypen

Grundlagen der Rechnerarchitektur. Binäre Logik und Arithmetik

Reelle Zahlen. Kapitel Der Körper der reellen Zahlen

Datendarstellung Teil 2

a) Da die Zahlen im IEEE-32Bit-Format dargestellt werden sollen, ist der Bias = 127.

Grundstrukturen: Speicherorganisation und Zahlenmengen

Numerisches Programmieren

Zahlen. Bernhard Ganter. Institut für Algebra TU Dresden D Dresden

Grundlagen der Rechnerarchitektur. Binäre Logik und Arithmetik

1. Rechnerzahlen, Kondition, Stabilität

Zahlenformate. SigProc-4-Zahlenformate 1

2.5. Gleitkommaarithmetik

Computerarithmetik ( )

3. Datentypen, Ausdrücke und Operatoren

Inhalt: Binärsystem 7.Klasse - 1 -

6. Zahlendarstellungen und Rechnerarithmetik

Unter den endlich vielen Maschinenzahlen gibt es zwangsläufig eine größte und eine kleinste:

Zahlensysteme. Formale Methoden der Informatik WiSe 2010/2011 Folie 1 (von 71)

Programmieren. Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 2008/2009. Prof. Dr. Christian Werner

Numerik für Ingenieure I Wintersemester 2008

Numerische Programmierung

2 Repräsentation von elementaren Daten

Rechnerstrukturen WS 2012/13

Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013

Das Rechnermodell - Funktion

Transkript:

.1. Gleitkommazahlen

Überblick: Gleitkommazahlen Gleitkommadarstellung Arithmetische Operationen auf Gleitkommazahlen mit fester Anzahl von Mantissen- und Exponentenbits Insbesondere Rundungsproblematik: Ergebnisse von arithmetischen Operationen sind evtl. nicht (exakt) als Gleitkommazahl darstellbar (auch wenn sie im Bereich zwischen größter und kleinster darstellbarer Zahl liegen). Man will zumindest den Fehler möglichst gering halten: Rundung Verschiedene Rundungsmodi

Gleitkommadarstellung Idee: Repräsentiere Zahl durch Vorzeichen, Exponent und Mantisse, Position des Kommas liegt (im Gegensatz zu Festkommazahlen) also nicht fest! Abdeckung eines größeren Zahlenbereichs bei gegebener Stellenanzahl Gleitkommadarstellung einfacher Genauigkeit: (-1) S M E 31 30 9 8 7 6 5 4 3 1... 3 1 0 S Exponent E Mantisse M Gleitkommadarstellung doppelter Genauigkeit: (-1) S M E 63 6 61... 53 5 51 50... 3 1 0 S Exponent E Mantisse M Es bleibt noch festzulegen, wie die Mantissenbits bzw. Exponentenbits als Zahlen M bzw. E interpretiert werden sollen.

Normalisierte Gleitkommadarstellungen Beobachtung Gleitkommadarstellung einer Zahl ist nicht eindeutig! 0.111 3 = 0.0111 4 Definition Eine Gleitkommazahl (S,M,E) heißt normalisiert, wenn 1 M< d.h. wenn M von der Form 1.m -1... m -k ist. Die 1 vor dem Komma braucht nicht abgespeichert zu werden ( hidden bit ) 31 30 9 8 7 6 5 4 3 1... 3 1 0 S Exponent E Mantisse m m -1 m -...... m -3 Für eine normalisierte Gleitkommazahl ergibt sich der Mantissenwert M als M = 1 + S i= -1,...,-k m i i. Die Zahl 0 muss als Spezialfall behandelt werden!

Gleitkommadarstellung - IEEE 754 Standard 31 30 9 8 7 6 5 4 3 1... 3 1 0 S Exponent E Mantisse m e 7 e 6... e 0 Gemäß IEEE 754-Standard werden die Exponentenbits als vorzeichenlose Zahl interpretiert. Diese Zahl wird als Charakteristik C bezeichnet. Um auch negative Exponenten darstellen zu können, wird von der Interpretation als vorzeichenlose Zahl eine Konstante, der sogenannte Bias, subtrahiert. Bei n Exponentenbits wird der Bias gewählt als BIAS = n-1-1, also bei einfacher Genauigkeit BIAS = 17, bei doppelter Genauigkeit BIAS = 103. Bei n Exponentenbits ergibt sich also für E: E = C-BIAS = S i= 0,...,n-1 e i i - BIAS

Gleitkommadarstellung - IEEE 754 Standard 31 30 9 8 7 6 5 4 3 1... 3 1 0 S Exponent E Mantisse m e 7 e 6... e 0 m -1 m -...... m -3 Insgesamt ergibt sich also bei k Nachkommastellen der Mantisse und n Exponentenbits der folgende Wert für die Gleitkommazahl: ( 1) S M E = ( 1) S ( 1 + k i= 1 Die Charakteristiken <1...1>= n -1 und <0...0>=0 sind für spezielle Zwecke reserviert (siehe später) und werden für normalisierte Gleitkommazahlen nicht verwendet. n k Damit ist die größte darstellbare Zahl ( ) ( 1 1 ) Und die betragsmäßig kleinste darstellbare Zahl n 1 + m i i ) n 1 i= 0 e i i BIAS

Gleitkommadarstellung - IEEE 754 Standard ( ) ( Natürlich sind nicht alle reellen Zahlen zwischen und n 1 + darstellbar. Darstellbar sind nur Zahlen auf einem bestimmten Raster. Das Raster wird eng bei kleinen Zahlen und weit bei großen Zahlen. Beispiel: Sei k= und zur Illustration der Exponent aus {-1, 0, 1, }. k n 1 1 ) Problem: Ganz dicht bei 0 gibt es eine Lücke. Grund ist das hidden bit 1.m -1... m -k.

Gleitkommadarstellung Beispiel: Sei k= und zur Illustration der Exponent aus {-1, 0, 1, }. Problem: Lücke bei 0. Abhilfe: Erlaube dicht bei 0 (wenn Exponent minimal, hier also -1) auch Zahlen ohne hidden bit, sog. denormalisierte Zahlen der Form 0.m -1... m -k.

Sonderfälle IEEE 754 Standard Der Exponent 0 spielt beim IEEE 754-Standard eine Sonderrolle: Sind alle Exponentenbits 0, so wird ausnahmsweise das hidden bit der Mantissendarstellung weggelassen, so dass die Zahl dargestellt wird. (S i= -1,...,-k m i i ) -16 Auf diese Weise können denormalisierte Zahlen dargestellt werden, die kleiner als die kleinste darstellbare normalisierte Zahl sind. Die Null wird folgendermaßen dargestellt: Sämtliche Mantissenbits und Exponentenbits sind 0. Die Charakteristik n -1 spielt ebenfalls eine Sonderrolle: Sind alle Exponentenbits 1 und alle Mantissenbits 0, so wird der Wert dargestellt.

IEEE 754 Standard - Spezialfälle Normalisierte Zahl ± 0 < C< 55 (047) m beliebig Denormalisierte Zahl ± 0 m 0 beliebig Null ± 0 0 Unendlich ± 55 (047) 0 Not a Number ± 55 (047) m 0 beliebig

Darstellbare normalisierte Gleitkommazahlen single precision double precision Vorzeichenstellen 1 1 Exponentenstellen 8 11 Mantissenstellen (ohne hidden Bit) 3 5 Bitstellen insgesamt 3 64 Bias 17 103 Exponentenbereich -16 bis 17-10 bis 103 Darstellbare normalisierte Zahl mit kleinstem Absolutbetrag -16-10 Darstellbare normalisierte Zahl mit größtem Absolutbetrag (1- -4 ) 18 (1- -53 ) 104 Darstellbare denormalisierte Zahl mit kleinstem Absolutbetrag -149-1074 Darstellbare denormalisierte Zahl mit größtem Absolutbetrag (1- -3 ) -16 (1- -5 ) -10

IEEE 754 Standard - Eigenschaften Eindeutige Zahlendarstellung, falls auf normalisierte Darstellungen beschränkt Nicht alle Zahlen zwischen der kleinsten und größten darstellbaren Zahl sind darstellbar. Je näher bei der Null, desto dichter liegen die darstellbaren Zahlen. Arithmetische Operationen sind nicht abgeschlossen! Assoziativgesetz und Distributivgesetz gelten nicht, da bei Anwendung der Gesetze evtl. der darstellbare Zahlenbereich verlassen wird!

Multiplikation von Gleitkommazahlen VZ ) ) 1 E1 VZ E VZ1 VZ E1 + E ( ) M ( 1) M = ( 1) M M 1 1 1 Rechenvorschrift Multipliziere die Vorzeichen Multipliziere die beiden Mantissen Addiere die beiden Charakteristiken und subtrahiere (einmal) den Bias-Wert Normalisierung und/oder Rundung (falls erforderlich) Beispiel +(1.000) 1-BIAS -(1.110) -BIAS Multiplikation der Vorzeichen: 0 1=1 Multiplikation der Mantissen: (1.000) (1.110) = (1.110) Addition der Exponenten: (1-BIAS)+(-BIAS)=(1+-BIAS)-BIAS = = (3-BIAS)-BIAS Resultat: -(1.110) (3-BIAS)-BIAS

Multiplikation Vorzeichen Multiplikation der Mantissen Addition der Exponenten Normalisierung/Rundung

Normalisierung und Rundung sind interessant! Am Beispiel der Multiplikation einige Details Hier nur Multiplikation normalisierter Gleitkommazahlen.

Normalisierung nach Multiplikation M 1 M P M = p Stellen p Stellen p Stellen p Stellen Multiplikation der Mantissen M 1 und M (mit p Stellen - p enthält auch das hidden bit!) liefere Ergebnis der Länge p in P und M ; M enthält die LSB (Least Significant Bits) des Resultats

P M p 0 g r guard bit round bit sticky bits, s = sticky bits 1. Fall: MSB von P ist 0 P M 0 1 p 0 g r Komma 1 Shifte P um 1 Bit nach links und nehme g in P auf

. Fall: MSB von P ist 1 P M 1 rschiebe Komma g r r sticky bits Passe Position des Binärpunkts an durch - Division durch und - Addition des Exponenten um 1 - Das alte guard-bit wird Rundungsbit

Situation bei beiden Fällen: P M 1 p 0 r Komma sticky bits Führe nun Rundung durch!

Runden abhängig von r und s r = 0 P korrekt r = 1, s = 1 P+1 ist Ergebnis r = 1, s = 0 genau in der Mitte zwischen zwei darstellbaren Zahlen p 0 = 0 P korrekt p 0 = 1 P+1 ist Ergebnis round to even

Andere Rundungsarten Rundungsmodus Ergebnis 0 Ergebnis < 0 nearest (round to even) +1 falls (r s) (r p 0 ) 0 -- -- + +1 falls (r s) -- - -- +1 falls (r s)

Beispiel -5-1.010 10 1.010 3 Multipliziere und normalisiere/runde nach allen Rundungsarten. Wie groß ist der Unterschied?

Overflow Entsteht, falls nach dem Runden die Zahl zu groß ist. E E 1 + 17 + 17 Add ( E + E + 17 17) 1 Welche Werte kommen in Frage? Beh.:Für die Charakteristik können Werte zwischen -15 und 381 herauskommen! Berücksichtigt man Fall bei der Multiplikation der Mantissen, so können Werte zwischen -15 und 38 herauskommen. Ist die Charakteristik größer 54, so ergibt sich ein Overflow.

Underflow Ein kleines Ergebnis ist eventuell als denormalisierte Zahl darstellbar. Wenn beim Shiften nach rechts 0 entsteht, dann underflow. Beispiel: 1.000-64 1.000-65 = 1.000-19 = 0.001-16 Je nach Größe der Mantisse kann es einen Underflow geben.

Weitere Spezialfälle ±0 Ob ein Operand 0 ist, wird vorher überprüft ± Vorsicht: 0 = NaN (Definition) Die Details sind komplexer und umfassen weitere Spezialfälle Runden entfällt, falls ein Ergebnis mit doppelter Genauigkeit verlangt

Addition von Gleitkommazahlen ( E ) ( ) ( ) 1 E E1 E E1 M + M = M + M : E E ) 1 Rechenvorschrift Angleichung des kleineren an den größeren Exponenten Addition der Mantissen Normalisierung (falls erforderlich) Rundung (falls erforderlich) 1 (O.E. 1 Beispiel +(1.000) -1 + -(1.110) - = +(1.000) -1 + -(0.111) -1 = +(0.001) -1 = +(1.000) -4 Rundung nach der Normalisierung analog zur Multiplikation!

ivision von Gleitkommazahlen ( E ) ( ) 1 E E1 E M / M = M / M 1 Rechenvorschrift Division der Mantissen mit integer bzw. Festkomma-Dividierer Rundung analog Multiplikation 1

Bezug zu höheren Programmiersprachen Es gibt keinen Standard über die Handhabung von fp-operationen in höheren Programmiersprachen Beispiel: p sei einfach genau, q sei doppelt genau. p = q; /* Zuweisung, Rundung */ if (p == q) /* Bedingung nicht erfüllt?!? */

Bezug zu höheren Programmiersprachen () Optimierungen, die offensichtlich sind, können Ergebnisse verfälschen. Distributiv- und Assoziativgesetze gelten nicht nur wegen Bereichsüberschreitungen bei Anwendung der Gesetze nicht, sondern auch nicht wegen Rundungsfehlern! Alternative: Intervall-Arithmetik (Kulisch)