bz bz bz Zahlenwert ∙ + + ∙ + + ∙ =

Werbung
1 Zahlendarstellung im Rechner
Rechner „denken“ binär!
Daraus lässt sich unmittelbar folgern: Alles, was sich mit binärer Codierung darstellen
lässt, kann in einem Rechner verarbeitet werden.
Allgemein handelt es sich bei allen behandelten Zahlensystemen inklusive des uns
am geläufigsten Dezimalsystems um ein Stellenwertsystem oder Positionssystem.
Stellenwertsystem:
 Stelle/Position bestimmt Wert der jeweiligen Ziffer
 niederwertigste Stelle steht rechts
 hat Basis b
 Zifferposition hat Wert, der Potenz der Basis b an der entsprechenden
Stelle/Position entspricht
o für n-te Position Wert bn-1
Zahlenwert  z n  b n  ...  z i  b i  ...  z 0  b 0
Berechnung des Zahlenwertes (Interpretation der Zahl):
1) Multiplikation der Ziffern zi mit den zugehörigen Stellenwerten (Potenzen) bi
2) Summation/Addition der Produkte
Für Zahlendarstellung im Rechner gilt:
Basis b  2
Dies gilt für alle im Rechner verwendeten Zahlendarstellungen gleichermaßen, also
auch für die vom Dual- bzw. Binärsystem abgeleiteten Oktal- und
Hexadezimaldarstellungen.
Oktalsystem  Basis b  8  2 3
Hex  System  Basis b  16  2 4
Beispiele:
Dualsystem:
 2 5  0
 2 4  1
 2 3  1
 2 2  1
 21  1
 20
101110 2  1
 32  0  8  4  2  0
 4610
1
 82  0
 81  7
 80
6078  6
Oktalsystem:
 6  64  0  8  7  1
 384  0
 7
 39110
Hexadezimalsystem:
2
1
0
2 BE16  2
16
11
16
14
16







 2  256  11 16  14 1
 512

176  14
 70210
Die Wertigkeit der Basis bestimmt den notwendigen Werteumfang der einzelnen
Stellen (Ziffern, Koeffizienten) im Stellenwertsystem.
Dual:
Oktal:
Hexadezimal:
0,1
0,1,...,7
0,1,...,15
2 Zustände kodierbar
8 Zustände kodierbar
16 Zustände kodierbar
2 Ziffernwerte
8 Ziffernwerte
16 Ziffernwerte
Hexadezimal: [0,1,2,..., 9, A, B, C, D, E, F]
Einstellige Hex-Zahl F drückt damit das Produkt 15 mal 160 aus
Umwandlung vom Dezimalsystem in Dual-/Oktal-/Hexadezimalsystem
Prinzip: fortgesetzte ganzzahlige Division der Dezimalzahl durch die entsprechende
Basis liefert als Restwerte (modulo Operation) die Ziffern (Koeffizienten) für die
jeweilige Potenz der Basis
Beispiele:
Dual:
z10 = 46
46 : 2 = 23
23 : 2 = 11
11 : 2 = 5
5:2=2
2:2=1
1:2=0
Rest 0
Rest 1
Rest 1
Rest 1
Rest 0
Rest 1
niederwertigste Stelle
höchstwertige Stelle
z2 = 101110
2
Oktal:
z10 = 391
391 : 8 = 48
48 : 8 = 6
6:8=0
Rest 7
Rest 0
Rest 6
niederwertigste Stelle
höchstwertige Stelle
z8 = 607
Hex:
z10 = 702
702 : 16 = 43
43 : 16 = 2
2 : 16 = 0
Rest 14 = E niederwertigste Stelle
Rest 11 = B
Rest 2
höchstwertige Stelle
z16 = 2BE
Umwandlung vom Dualsystem in Oktal-/Hexadezimalsystem



einfach, da alle Systeme die gleiche Basis 2 beinhalten
Oktal: jeweils 3 Dualziffern bzw. –stellen zusammengefasst
Hex: jeweils 4 Dualziffern bzw. –stellen zusammengefasst
Beispiele:
Dual > Oktal:
z 2  101
 110

z8  5
Dual > Hex:
6
z 2  1001
 1101

z16  9
1310
 9D16
3
2 Zahlendarstellung im Rechner (Fortsetzung)
Mit der bislang behandelten Zahlendarstellung im Rechner können wir lediglich nichtnegative, ganze Zahlen repräsentieren, was natürlich nicht den tatsächlichen
Gegebenheiten im Rechner entspricht. Wie werden nun vorzeichenbehaftete Zahlen
und Brüche in einer „rechnerverständlichen“ Darstellungsform repräsentiert? Und wie
rechnet der Rechner mit der ihm innewohnenden binären Zahlendarstellung?
2.1 Rechnen mit Dualzahlen
2.1.1 Wiederholung der schriftlichen Ausführung der Grundrechenarten
im Dezimalsystem
Schriftliche Addition:
Von rechts beginnend mit Übertrag auf die jeweils nächsthöhere Stelle bzw. Potenz
zur Basis 10
3
+ 2
4
9
1
8
7
6
1
Summand
Summand
Übertrag
1
Ergebnis
---------------------------6
4
5
7
-------------Summe
6+1=7 Übertrag 0; 7+8=15 Übertrag 1; 9+Übertrag1+4=14 Übertrag 1;
2+Übertrag1+3=6
Schriftliche Subtraktion:
Man "füllt" die abzuziehende Zahl (Zahl des Subtrahenden) soweit auf, dass die Zahl
des Minuenden erreicht wird; auch hier gibt es Übertrag, nämlich immer dann, wenn
die Zahl des Minuenden kleiner als die Zahl des Subtrahenden ist, was bedeutet,
dass eine Zehnerpotenz übersprungen wurde
Übertrag
Ergebnis
2
1
7
9
5
6
1
4
Minuend
Subtrahend
-----------------------------7
8
7
1
1
1
---------------Differenz
4 bis 11 = 7 Übertrag 1; 6+1 bis 15 = 8 Übertrag 1; 9+1 bis 17 = 7 Übertrag 1;
1+1 bis 2 = 0
Schriftliche Multiplikation:
Ein Produkt ist die Addition gleicher Summanden, wobei ein Faktor den jeweiligen
Summanden und ein weiterer Faktor die Anzahl der Summierungen darstellt. Dies ist
insbesondere für die technische Realisierung im Rechner von Interesse, da man für
das Ausführen einer Multiplikation eigentlich nur ein Addierwerk benötigt.
Bei der schriftlichen Multiplikation wird die erste Zahl mit den einzelnen Ziffern der
zweiten Zahl nacheinander, beginnend bei der letzten Stelle, multipliziert. Für jede
4
neue Ziffer wird eine neue Zeile benötigt. Man schreibt jede Multiplikation
untereinander und addiert die einzelnen Werte.
37 x 31 = 1147
---------37
111
---------1147
Faktor1 x Faktor2 = Produkt
Schriftliche Division:
Wir beginnen von links aus zu suchen, welchen möglichst kurzen Abschnitt des
Dividenden wir durch den Divisor teilen können.
871 : 5 = 174,2
5
---------37
35
---------21
20
---------10
10
---------0
Dividend : Divisor = Quotient
Analog zu den Zahlen im Dezimalsystem lassen sich mit Dualzahlen die gängigen
arithmetischen Grundoperationen Addition, Subtraktion, Multiplikation und Division
durchführen. Tatsächlich werden die benötigten Algorithmen sogar einfacher und
lassen sich effizient mit logischen Schaltungen elektronisch realisieren. Die
Einführung von Dualzahlen in der Rechentechnik brachte daher viele Vorteile.
2.1.2 Grundrechenarten im Dualsystem
Duale/binäre Addition:
Die binäre Addition ist eine grundlegende Basisoperation in der Computerwelt. Will
man zwei nicht negative Binärzahlen A und B addieren, kann man dies wie im
Dezimalsystem tun. Nur muss man beachten, dass beim Ergebnis keine Zwei an der
jeweiligen Stelle notiert wird, sondern eine Null und ein Übertrag an die nächste
Stelle. Dies geschieht analog zu dem Fall einer Dezimaladdition, wenn sich eine Zahl
größer oder gleich Zehn bei der Addition einer Stelle ergibt:
Die Zahlen werden übereinander aufgeschrieben. Nun arbeitet man von rechts nach
links alle Binärziffern (=Bits) von A und B simultan ab und erzeugt in jedem
Zwischenschritt ein Ergebnisbit sowie ein Merkerbit (auch Übertrag genannt). Dabei
werden die Bits entsprechend der Tabelle unten zusammengezählt. Alle
5
Ergebnisbits, von rechts nach links aneinandergereiht, stellen das Resultat dar.
Entsteht beim letzten Zwischenschritt ein Merkerbit, so bekommt das Resultat links
eine zusätzliche 1.
Es gelten folgende Rechenregeln:
0+0=0
0+1=1
1+0=1
1 + 1 = 0 Übertrag 1
Am besten sieht man dies anhand eines Beispieles. Hier werden die Zahlen A und B
zusammengezählt. In jedem Schritt wird ein anfallendes Merkerbit bei der nächsten
Ziffer notiert.
A = 10011010 (154 dezimal)
B = 00110110 (54 dezimal)
Merker = 11111
-------Ergebnis = 11010000 (208 dezimal)
========
Duale Subtraktion:
Es gelten folgende Rechenregeln:
0−0=0
0 − 1 = −1 (dargestellt als 1 und Übertrag 1)
1−0=1
1−1=0
0 - 1 mit Übertrag 1 = 0 mit Übertrag 1
1 - 1 mit Übertrag 1 = 1 mit Übertrag 1
Es wird im nachfolgenden Beispiel die Subtraktion der dual codierten Dezimalzahlen
110 − 23 = 87 durchgeführt. Die kleinen Einsen in der dritten Reihe zeigen den
Übertrag. Das Verfahren ist das Gleiche, wie es in der Schule für das Dezimalsystem
unterrichtet wird. Etwas ungewohnt sieht der Fall 0-1 aus. Zum Beispiel im Fall 2 − 9
im Dezimalsystem, denkt man sich eine Zehnerstelle vor die Zwei, wodurch sich die
Subtraktion 12 − 9 ergibt. Die gedachte Zehnerstelle wird dann als Übertrag an die
nächste Stelle weitergereicht. Im Dualsystem geschieht das Gleiche. Aus 0 − 1 wird
10 − 1. Es kann als Ergebnis also eine 1 hingeschrieben werden, die vor die 0
gedachte Eins muss dann als Übertrag an die nächste Stelle geschrieben und von
dieser zusätzlich abgezogen werden.
Das Verfahren funktioniert (wie auch im Dezimalsystem) nicht, wenn der Minuend
kleiner ist als der Subtrahend.
Beispiel:
A = 1101110 (110 dezimal)
B =
10111 (23 dezimal)
Merker = 1 111
-------Ergebnis = 1010111 (87 dezimal)
Die Subtraktion einer positiven Zahl ergibt dasselbe Ergebnis wie die Addition zu
einer negativen Zahl mit dem gleichen Betrag.
6
Duale Multiplikation:
Es gelten folgende Rechenregeln:
0x0=0
1x0=0
0x1=0
1x1=1
Die Multiplikation wird im Dualsystem genauso durchgeführt wie im Dezimalsystem.
Dadurch dass nur 0 und 1 als Ziffern vorkommen ist die schriftliche Multiplikation
jedoch sogar einfacher. Das folgende Beispiel, in dem die Zahlen 1100 (12) und
1101 (13) multipliziert werden, zeigt die Vorgehensweise.
Zuerst schreibt man die Aufgabenstellung in eine Zeile und zieht zur Vereinfachung
einen Strich darunter.
1100 · 1101
-----------
1100 · 1101
----------1100
Die erste Ziffer des zweiten Faktors ist eine Eins und
deshalb schreibt man den ersten Faktor rechtsbündig unter
diese Eins.
Auch für alle weiteren Einsen des zweiten Faktors schreibt
man den ersten Faktor rechtsbündig darunter.
1100 · 1101
----------1100
1100
0000
1100
Die so gewonnenen Zahlen zählt man dann zum Ergebnis der Multiplikation
zusammen.
1100 · 1101
----------1100
+
1100
+
0000
+
1100
----------10011100 (156)
7
Ein besonders einfacher Fall ist die Multiplikation einer positiven Dualzahl mit der
Zahl 10 (2). In diesem Fall muss lediglich an die positive Dualzahl eine 0
angehangen werden:
1101 · 10 = 11010
11010 · 10 = 110100
usw.
Für diese Rechenoperation existieren einfache Befehle in der Digitaltechnik.
Duale Division:
Es gelten folgende Rechenregeln:
0 : 0 = nicht definiert
1 : 0 = nicht definiert
0:1=0
1:1=1
Im nachfolgenden Beispiel erfolgt die Division von 1000010 / 11 (entspricht 66:3 im
Dezimalsystem):
1000010 ÷ 11 = 010110 Rest 0 (= 22 dezimal)
− 011
----00100
− 011
---0011
− 011
----000
− 00
--0
Bei der Division zweier positiver Dualzahlen verbleibt immer ein Rest 1, wenn die
letzte Ziffer des Dividenden eine 1 ist. Die Anwendung der Modulo-Funktion mit dem
Divisor 10 (2) auf positive Dualzahlen ergibt ergibt immer 1, wenn die letzte Ziffer des
Dividenden 1 ist und 0, wenn die letzte Ziffer des Dividenden 0 ist:
1101 mod 10 = 1
1100 mod 10 = 0
Für diese Rechenoperation, die einer UND-Verknüpfung mit 1 entspricht, existieren
einfache Befehle in der Digitaltechnik.
8
Ein besonders einfacher Fall ist die Division mit Rest einer positiven Dualzahl durch
die Zahl 10 (2). In diesem Fall muss lediglich die letzte Ziffer des Dividenden
gestrichen werden. Ist die letzte Ziffer des Dividenden eine 1, so verschwindet dieser
Rest. Entspricht bei diesem Verfahren die Anzahl der Divisionen durch 2 der Anzahl
der Stellen des Dividenden, so ist das Endergebnis immer 0:
1101 ÷ 10 = 110
110 ÷ 10 = 11
11 ÷ 10 = 1
1 ÷ 10 = 0
Für diese Rechenoperation existieren einfache Befehle in der Digitaltechnik.
9
Herunterladen