Title | Prüfungsbeispiel - Gleitkomma - Lösung - Binder - WS1819 |
---|---|
Author | Yilmaz Dogan |
Course | Informatik |
Institution | Technische Hochschule Nürnberg |
Pages | 5 |
File Size | 136.2 KB |
File Type | |
Total Downloads | 38 |
Total Views | 139 |
Lösung zur Prüfungsvorbereitung Gleitkomma...
„Informatik und Programmieren 1“
Beispiel für eine Prüfungsaufgabe zum Thema Gleitkommazahlen Im Binderschen Spezialformat werden Gleitpunktzahlen folgendermaßen dargestellt:
15
14
VZ
CHAR ARA ACT ER ERII ST STII K
7
6
0
MAN ANT T I SSEN SSENBI BI T S
Das Format hat die folgenden Eigenschaften:
VZ 0 bedeutet positives, VZ 1 negatives Vorzeichen.
Charakteristik = Exponent + 27, Basis ist 2.
Die Mantisse ist so normiert, dass das Komma links von Bit 6 steht.
Zahlen werden in der Form (-1) * m* 2 abgespeichert, wobei links vom Komma als erstes Bit der Mantisse m eine 1 stehen muß. Diese 1 links vor dem Komma wird nicht mit abgespeichert, es gilt also m = 1,
Ist eine abzuspeichernde Mantisse zu lang, so wird sie rechts abgeschnitten.
Bearbeiten Sie dazu folgende Aufgaben:
a)
Wie groß ist die Genauigkeit dieser Gleitkommazahldarstellung? 7 Stellen Mantisse Genauigkeit: n Nachkommastellen Also: 10n = 27 Bilde Logarithmus zur Basis 10 log10(10n) = log10(27) n log10(10) = 7 log10(2) n = 7 log10(2) = 2,1… Also zwei Stellen Wie lautet die größte darstellbare positive Zahl binär und dezimal? Größte positive Zahl:
m = 1,11111112 c = 111111112 e = c - 100000002 = 111111112 - 100000002 = 11111112 1,11111112* (101111111)2 1,11111112* (101111111)2 = 1,11111112* (2127)10 = 111111112* (2120)10 = 25510* (2120)10 = 3,39 * 1038 b) Geben Sie die Zahl Z1 = -47,2510 in binärer Form, in hexadezimaler Form, in normierter binärer Gleitkommadarstellung und in binärer Maschinendarstellung an. 47 : 2 = 23 23 : 2 = 11 11 : 2 = 5 5 : 2 = 2 2 : 2 = 1 1 : 2 = 0
Rest Rest Rest Rest Rest Rest
1 1 1 1 0 1
4710 = 1011112 0,2510 * 2 0,510 * 2
= 0,5 + 0 = 1,0 + 1
0,2510 = 0,012 -47,2510
= -101111,012
Hexadezimal: -101111,012 = -0010 1111,01002 = -2F,416 Normierte binäre Gleitkommadarstellung: -101111,012 = -1,01111012 * (25)10 = -1,01111012 * (10101)2 m = 1,01111012 e = 101 c = 101 + 100000002 = 100001012 Binäre Maschinendarstellung 1100001010111101 c)
Im Speicher steht die Zahl Z2 kodiert als Bitfolge C22F16
Wie lautet die Bitfolge binär? C22F16 = 1100 0010 0010 11112 Wie lautet die Mantisse binär und dezimal? m = 1,01011112 = 1,367187510 Wie lautet die Charakteristik binär und dezimal? c = 100001002 = 13210 Wie lautet der Exponent dezimal? e = c – 12810 = 13210 – 12810 = 410 Wie lautet das Vorzeichen? VZ = Wie lautet also die Zahl Z2 in normierter binärer Gleitkommadarstellung? Z2 = -1,01011112 * (24)10 = -1,01011112 * (10100)2 Wie lautet also die Zahl Z2 in dezimal in wissenschaftlicher Darstellung? Z2 = -1,367187510 * 24 = -21,875 = -2,1875 * 101
d) Multiplizieren Sie die Zahlen Z1 und Z2 in binärer Gleitkommadarstellung und gemäß den Regeln der Multiplikation von Gleitkommazahlen, das Ergebnis heiße Z3. Z3 = -1,01111012 * (25)10 * -1,01011112 * (24)10 Addiere Exponenten: 4 + 5 = 9
Multipliziere Mantissen 10111101*10101111 ─────────────────────────── 10101111 1010111100 10101111000 101011110000 1010111100000 101011110000000 ─────────────────────────── 1000000100110011
10111101*10101111 ─────────────────────────── 10101111 1010111100 10101111000 101011110000 1010111100000 1001011110000000 ─────────────────────────── 1000000100110011
10101111 110 110111111 1 0 0 ─────────────────────────── 1101101011
1101101011 1 1 10 110111111 1 0 0 0 ─────────────────────────── 100011100011
100011100011 0 1101111 1 1 0 0 0 0 ─────────────────────────── 1001111010011 11
1001111010011 11011101111 1 1 0 0 0 0 0 ─────────────────────────── 10100110110011
10100110110011 110101110111111 1 0 0 0 0 0 0 0 ─────────────────────────── 1000000100110011
1,01111012 * 1,01011112 = 10,000001001100112 = 1,0000001001100112* (210)10 Also Z3 = 1,0000001001100112 * (210)10 Wie lautet die Zahl Z3 in binärer Maschinendarstellung? m = 1,0000001001100112 Mantisse wird abgeschnitten: m = 1,00000012 e = 1010 c = e + 12810 = 1010 + 12810 = 13810 = 100010102 Vorzeichen: + Also binäre Maschinendarstellung: 0100 0101 0000 00012 Wie lautet die binäre Maschinendarstellung hexadezimal? 0100 0101 0000 00012 = 450116...