Aufgabe 1 - Zahlendarstellungen
Aufgabenstellung
Abschnitt betitelt „Aufgabenstellung“a) Festkommazahlen
Abschnitt betitelt „a) Festkommazahlen“Ergänzen Sie die nachfolgende Tabelle in der gegebenen Aufgabenstellung um die fehlenden Darstellungsformen für die vorzeichenbehafteten ganzen Zahlen A und –A mit einer Breite von zwei Byte durch ihre Hexadezimal- bzw. Dezimalzahlwerte (HEX bzw. DEZ). Der Offset bei der offsetbinären Darstellung beträgt 7FFFH.
| Dezimalzahl (DEZ) | Darstellung Vorzeichen Betrag (HEX) | Zweierkomplementdarstellung (HEX) | Offsetbinäre Darstellung (HEX) | |
|---|---|---|---|---|
| A | 18.311 | … | … | … |
| –A | … | … | … | … |
Stellen Sie Ihren Rechenweg bei der Ermittlung der fehlenden Werte ausführlich dar.
10 Pkt.
b) Gleitkommazahlen
Abschnitt betitelt „b) Gleitkommazahlen“Im Speicher eines Mikroprozessors befinden sich auf den Speicheradressen 0000H bis 0003H die vier Bytes einer Single-Precision-Gleitkommazahl nach IEEE754 entsprechend der nachfolgenden Tabelle. Die Bytes sind abweichend vom Studienheft TIM01 hier im Little-Endian-Format abgespeichert (hier niederwertigstes Byte auf niederwertigster Adresse!). Ermitteln Sie den Dezimalwert der abgespeicherten Gleitkommazahl. Legen Sie Ihren Berechnungsweg ausführlich dar.
| Adresse | Byte | Belegung |
|---|---|---|
0000H |
B8H |
m7 ... m0 |
0001H |
DEH |
m15 ... m8 |
0002H |
6AH |
e0, m22 ... m16 |
0003H |
C3H |
S, e7 ... e1 |
15 Pkt.
Σ 25 Pkt.
a) Festkommazahlen
Abschnitt betitelt „a) Festkommazahlen“Die Tabelle lässt sich wie folgt vervollständigen:
| Dezimalzahl (DEZ) | Darstellung Vorzeichen Betrag (HEX) | Zweierkomplementdarstellung (HEX) | Offsetbinäre Darstellung (HEX) | |
|---|---|---|---|---|
| A | 18.311 | 4787H |
4787H |
0C786H |
| -A | -18.311 | 0C787H |
0B879H |
3878H |
Tabelle 1.1: Darstellungen von A und -A bei einer Breite von 16 Bit (eigene Berechnung).
Umrechnung von A in eine Hexadezimalzahl
Abschnitt betitelt „Umrechnung von A in eine Hexadezimalzahl“Zuerst wird der Dezimalwert 18.311 durch 16 geteilt. Die dabei entstehenden Reste bilden die einzelnen Hexadezimalstellen.
18.311 : 16 = 1.144 Rest 7 1.144 : 16 = 71 Rest 8 71 : 16 = 4 Rest 7 4 : 16 = 0 Rest 4Die Reste werden von unten nach oben gelesen. Damit ergibt sich:
18.311 (DEZ) = 4787H = 0100 0111 1000 0111 (BIN)Darstellung mit Vorzeichen und Betrag
Abschnitt betitelt „Darstellung mit Vorzeichen und Betrag“Bei einer Breite von 16 Bit wird das höchstwertige Bit als Vorzeichenbit verwendet. Eine 0 steht für eine positive Zahl und eine 1 für eine negative Zahl. Die übrigen 15 Bit enthalten den Betrag.
Der Betrag 18.311 wird in den unteren 15 Bit so dargestellt:
100 0111 1000 0111Für A wird eine 0 als Vorzeichenbit ergänzt:
0 | 100 0111 1000 0111 = 0100 0111 1000 0111 = 4787HFür -A wird das Vorzeichenbit auf 1 gesetzt:
1 | 100 0111 1000 0111 = 1100 0111 1000 0111 = 0C787HDie führende 0 bei 0C787H gehört nicht zur Wortbreite. Sie macht nur deutlich, dass es sich bei dem mit C beginnenden Wert um eine Hexadezimalzahl handelt.
Zweierkomplementdarstellung
Abschnitt betitelt „Zweierkomplementdarstellung“Da A positiv ist, bleibt die Darstellung unverändert:
A = 0100 0111 1000 0111 = 4787HFür -A werden zuerst alle Bitstellen von A umgekehrt. Danach wird 1 addiert.
A: 0100 0111 1000 0111Bitstellen umkehren: 1011 1000 0111 1000 = 0B878H1 addieren: 1011 1000 0111 1001 = 0B879HAls Kontrolle kann der Wert auch von 2 hoch 16 abgezogen werden:
65.536 - 18.311 = 47.225 = 0B879HOffsetbinäre Darstellung
Abschnitt betitelt „Offsetbinäre Darstellung“Der vorgegebene Offset beträgt:
7FFFH = 32.767 (DEZ)Für die offsetbinäre Darstellung wird der Offset zum jeweiligen Dezimalwert addiert.
Für A ergibt sich:
18.311 + 32.767 = 51.078 = 0C786H4787H + 7FFFH = 0C786HFür -A ergibt sich:
-18.311 + 32.767 = 14.456 = 3878H7FFFH - 4787H = 3878Hb) Gleitkommazahlen
Abschnitt betitelt „b) Gleitkommazahlen“Zusammensetzen der vier Bytes
Abschnitt betitelt „Zusammensetzen der vier Bytes“Da die Bytes im Little-Endian-Format gespeichert sind, steht das niederwertigste Byte an der kleinsten Adresse. Für das vollständige 32-Bit-Wort werden die Bytes deshalb in umgekehrter Reihenfolge zusammengesetzt.
| Adresse | Hexadezimal | Binärdarstellung |
|---|---|---|
0000H |
B8H |
1011 1000 |
0001H |
DEH |
1101 1110 |
0002H |
6AH |
0110 1010 |
0003H |
C3H |
1100 0011 |
Tabelle 1.2: Binärdarstellung der gespeicherten Bytes (eigene Berechnung).
Das zusammengesetzte 32-Bit-Wort lautet:
C36ADEB8H1100 0011 0110 1010 1101 1110 1011 1000Aufteilung der Bitfelder
Abschnitt betitelt „Aufteilung der Bitfelder“Eine Single-Precision-Gleitkommazahl besteht aus einem Vorzeichenbit, acht Exponentenbits und 23 Mantissenbits.
1 | 1000 0110 | 110 1010 1101 1110 1011 1000S | Exponent | MantisseDas Vorzeichenbit ist 1. Die gespeicherte Zahl ist deshalb negativ.
Der gespeicherte Exponent lautet:
1000 0110 (BIN)= 2^7 + 2^2 + 2^1= 128 + 4 + 2= 134 (DEZ)Bei Single Precision beträgt der Bias 127. Der tatsächliche Exponent ist damit:
e = 134 - 127 = 7Die 23 Mantissenbits lauten:
110 1010 1101 1110 1011 1000Da es sich um eine normalisierte Zahl handelt, wird vor der Mantisse eine führende 1 ergänzt:
1,11010101101111010111000 (BIN)Berechnung des Dezimalwerts
Abschnitt betitelt „Berechnung des Dezimalwerts“Mit dem Vorzeichenbit S = 1 und dem Exponenten e = 7 ergibt sich:
Z = (-1)^S · Mantisse · 2^eZ = (-1)^1 · 1,11010101101111010111000 · 2^7Durch die Multiplikation mit 2 hoch 7 wird das Binärkomma um sieben Stellen nach rechts verschoben:
Z = -1110 1010,1101 1110 1011 1000 (BIN)Der ganzzahlige Anteil beträgt:
1110 1010 (BIN)= 2^7 + 2^6 + 2^5 + 2^3 + 2^1= 128 + 64 + 32 + 8 + 2= 234Beim Nachkommaanteil werden nur die gesetzten Bitstellen addiert:
2^-1 + 2^-2 + 2^-4 + 2^-5 + 2^-6 + 2^-7+ 2^-9 + 2^-11 + 2^-12 + 2^-13= 0,8699951171875Mit dem negativen Vorzeichen ergibt sich der gesuchte Dezimalwert:
Z = -234,8699951171875