Sie sind auf Seite 1von 36

Rechnerarchitektur I (RAI)

Informationsverarbeitung

Dr. Steffen Märcker


Prof. Dr. Akash Kumar
Chair for Processor Design
Was bisher geschah...
2

q Vier Darstellungen für negative Binärzahlen:


q Vorzeichenbehaftete Größe (SM)
q Basiswertverschiebung
q 1-Komplement (1-C)
q Zweierkomplement (2-C)
q Rechenoperationen (für 2-C)
q Addition und Subtraktion (𝑂(𝑛))
q Multiplikation (𝑂 𝑛 ⋅ log 𝑛 )
q Division (𝑂 𝑛 ⋅ log 𝑛 , nutzt Multiplikationsalgorithmen)

Rechnerarchitektur I © Akash Kumar


Rechnen im Endlichen
vorzeichenlose Dualzahl
3

2n −1
+
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

𝑣=𝑐=1
𝑆 !"# = 𝐴! + 𝐵 !
!'# !'#

0000 + 𝑐 ⋅ 2! + 𝑆 ! = ) 𝑎$ ⋅ 2$ + ) 𝑏$ ⋅ 2$
1111 0001
$%& $%&
1110 0010
15 0 1
!'#
14 2
1101 0011 𝑐𝑠!'# … 𝑠& = ) 𝑎$ + 𝑏$ ⋅ 2$
13 3
$%&
1100 12 4 0100
11 5 Beispiel:
1011 10 6 0101
𝑆 = 1111( + 0001(
9 7
1010
8
0110 = 1 0000( (carry out)
1001 0111
1000
𝐷 = 0000( − 0001(
𝑐 … carry bit 𝑣 … overflow flag = 1 1111( (borrow in)

Rechnerarchitektur I © Akash Kumar


Rechnen im Endlichen
2-Komplement-Darstellung
4

−2n− 1 2n− 1 −1
- +
-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
𝑐=1
𝑆 !"# = 𝐴! + 𝐵 !
0000 + = 𝑎!'# ⋅ 2!'# + 𝐴!'# +
1111 0001
1110
0
0010 𝑏!'# ⋅ 2!'# + 𝐵 !'#
-1 1
-2 2 0011
1101 !'(
-3 3
= 𝑎!'# + 𝑏!'# ⋅ 2!'# + ) (𝑎$ + 𝑏$ ) ⋅ 2$
1100 -4 4 0100
$%&
-5 5
= 𝑐 ⋅ 2! + 𝑠!'# ⋅ 2!'# + 𝑘 ⋅ 2
!'#
+ 𝑆 !'#
1011 -6 6 0101
-7 7 = 𝑐 ⋅ 2! + 𝑠!'# + 𝑘 ⋅ 2!'# + 𝑆 !'#
-8
1010 0110
1001 0111 1 for 𝑘 ≠ 𝑐
1000 𝑣=6
0 otherwise
𝑣=1

𝑐 … carry bit 𝑣 … overflow flag k … vorletztes carry bit

Rechnerarchitektur I © Akash Kumar


Rechnen im Endlichen
2-Komplement-Darstellung
5

−2n− 1 2n− 1 −1
- +
-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
𝑐=1
0000 +
1111 0001
1110
0
0010 Beispiel:
-1 1
-2 2
1101 0011 𝑆 =7+1
-3 3 = 0111( + 0001(
1100 -4 4 0100 = 0& 1# 0# 0# 0(
𝑘=𝑐=1 -5 5 𝑘=𝑐=0
1011 -6 6 0101 𝐷 = −8 − 1
-7 7
1010
-8
0110 = 1000( − 0001(
1001 0111 = 1000( + 1111(
1000
= 1# 0& 1& 1& 1(
𝑣=1= 𝑘≠𝑐

𝑐 … carry bit 𝑣 … overflow flag k … vorletztes carry bit

Rechnerarchitektur I © Akash Kumar


Rechnen im Endlichen
6

Die vier Grundrechenarten lassen sich auf die logischen Grundoperationen


und Addition zurückführen. Das Ergebnis der Addition ist im Allgemeinen um
eine Stelle größer als der größte Summand.

𝑆 !"# = 𝐴! + 𝐵$ für 𝑛≥𝑚

q In Rechenwerken wird das überzählige Bit 𝑠! als Carry bit 𝑐 bezeichnet.


q In 2-C-Notation liegen die Zahlenbereichsgrenzen bei 2!%# . Der Vergleich
der Carry bits in die Stellen 𝑠!%# und 𝑠! zeigt den Überlauf an und wird
Overflow 𝑣 genannt. Das Carry bit 𝑐 hat beim Rechnen in der 2-C-Notation
keine arithmetische Bedeutung!
q Die Fehlerprüfung und -behandlung muss für Signed arithmetic und
Unsigned arithmetic also unterschiedlich erfolgen.

Rechnerarchitektur I © Akash Kumar


Prüfen auf Overflow
7

q Im Allgemeinen dürfen Überläufe nicht zum Rechnen verwendet werden.


Das heißt, erst Ausrechnen danach auf Overflow prüfen, ist nicht erlaubt.
Das gilt insbesondere für die Programmiersprache C!
q Wie prüft man korrekt die Eingaben vor einer Addition?
Betrachtung:
q Für einen beliebigen Block code der Länge 𝑛 gilt:
0 … 0 ! ≤ 𝐴! ≤ 1 … 1 !

q Die Subtraktion von 𝐴! von 1 … 1 ! ist mindestens 0 und daher immer gültig!
1 … 1 ! − 𝐴! ≥ 0 … 0 !

q Für 𝐴! , 𝐵! < 1 … 1 ! gilt:


1…1 !
≥ 𝐴! + 𝐵! für den Fall 1 … 1 !
− 𝐴! ≥ 𝐵! !

q Für vorzeichenbehaftete Zahlen: Fallunterscheidung nach 𝐴 ≥ 1 und 𝐴 < 1!

Rechnerarchitektur I © Akash Kumar


8

Festkommazahlen
Fixed-point numbers

Rechnerarchitektur I © Akash Kumar


Festkommazahlen
9

Idee:
1.2 + 1.3 = 2.5 = 25 ⋅ 10CD = 12 ⋅ 10CD + 13 ⋅ 10CD

Vorteile:
❏ Geringe Komplexität, geringer Hardwareaufwand

❏ Rundungsfehler/Dynamik konstant und gleichmäßig

Anwendungen:
❏ Finanzmathematik

❏ Bruchrechnung auf einfacher Hardware

❏ Realtime-Anwendungen

❏ Digital Signal Processing, Image Processing, Neural Networks

Rechnerarchitektur I © Akash Kumar


Festkommazahlen (2)
10

❏ Darstellung von Brüchen als skalierte Ganzzahlen mit


implizitem Skalierungsfaktor 𝑆:
𝑎
𝑏 CD
= 𝑎 ⋅.
𝑏
E
❏ Stellenwertsystem mit 𝑚 ∈ ℕ FD
Nachkommastellen und
Faktor 𝑆 = 𝑏 CG :
JCD JLGCD JLGCD

𝑍 = 3 𝑧H ⋅ 𝑏 H = 3 𝑧HCG ⋅ 𝑏 HCG = 𝑏.
CG
⋅ 3 𝑧HCG ⋅ 𝑏 H
HICG HIK HIK
E
M
❏ Darstellung negativer Zahlen wie bei Ganzzahlen
❏ Skalierungsfaktor üblicherweise fest gewählt für alle Zahlen

Rechnerarchitektur I © Akash Kumar


Addition und Subtraktion von
Festkommazahlen
11

Beispiel:
0011 ⋅ 2CN + 0011 ⋅ 2CD = 0011 + 0110 ⋅ 2CN = 1001 ⋅ 2CN
../0 1.0 2.20

Algorithmus: (gleiche Basis, verschiedene Exponenten 𝑐D, 𝑐N)


𝑀D ⋅ 𝑏 O! ± 𝑀N ⋅ 𝑏 O" = 𝑀D ± 𝑀N ⋅ 𝑏 C(O! CO" ) ⋅ 𝑏 O!
1. Falls 𝑐D > 𝑐N vertausche 𝑍D und 𝑍N
2. Verschiebe 𝑀N um 𝑐D − 𝑐N Stellen nach links
3. Addiere bzw. subtrahiere 𝑀D und 𝑀N als Ganzzahlen

Schritt 1 und 2 sind unnötig für feste Skalierungsfaktoren 𝑐D = 𝑐N.

Rechnerarchitektur I © Akash Kumar


Multiplikation und Division von
Festkommazahlen
12

Beispiel:
0011 ⋅ 2CN ⋅ 0011 ⋅ 2CD = 0011 ⋅ 0011 ⋅ 2CN ⋅ 2CD = 1001 ⋅ 2CS
K.QR D.R D.DNR

Algorithmus: (gleiche Basis, verschiedene Exponenten 𝑐D, 𝑐N)


𝑀D ⋅ 𝑏 O! ⋅ 𝑀N ⋅ 𝑏 O" = 𝑀D ⋅ 𝑀N ⋅ 𝑏 O! LO"
𝑀D ⋅ 𝑏 O! ÷ 𝑀N ⋅ 𝑏 O" = 𝑀D ÷ 𝑀N ⋅ 𝑏 O! CO"
1. Multipliziere bzw. dividiere 𝑀D und 𝑀N als Ganzzahlen
2. Addiere bzw. subtrahiere die Exponenten 𝑐D und 𝑐N

Für feste Skalierungsfaktoren 𝑐D = 𝑐N muss das Ergebnis auf 𝑐D


Nachkommastellen gerundet und nach rechts verschoben werden.
Rechnerarchitektur I © Akash Kumar
13

Gleitkommazahlen
Floating-point numbers

Rechnerarchitektur I © Akash Kumar


Wissenschaftliche Notation (dezimal)
14

Festkommadarstellung mit 2 Stellen: Z#$ = 𝑧$(. )𝑧%#


❏ 0.1
❏ 1.5
❏ 9.0
❏ Wertebereich: 0.0, 0.1, … , 9.9

Wissenschaftliche Notation mit 2 Stellen: Z#& = 𝑀 (𝑒) ± 𝐸


❏ 1𝑒 − 4 = 0.0001 𝐸 ∈ {−4, … , 0, … , 5}
❏ 5𝑒 − 1 = 0.5

❏ 9𝑒 + 5 = 900′000

❏ Wertebereich: 0.0000, … , 900′000 mit


❏ 𝐸 = −4: 0.0000, 0.0001, … , 0.0009
❏ 𝐸 = −3: 0.001, … , 0.009
❏ …
❏ 𝐸 = ±0: 1, … , 9
❏ 𝐸 = +5: 100) 000, … , 900) 000

Rechnerarchitektur I © Akash Kumar


Gleitkommazahlen
(floating-point numbers)
15

Halblogarithmische Darstellung gebrochener Zahlen durch Mantisse und


Exponent:
𝑀 ⋅ 2& = ±𝑆 ⋅ 2&
𝑍=4 ±∞
𝑁𝑎𝑁

𝑀 … Mantisse (Signifikant 𝑆, nur Nachkommateil 1. 𝑓 bzw. 0. 𝑓)


𝐸 … Exponent (als Charakteristik 𝑐, in Bias-Notation)
± … Vorzeichen des Signifikanten (als 𝑠)
Vorteile: großer Wertebereich (dynamic Range) und flexibler Nachkommabereich
Nachteil: geringere relative Genauigkeit
Standard: ANSI/IEEE 754 von 1985, letzte Überarbeitung 2019

Rechnerarchitektur I © Akash Kumar


Datenformate IEEE 754
16

32-Bit Format (single)


31 23 22 0
s 8 Bit c 23 Bit f s … signum
c … characteristic
f … fractional part
64-Bit Format (double)
63 52 51 0
s 11 Bit c 52 Bit f

80-Bit Format (double-extended, Zwischenergebnisse)


79 64 63 0
s 15 Bit c 64 Bit f

Rechnerarchitektur I © Akash Kumar


Mantissendarstellung (1)
17

Darstellung der Mantisse 𝑀 als vorzeichenbehaftete Festkommazahl in


Signed-Magnitude Notation.

q normalisierte Form:
𝑀 = −1 ' ⋅ 1. 𝑓

Führende 1 wird nicht gespeichert und muss für Berechnungen ergänzt, d.h.
entpackt, werden. (Ausnahme: double-extended Format)

❏ denormalisierte Form:
𝑀 = −1 ' ⋅ 0. 𝑓

❏ Darstellung sehr kleiner Zahlen (bei minimalem Exponenten).


❏ Zwischenergebnis bei Berechnungen (vor der Exponentenanpassung).

Rechnerarchitektur I © Akash Kumar


Mantissendarstellung (2)
18

Wertebereich:
❏ normalisiert: 1.0 ≤ 𝑀 < 2.0
❏ denormalisiert: 0.0 ≤ 𝑀 < 1.0

Genauigkeit der Mantisse (binär - dezimal):

Datenformat Binärstellen max. rel. Genauigkeit Dezimalstellen


single 23 2−24 = 5.96 ...10−8 7
double 52 2−53 = 1.11 ...10−16 15
double-extended 64 2−64 = 5.42 ...10−20 19

Rechnerarchitektur I © Akash Kumar


Exponentendarstellung
19

Darstellung des Exponenten E als vorzeichenbehaftete ganze Zahl


in Basiswert-Darstellung (biased) mit dem Basiswert B c .

𝐸 = 𝑐 − 𝐵( bzw. 𝑐 = 𝐸 + 𝐵&

Wertebereich (ohne Ausnahmesituationen):

Datenformat Binärstellen 𝒃𝒄 Bc Wertebereich


single 8 127 -126 ≤E ≤ 127
double 11 1023 -1022 ≤E ≤ 1023
double-extended 15 16383 -16382 ≤ E ≤ 16383

Rechnerarchitektur I © Akash Kumar


Ausnahmesituationen der
Gleitkommadarstellung (1)
20

Größter (c = 2+! − 1) und kleinster (𝑐 = 0) Exponent sind für


Ausnahmesituationen reserviert (4 Darstellungsvarianten):

Interpretation s c f Zahlendarstellung
1. denormalisiert s 0 ≠0 −1 , ⋅ 0. 𝑓 ⋅ 2 #'-!

Null s 0 0 −1 ,
⋅0
2. normalisiert s 0 < 𝑐 < 2+! − 1 ≥0 −1 , ⋅ 1. 𝑓 ⋅ 2 .'-!

3. Unendlich s 2+! − 1 0 −1 ,
⋅∞
4. Not a Number 0 2+! − 1 ≠ 0 𝑁𝑎𝑁

❏ zwei verschiedene Darstellungen der Null (+0 und −0)


❏ die Darstellung der Null erfolgt als denormalisierte Zahl
❏ denormalisierte Zahlen werden mit 2 #%)" (E = −126) interpretiert
❏ Bereichsüberschreitungen sind nicht möglich (kein Restklassenring)
❏ Sonderdarstellungen für Unendlich, (−∞ und +∞) und Ausnahmen

Rechnerarchitektur I © Akash Kumar


Ausnahmesituationen der
Gleitkommadarstellung (2)
21

Beispiele (IEEE 754 single):

s c f Z Interpretation
1. 0 00000000 00 . . . 00 +0 pos. Null
1 00000000 00 . . . 00 −0 neg. Null
0 00000000 00 . . . 01 +0,00...01 ·2−126 denormalisiert
1 00000000 00 . . . 01 −0,00...01 ·2−126 denormalisiert
2. 0 00000001 00 . . . 00 +1,00...00 ·2−126 normalisiert
1 00000001 00 . . . 00 −1,00...00 ·2−126 normalisiert
0 11111110 11 . . . 11 +1,11...11 ·2+127 normalisiert
1 11111110 11 . . . 11 −1,11...11 ·2+127 normalisiert
3. 0 11111111 00 . . . 00 +∞ pos. unendlich
1 11111111 00 . . . 00 −∞ neg. unendlich
4. 0 11111111 00 . . . 01 NaN Not-a-Number

Rechnerarchitektur I © Akash Kumar


Präzision von Gleitkommazahlen
22

Quelle: Wikipedia
Rechnerarchitektur I © Akash Kumar
Addition und Substraktion von
Gleitkommadarstellung (1)
23

Normalisierte Darstellung:
𝑍# = 𝑀# ⋅ 2&# = ±𝑆# ⋅ 2&# = −1 '# ⋅ 1. 𝑓# ⋅ 2 (#%)"
𝑍* = 𝑀* ⋅ 2&$ = ±𝑆* ⋅ 2&$ = −1 '$ ⋅ 1. 𝑓 ⋅ 2 ($ %)"
*

𝐸* ≤ 𝐸#

𝑍# + 𝑍* = 𝑀# + 𝑀* ⋅ 2% &#%&$ ⋅ 2&#
= −1 '# ⋅ 1. 𝑓# + −1 '$ ⋅ 1. 𝑓* ⋅ 2% (#%($ ⋅2 (# %)"

Bei ungleichen Exponenten 𝐸#, 𝐸' muß die Zahl mit dem kleineren Exponenten
denormalisiert werden (Erhöhung des Exponenten bei gleichzeitiger
Rechtsverschiebung des Signifikanten).

Beachte: Die Mantissen 𝑀#und 𝑀' werden zur Berechnung im 2-C dargestellt!
Rechnerarchitektur I © Akash Kumar
Addition und Substraktion von
Gleitkommadarstellung (2)
24

Algorithmus für vorzeichenbehaftete Addition 𝑍𝑠 = 𝑍1 + 𝑍2 :

𝑍' = 𝑀# + 𝑀* ⋅ 2% (#%($ ⋅ 2&#

1. Wenn 𝑐1 < 𝑐2 , dann vertausche 𝑍1 und 𝑍2 .

2. Verschiebe 𝑀2 um 𝑐1 − 𝑐2 Stellen nach rechts.

3. Addiere bzw. Subtrahiere 𝑀1 und 𝑀2 analog zu vorzeichenbehafteten


ganzen Zahlen (Zweierkomplement). Bei negativem Ergebnis
Konvertierung in die Vorzeichen-Wert-Darstellung.

4. (i) Normalisierung und (ii) Rundung des Ergebnisses.

Rechnerarchitektur I © Akash Kumar


Addition und Substraktion von
Gleitkommadarstellung (3)
25

Beispiel (IEEE 754 single): (0 - Zusatzstelle wegen Zweierkomplement)

Z s c S Bemerkung Dez.
Z1 0 1000 0001 0 1.0000 ... normalisiert 4.0
Z2 0 0111 1111 0 1.1000 ... normalisiert 1.5
Z2 0 1000 0001 0 0.0110 ... denormalisiert 1.5
Z1 + Z2 0 1000 0001 0 1.0110 ... normalisiert 5.5

−Z2 1 1000 0001 1 1.1010 ... 2-C


−1.5
denormalisiert
Z1 − Z2 0 1000 0001 0 0.1010 ... denormalisiert 2.5
Z1 − Z2 0 1000 0000 0 1.0100 ... normalisiert 2.5

Rechnerarchitektur I © Akash Kumar


Multiplikation und Division von
Gleitkommazahlen (1)
26

Normalisierte Darstellung:
𝑍# = 𝑀# ⋅ 2&# = −1 '# ⋅ 1. 𝑓# ⋅ 2 (# %)"

𝑍* = 𝑀* ⋅ 2&$ = −1 '$ ⋅ 1. 𝑓* ⋅ 2 ($ %)"

𝑍# ⋅ 𝑍* = 𝑀# ⋅ 𝑀* ⋅ 2 &# "&$

= −1 ('# "'$ ) ⋅ 1. 𝑓# ⋅ 1. 𝑓* ⋅ 2 (# "($ %)" %)"

𝑍# 𝑀# &# %&$
= ⋅2
𝑍* 𝑀*
'# %'$
1. 𝑓# (# %($ ")" %)"
= −1 ⋅ ⋅2
1. 𝑓*

Rechnerarchitektur I © Akash Kumar


Multiplikation und Division von
Gleitkommazahlen (2)
27

.
Algorithmus für 𝑍- = 𝑍# ⋅ 𝑍* bzw. .#:
$

(# "($ %)" %)" /# (# %($ ")" %)"


𝑍- = 𝑀# ⋅ 𝑀* ⋅ 2 bzw. 𝑍- = ⋅2
/$

1. Bestimmung des Vorzeichens (𝑠1 ≠ 𝑠2 → negativ, 𝑠1 = 𝑠2 → positiv).

2. Multiplikation bzw. Division von 𝑀1 und 𝑀2 analog zu ganzen


Zahlen.

3. Addition von 𝑐1 und 𝑐2 und Subtraktion von 𝐵𝑐 bzw. Subtraktion von


𝑐1 und 𝑐2 und Addition von 𝐵𝑐 analog zu vorzeichenbehafteten
ganzen Zahlen.

4. (i) Normalisierung und (ii) Rundung des Ergebnisses.

Rechnerarchitektur I © Akash Kumar


Multiplikation und Division von
Gleitkommazahlen (3)
28

Beispiel (IEEE 754 single):

Z s c S Bemerkung Dez.
Z1 0 1000 0001 1.0000 ... normalisiert 4.0
Z2 0 0111 1111 1.1000 ... normalisiert 1.5
Z1 ·Z2 0 1000 0001 1.1000 ... normalisiert 6.0
Z2
Z1
0 0111 1101 1.0000 ... normalisiert 0.375

Rechnerarchitektur I © Akash Kumar


Rundung von Gleitkommazahlen (1)
29

Der IEEE 754 - Standard fordert:


Das Ergebnis einer arithmetischen Operation soll das selbe sein, als würde
exakt gerechnet und anschließend gerundet.

Verschiedene Rundungsmodi:
❏ zum nächsten Wert, bei 0,5 auf den geraden Wert (round-to-even, LSB 0)
❏ nach 0
❏ nach +∞ oder −∞,

Relevante Bitstellen für die Rundung (auf q Stellen, vom MSB gezählt):
❏ guard Bit g - Bitstelle auf die gerundet wird (q. Stelle vom MSB),
❏ round Bit r - Rundungsbit (q+1. Stelle vom MSB),
❏ sticky Bit s - Zusatzstelle (q+2. Stelle vom MSB bis zum LSB)

Füllen der Bits g, r, s durch Rechtsschieben der Mantisse.


Dabei bleibt das s-Bit gesetzt, sobald es einmal gesetzt wurde ("sticks to one").

Rechnerarchitektur I © Akash Kumar


Rundung von Gleitkommazahlen (2)
30

Beispiel (Rundung auf q = 3 Stellen):

Nr. n-Bit Zahl Even Zero +∞ −∞


1 1.00 0 0 0 1.00! 1.00! 1.00! 1.00!
2 1.00 1 0 0 1.00! 1.00! 1 . 0 1↑ 1 . 0 0↓
3 −1 . 0 1 1 0 0 −1 . 1 0↓ −1 . 0 1 ! −1 . 0 1↑ −1 . 1 0↓
4 1.00 0 1 0 1.00! 1.00! 1 . 0 1↑ 1 . 0 0↓
5 −1 . 0 1 0 0 1 −1 . 0 1 ! −1 . 0 1 ! −1 . 0 1↑ −1 . 1 0↓
6 1.00 1 1 0 1 . 0 1↑ 1.00! 1 . 0 1↑ 1 . 0 0↓
7 1.00 1 0 1 1 . 0 1↑ 1.00! 1 . 0 1↑ 1 . 0 0↓
8 1.11 11 0 1 0 . 0 1↑ 1.11! 10.0 ↑ 1 . 1 1↓
g r s

Rechnerarchitektur I © Akash Kumar


Probleme beim Rechnen mit
Gleitkommazahlen
31

❏ Berechnungen mit denormalisierten Zahlen (c = 0) (Ungenauigkeit),


❏ Überlauf (Wertebereichsüberschreitung),
❏ Unterlauf (begrenzte Darstellung betragsmäßig kleiner Werte),
❏ Rundung.

Assoziativ- und Distributivgesetze gelten nur eingeschränkt:

Ursachen für die Differenzen sind die endliche Stellenzahl zur


Zahlendarstellung und die Rundung der Ergebnisse.
𝑎+ 𝑏+𝑐 ≠ 𝑎+𝑏 +𝑐
𝑎⋅ 𝑏⋅𝑐 ≠ 𝑎⋅𝑏 ⋅𝑐
𝑎+𝑏 ⋅𝑐 ≠ 𝑎⋅𝑐 + 𝑏⋅𝑐

Rechnerarchitektur I © Akash Kumar


Unterscheidbarkeit von Codes
32

Gegeben sei folgendes 32-Bit-Maschinenwort:


𝐵 = 1100 0101 1000 0111 1000 0101 1001 1001*
𝐵 = 𝐶587 8599#0

Was bedeutet es?


❏ Als vorzeichenlose Festkommazahl:
𝑁 = 3 313 993 113#1
❏ Als vorzeichenbehaftete Festkommazahl in 2-C-Notation:
𝑍 = −980 974 183#1
❏ Gleitkommazahl nach IEEE 754 single:
𝐹 = −4 336.699 7#1

Rechnerarchitektur I © Akash Kumar


Zusammenfassung
33

q Gleitkommazahlen können mechanisch verrechnet werden.


q Die Operationen für Gleitkommazahlen sind teuer
(komplexe Arithmetik, hoher Hardwareaufwand)!
q Encoding von Zahlen erfasst auch nicht-numerische
Information (z.B. Vorzeichen; Aufteilung in Vorzeichen,
Charakteristik, Signifikant)
q Encoding ist immer ein Contract zwischen Sender und
Empfänger. D.h. ein Code word kann seine eigene
Bildungsvorschrift nicht speichern! D.h. eine Maschine muss
zusätzlich wissen, wie ein Code word zu interpretieren ist.
(Sonst: Type confusion. Nr. 1 Mechanismus von
Computerviren)

Rechnerarchitektur I © Akash Kumar


34

Anhang
Appendix

Rechnerarchitektur I © Akash Kumar


Prüfen auf Overflow
35

q Für Unsigned arithmetic gilt: q Für Signed arithmetic gilt:


if ((UINT_MAX – A) >= B) then if (B < 1) then
C = A + B if ((INT_MAX – B) <= A) then
else C = A + B
ERROR else
ERROR
else if ((INT_MIN – B) <= A) then
C = A + B
else
ERROR

Rechnerarchitektur I © Akash Kumar


Vier wichtige Zahlensysteme
Four Important Number Systems
36

System Warum? Why? Anmerkungen


Remarks
Dezimal Decimal 10 Finger fingers
Binär AN/AUS Systeme 3 mal mehr Ziffern als
Binary ON/OFF systems dezimal
3 times more digits than
decimal
Oktal Kurzschreibweise für die 3 mal weniger Ziffern als
Octal Arbeit mit Binärdateien binär
Shorthand notation for 3 times less digits than
working with binary binary

Hex ------- dito --------- 4 mal weniger Ziffern als


binary
4 times less digits than
binary

Rechnerarchitektur I © Akash Kumar

Das könnte Ihnen auch gefallen