• Keine Ergebnisse gefunden

Double‐ und Single‐Precision

N/A
N/A
Protected

Academic year: 2022

Aktie "Double‐ und Single‐Precision"

Copied!
21
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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)

(2)

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

(3)

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.

(4)

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

(5)

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.

(6)

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.

(7)

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

(Single‐Precision (8‐Bit‐Exponent) Bias=127, Double‐Precision (11‐Bit‐Exponent) Bias=1023)

(8)

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)

(9)

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)

(10)

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)

(11)

Gleitkommaarithmetik

(12)

Gleitkommaarithmetik

Addition von binären n‐Bit Gleitkommazahlen

(13)

Vorüberlegung

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

Addition mit unterschiedlichen Exponenten (Nachkomma 4 Bits):

(14)

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“

(15)

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:

(16)

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)

(17)

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)

(18)

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)

(19)

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?

(20)

Gleitkommaarithmetik

Multiplikation von binären n‐Bit Gleitkommazahlen

(21)

Vorüberlegung

Multiplikation von zwei beliebigen binären Floats in normalisierter  Darstellung. Was ist der Exponent des Ergebnisses?

Multiplikation der Mantissen. Wo kommt das Komma hin?

Was ist das Vorzeichen v von x * y?

Referenzen

ÄHNLICHE DOKUMENTE

1) Karten mit schwarzen Zahlen der Reihe nach auslegen. Jeder schwarzen Zahl eine passende rote Zahl zuordnen, so dass das Ergebnis immer 10 ist. 2) Karten an zwei

2.4 Signed and Unsigned Numbers

Es sei t p der Propagation‐Delay und t f die  Transmission‐Time für einen Frame. Die  Gesamtzeit T für n Frames ist:.

Es sei t p der Propagation‐Delay und t f die  Transmission‐Time für einen Frame. Die  Gesamtzeit T für n Frames ist:?.

Spannbaum des folgenden Graphen.. Zur Kollisionsverwaltung werden einfah verkette Listen verwendet.. Sie können dabei annehmen, dass n eine Zweierpotenz ist... Ein T

Seit 2005 ermöglicht SolidarMed Zugang zur lebensrettenden HIV-Therapie auch in ländlichen Regionen Afrikas.. Unter dem Motto «Leave no one behind» hat SolidarMed im Jahr 2018

Aufgrund der neuen Empfehlungen der Stiftung Zewo, gültig ab 2018, zur Abgrenzung der Kosten für die Mittelbe- schaffung und die Administration sind in der

2.25 Following the conflict in Libya, the Conflict Pool funded deployment of a Defence Advisory Training Team (DATT) to Tripoli to support the transition process,