• Keine Ergebnisse gefunden

Binäre Gleitkommazahlen

N/A
N/A
Protected

Academic year: 2022

Aktie "Binäre Gleitkommazahlen"

Copied!
26
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Gleitkommazahlen

(2)

Reelle Gleitkommazahlen

Kleine Zahl Große Zahl Beispiel

Wissenschaftliche Darstellung

(eine Ziffer links des Kommas) Normalisierte Darstellung

(keine führende Null)

(3)

Binäre Gleitkommazahlen

Was ist der Dezimalwert der binären Gleitkommazahl 101,1001?

Was bedeutet 11,011 * 22?

Also: mit 2i multiplizieren verschiebt das Komma um i Stellen nach rechts.

Analog: mit 2‐i multiplizieren verschiebt das Komma um i Stellen nach links.

(4)

Binäre Gleitkommazahlen

Was ist die wissenschaftliche, normalisierte Darstellung der binären  Gleitkommazahl zur dezimalen Gleitkommazahl 0,625?

(5)

Betrachte die recht harmlose Dezimalzahl 0,8.

Für die folgende unendliche Reihe rechnet man leicht nach:

(2‐1 + 2‐2) + (2‐5 + 2‐6) + (2‐9 + 2‐10) + (2‐13 + 2‐14) + ... = 4/5 = 0.8 Folglich ist die Binärdarstellung von 0.8 unendlich lang, nämlich:

0 , 1100 1100 1100 1100 1100 1100 1100 ...

Annahme wir speichern nur die ersten 32 Bits. Rechnet man in den  Dezimalwert x zurück, dann ergibt sich:

x = (2‐1 + 2‐2) + (2‐5 + 2‐6) + (2‐9 + 2‐10) + ... + (2‐29 + 2‐30)

= 858.993.459 / 1.073.741.824 = 0,79999999981373548508 ≠ 0,8 Oha, 0,8 ist scheinbar doch nicht so harmlos. Es gibt folglich Zahlen  mit endlicher dezimaler Gleitkommadarstellung, die binär nicht mit  endlicher Anzahl Bits darstellbar sind.

Nebenbemerkung

(6)

N‐Bit Darstellung von Gleitkommazahlen

Normalisierte, wissenschaftliche Darstellung zur Basis 2. Beispiel:

Allgemein:

Sign‐and‐Magnitude‐Darstellung für beispielsweise 32 Bits:

Tradeoff:

Viele Fraction‐Bits: hohe Genauigkeit der Fraction

Viele Exponent‐Bits: großer darstellbarer Zahlenbereich

s exponent fraction

1 Bit 8 Bits 23 Bits

(s=0 für „+“ und s=1 für „‐“)

(7)

Beispiel

Was ist der Dezimalwert x des folgenden Bit‐Strings?

10000010110110000000000000000000

s exponent fraction

1 Bit 8 Bits 23 Bits

(8)

Wertebereiche, Overflow und Underflow

s exponent fraction

1 Bit 8 Bits 23 Bits

Kleinste darstellbare nicht‐negative Zahl annähernd 2,0 * 10‐38 Größte darstellbare Zahl annähernd 2,0 * 1038

Was, wenn die darzustellende Zahl außerhalb dieses Bereichs ist?

Overflow: Zahl zu groß

(Exponent ist zu groß um im Exponent‐Feld darstellbar zu sein) Underflow: Zahl zu klein

(Negativer Exponent ist zu groß um im Exponent‐Feld darstellbar zu  sein)

(9)

Beispiel:

Double‐Precision hat höhere Genauigkeit der Fraction und mit  größerem Exponent auch einen größeren darstellbaren 

Zahlenbereich.

Double‐Precision in diesem Beispiel:

Kleinste darstellbare nicht‐negative Zahl annähernd 2,0 * 10‐308 Größte darstellbare Zahl annähernd 2,0 * 10308

Double‐ und Single‐Precision

s exponent fraction

1 Bit 8 Bits 23 Bits

s exponent fraction

1 Bit 11 Bits 52 Bits

Insgesamt 32 Bits

Insgesamt 64 Bits Single‐

Precision

Double‐

Precision

(10)

Der Zahlenformatstandard IEEE 754

s exponent fraction

1 Bit 8 Bits 23 Bits

Insgesamt 32 Bits Single‐

Precision

s exponent fraction

1 Bit 11 Bits 52 Bits

Insgesamt 64 Bits Double‐

Precision

Bit‐Aufteilungen in dieser Form sind in IEEE 754 spezifiziert.

Betrachte die wissenschaftliche, normalisierte Darstellung:

[+ oder ‐] 1,xxxxxxxx * 2yyyy

Beobachtung: die „1“ vor dem Komma ist redundant.

Somit: Bei IEEE 754 wird die „1“ implizit angenommen und in 

„fraction“ nicht codiert. „fraction“ speichert nur Nachkommastellen.

(11)

Beispiel

Es sei die „1“ vor dem Komma implizit angenommen. „Fraction“ 

speichere damit nur die Nachkommastellen. Was ist der  Dezimalwert x des folgenden Bit‐Strings?

1000001010110000000000000000000

s exponent fraction

1 Bit 8 Bits 23 Bits

(12)

Weitere Eigenschaften von IEEE 754

Unterscheidung von „Fraction“ und „1+Fraction“ in der Darstellung (‐1)S * (1 + Fraction) * 2Exponent

1+Fraction wird als Significant (deutsch: Mantisse) bezeichnet.

(13)

Motivation für eine geeignete Exponent‐Darstellung

Annahme: Exponent wäre mit Zweierkomplement dargestellt. Wie  macht man einen Größer‐Kleiner‐Vergleich der folgenden beiden  Zahlen?

Zahl 1: 000000111101000100000000000000000 Zahl 2: 011010111010010000010000000000000

1. Vergleiche erst mal die Vorzeichenbits. Bei unterschiedlichen  Vorzeichenbits ist der Vergleich beendet.

2. Vergleiche die Exponenten. Ist einer größer als der andere, ist  der Vergleich beendet. (Signed‐Vergleich)

3. Vergleiche die Fractions. (Unsigned‐Vergleich) Kann man Schritt 2 und 3 in einem durchführen? 

Kleinster Exponent müsste 00000000 und größter Exponent müsste 11111111  sein, dann könnte man Exponent und Fraction für einen Vergleich einfach 

konkatenieren.

(14)

Darstellung des Exponenten in Biased‐Notation

Erinnerung: Biased‐Notation (hier mit 8‐Bit und Bias 127):

0000 0000 = -127 (0-Bias = -127) 0000 0001 = -126 (1-Bias = -126)

...

0111 1110 = -1 (126-Bias = -1) 0111 1111 = 0 (127-Bias = 0) 1000 0000 = 1 (128-Bias = 1)

...

1111 1110 = 127 (254-Bias = 127) 1111 1111 = 128 (255-Bias = 128)

Zusammengefasst: Der Wert x einer Zahl in IEEE 754 Darstellung ist

(15)

IEEE 754 Encoding

Wie stellt man im IEEE 754 Format eigentlich die „0“ dar!?

(‐1)

S

*  (1 + Fraction)  * 2

(Exponent—Bias)

Single‐Precision  (Bias=127)

Double‐Precision 

(Bias=1023) Dargestelltes Objekt

Exponent Fraction Exponent Fraction

0 0 0 0 0

0 Nicht‐Null 0 Nicht‐Null (+/‐ Denormalised Number) 1 bis 254 Beliebig 1 bis 2046 Beliebig +/‐ Gleitkommazahl

255 0 2047 0 +/‐ Unendlich

255 Nicht‐Null 2047 Nicht‐Null NaN (Not a Number)

(16)

Quiz

Betrachte IEEE 754 Single‐Precision, also Bias = 127. Was ist der  Dezimalwert der folgenden Binärzahl?

010000000110000000000000000000000

(‐1)

S

* (1 + Fraction) * 2

(Exponent—Bias)

(17)

Quiiiiz

Bestimme S, Fraction und Exponent der IEEE 754 Single‐Precision  Repräsentation (also Bias = 127) der Dezimalzahl ‐0.75.

(‐1)

S

* (1 + Fraction)  * 2

(Exponent—Bias)

(18)

Gleitkommaarithmetik

(19)

Gleitkommaarithmetik

Addition von binären n‐Bit Gleitkommazahlen

(20)

Vorüberlegung

Addition mit gleichem Exponent (Nachkomma mit 4 Bits kodiert):

Addition mit unterschiedlichen Exponenten (Nachkomma 4 Bits):

(21)

Vorüberlegung

Ergebnis muss unter Umständen wieder normalisiert werden:

Bei Einschränkung auf n Bit (z.B. Nachkomma auf 4 Bit einge‐

schränkt) kann dies anschließendes Auf‐ bzw. Abrunden erfordern.

Beispiel: Runden nach der „Schulmethode“

(22)

Vorüberlegung

Das Runden kann ggf. neues Normalisieren erforderlich machen:

Normalisierungen können Overflows und Underflows hervorrufen.

Beispiel: IEEE 754 Single‐Precision erlaubt Exponenten von ‐126 bis  127. Somit ist zum Beispiel:

(23)

Additionsalgorithmus

2 Beispiele: 4 Bit für die Mantisse 

und 8 Bit für den Exponenten. Start

(1) Vergleiche Exponenten  der beiden Zahlen. Shifte die 

kleinere Zahl nach rechts, so  dass der Exponent mit dem  Exponent der größeren Zahl  übereinstimmt. (Mantissen‐

Alignment)

(2) Addiere die Mantissen.

Beispiel 1 Beispiel 2 1,000 * 2‐1

‐ 1,110 * 2‐2

1,001 * 210 + 1,101 * 211 (1)

(2)

(24)

Additionsalgorithmus

2 Beispiele: 4 Bit für die Mantisse 

und 8 Bit für den Exponenten. (3) Normalisiere die Summe,  entweder durch Rechts‐Shift

und hoch setzen oder durch  Links‐Shift und runter setzen 

des Exponenten.

„Exception“

Overflow oder 

Underflow? ja nein

Im Beispiel 8‐Bit für den Exponenten.

Beispiel 1 Beispiel 2

(2) 0,001 * 2‐1 10,001 * 211 (3)

(25)

Additionsalgorithmus

2 Beispiele: 4 Bit für die Mantisse  und 8 Bit für den Exponenten.

Fertig

Immer noch  normalisiert?

(4) Runde die Mantisse auf  die verfügbare Anzahl Bits.

ja

nein zurück nach (3)

Beispiel 1 Beispiel 2

(3) 1,000 * 2‐4 1,0001 * 212 (4)

(26)

Noch eine Bemerkung

Betrachte die folgenden binären Floats mit 8‐Bit Mantisse: 

x = −1,100 000 * 2100,     y = 1,100 000 * 2100 , z = 1,000 0000 Was ist x + (y + z)?

Was ist (x + y) + z?

Somit ist x + (y + z) ≠ (x + y) + z, d.h. die Gleitkommaaddition ist  nicht assoziativ!

Quiz: Was ist die Konsequenz, wenn man x1 + x2 + ... + xn parallel  berechnen möchte?

Referenzen

ÄHNLICHE DOKUMENTE

Die Vorausberechnung des Zusammenhangs zwischen Dampf- und Flüssigkeitskonzentration für Vielstoffgemische gelingt nur für ideale.. Gemische unter Annahme der Gültigkeit des

• Jeder Schlüssel im linken Teilbaum eines Knotens ist kleiner als der Schlüssel im Knoten selbst. • Jeder Schlüssel im rechten Teilbaum eines Knotens ist grösser als oder gleich

Entsteht nach dem Einfügen oder Entfernen eines Knotens ein unausgeglichener Knoten der Situation 1 oder 2, kann dieser Knoten durch eine einfache Rotation wieder ausgeglichen

F¨ur die Multiplikation und die Division ist dagegen die Vorzeichen/Betrag- (und nat¨urlich die vorzeichenlose) Interpretation besonders geeignet: Der Betrag des Ergebnisses ergibt

[r]

Kleinster Exponent müsste 00000000 und größter Exponent müsste 11111111  sein dann könnte man Exponent und Fraction für einen Vergleich

Ich hätte gern eine Tasse Kaffee Schlagsahne ein Stück Apfeltorte oder einen Amerikaner.. Auch Hauptsätze können mit Kommas aneinander gehängt

Andere vermuten vielleicht dass die Räder eiern würden und man sich deshalb kaum im Sattel halten könnte.. Weil Holz aber so ein besonderer Werkstoff ist trifft das alles