• Keine Ergebnisse gefunden

N‐Bit Darstellung von Gleitkommazahlen

N/A
N/A
Protected

Academic year: 2022

Aktie "N‐Bit Darstellung von Gleitkommazahlen"

Copied!
29
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Binäre Gleitkommazahlen

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

(2)

Betrachte die recht harmlose Dezimalzahl 0 8

Nebenbemerkung

Betrachte die recht harmlose Dezimalzahl 0,8.

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

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:e a e t u üc , da e g bt s c

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 mit endlicher dezimaler Gleitkommadarstellung, die binär nicht mit  endlicher Anzahl Bits darstellbar sind.

(3)

N‐Bit Darstellung von Gleitkommazahlen

Normalisierte, wissenschaftliche Darstellung zur Basis 2. Beispiel:

Allgemein:

Allgemein:

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

s exponent fraction

1 Bit 8 Bits 23 Bits

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

Tradeoff:

Viele Fraction‐Bits: hohe Genauigkeit der Fraction

1 Bit 8 Bits 23 Bits

g

Viele Exponent‐Bits: großer darstellbarer Zahlenbereich

(4)

Beispiel

s exponent fraction

Was ist der Dezimalwert x des folgenden Bit‐Strings?

1 Bit 8 Bits 23 Bits

Was ist der Dezimalwert x des folgenden Bit Strings?

100000101101100000000000000000000

(5)

Wertebereiche, Overflow und Underflow

s exponent fraction

1 Bit 8 Bits 23 Bits

Kleinste darstellbare 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) (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)

(6)

Double‐ und Single‐Precision

Beispiel:

f i

Insgesamt 32 Bits Single‐

s exponent fraction

1 Bit 8 Bits 23 Bits

Insgesamt 64 Bits Single‐

Precision

s exponent fraction

1 Bit 11 Bits 52 Bits

Insgesamt 64 Bits Double‐

Precision

Double‐Precision hat höhere Genauigkeit der Fraction und mit 

öß E t h i öß d t llb

größerem Exponent auch einen größeren darstellbaren  Zahlenbereich.

Double‐Precision in diesem Beispiel:

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

(7)

Der Zahlenformatstandard IEEE 754

Insgesamt 32 Bits

s exponent fraction

1 Bit 8 Bits 23 Bits

Insgesamt 32 Bits Single‐

Precision

I t 64 Bit

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 Beobachtung: die „1  vor dem Komma ist redundant.

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

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

(8)

Beispiel

s exponent fraction

1 Bit 8 Bits 23 Bits

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

1 Bit 8 Bits 23 Bits

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

1000001010110000000000000000000

(9)

Weitere Eigenschaften von IEEE 754

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

(‐1)S · (1 + Fraction) · 2Exponent

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

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

(10)

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?

Zahlen?

Zahl 1: 000000111101000100000000000000000 Zahl 2: 011010111010010000010000000000000 Zahl 2: 011010111010010000010000000000000

1. Vergleiche erst mal die Vorzeichenbits. Bei unterschiedlichen  V i h bit i t d V l i h b d t

Vorzeichenbits ist der Vergleich beendet.

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

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

sein, dann könnte man Exponent und Fraction für einen Vergleich einfach  konkatenieren.

(11)

Darstellung des Exponenten in Biased‐Notation

E i Bi d N i (hi i 8 Bi d Bi 127)

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

(12)

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 1 bis 254 Beliebig 1 bis 2046 Beliebig +/ Gleitkommazahl

255 0 2047 0 +/‐ Unendlich

255 Ni ht N ll 2047 Ni ht N ll N N (N t N b ) 255 Nicht‐Null 2047 Nicht‐Null NaN (Not a Number)

(13)

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)

( ) ( )

(14)

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)

(‐1)

S

· (1 + Fraction) · 2

(Exponent Bias)

(15)

Gleitkommaarithmetik

(16)

Gleitkommaarithmetik

Additi bi ä Bit Gl itk hl

Addition von binären n‐Bit Gleitkommazahlen

(17)

Vorüberlegung

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

Addition mit unterschiedlichen Exponenten (Nachkomma 4 Bits):

(18)

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“

(19)

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:

(20)

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 Beispiel 1 Beispiel 2

1,000 · 2‐1 1 110 2 2

1,001 · 210

1 101 211 der beiden Zahlen. Shifte die  kleinere Zahl nach rechts, so 

dass der Exponent mit dem 

1,110 · 2‐2 + 1,101 · 211 (1)

Exponent der größeren Zahl  übereinstimmt. (Mantissen‐

Ali t)

Alignment) (2)

(2) Addiere die Mantissen.

(21)

Additionsalgorithmus

2 Beispiele: 4 Bit für die Mantisse 

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

und hoch setzen oder durch  Beispiel 1 Beispiel 2

(2) 0,001 · 2‐1 10,001 · 211

Links‐Shift und runter setzen  des Exponenten.

(2) 0,001  2 10,001  2 (3)

Im Beispiel 8‐Bit für den Exponenten.

Overflow oder 

Underflow? ja

E ti “

nein „Exception“

(22)

Additionsalgorithmus

zurück

nach (3) 2 Beispiele: 4 Bit für die Mantisse 

und 8 Bit für den Exponenten.

( )

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

Beispiel 1 Beispiel 2

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

Immer noch 

li i ? i

normalisiert?

j

nein

Fertig ja Fertig

(23)

Noch eine Bemerkung

h d f l d b l

Betrachte die folgende binäre Floats mit 8‐Bit Mantisse: 

x = −1 100 000 · 2100 y = 1 100 000 · 2100 z = 1 000 0000

x =  1,100 000 · 2 ,     y = 1,100 000 · 2 , z = 1,000 0000 Was ist x + (y + z)?(y )

Was ist (x + y) + z?

S it i t + ( + ) ( + ) + d h di Gl itk dditi i t Somit ist x + (y + z) ≠ (x + y) + z, d.h. die Gleitkommaaddition ist  nicht assoziativ!

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

(24)

Gleitkommaarithmetik

M lti lik ti bi ä Bit Gl itk hl Multiplikation von binären n‐Bit Gleitkommazahlen

(25)

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?

Multiplikation der Mantissen. Wo kommt das Komma hin?

Was ist das Vorzeichen v von x · y?

(26)

Algorithmus

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

Start

1 2 Start

1,101 · 2‐1 · ‐1,100 · 2‐2

(1)

(1) Addiere die Exponenten. 

(S bt hi Bi i F ll (Subtrahiere Bias im Falle 

von Biased‐Notation )

(27)

Algorithmus

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

(1) Der Exponent ist ‐3 Die Mantissen sind:

1 101 und 1 100

(2) Multipliziere die 1,101 und 1,100

(2)

(2) Multipliziere die  Mantissen.

(28)

Algorithmus

Beispiel: 4 Bit für die Mantisse 

und 8 Bit für den Exponenten. (3) Normalisiere das Produkt(3) Normalisiere das Produkt  Falls notwendig. 

Normalisierung erfolgt durch  (2) 10,011100 · 2‐3

(3) Rechts‐Shift und erhöhen 

des Exponenten.

(3)

Im Beispiel 8‐Bit für den Exponenten.

Overflow oder 

Underflow? ja

E ti “

nein „Exception“

(29)

Algorithmus

zurücknach (3)

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

1 2

(4) Runde die Mantisse auf  die verfügbare Anzahl Bits (Eingabe: 1,101 · 2‐1 · ‐1,100 · 2‐2) die verfügbare Anzahl Bits.

(3) 1,0011100 · 2‐2

Immer noch 

normalisiert? nein (3) 1,0011100  2

(4)

ja

(5) Setze Vorzeichen auf +“

(5)

(5) Setze Vorzeichen auf „+  

wenn die Vorzeichen der  Eingaben gleich waren. Sonst g g

setze Vorzeichen auf „‐“.

Fertig

Referenzen

ÄHNLICHE DOKUMENTE

These results are applied to defect groups of p-blocks of finite groups with given Loewy length.. Doing so, we improve results in a recent paper by Koshitani, Külshammer

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

The standard references for quadratic form theory over fields are Ll4,24J. When we speak about quadratic forms we always assume them to be regular, and we often call

As the proof of Corollary 6 (which showed Hölder calmness for systems of polynomi- als) is in the end based on Proposition 2 (Hörmander’s error bound), an analysis of the proof of

In a recent work, González-Val (2010) generalises this analysis for all of the twentieth century, extracting long-term conclusions: Gibrat’s Law holds (weakly; growth is

Diese besagt: „Jede Zahl kann als Produkt von einer Zahl, die genau eine Stelle (ungleich Null) vor dem Komma hat, und einer Potenz von zehn, geschrieben werden.“.. Nun sparen wir

The message representative can be broken down into r = a||z||b||h where a is fixed data, de- termined by the padding structure and a prefix of the ASN.1 encoded data, z is

Learning with errors in the exponent comes in two versions: The search version asks to find the secret vector s while in the decisional variant one is supposed to distinguish