Übungsblatt 03: Rechnen im dualen Zahlensystem

Transcrição

Übungsblatt 03: Rechnen im dualen Zahlensystem
Einführung in die Wirtschaftsinformatik
Andreas Gäbler/ Juliane Arnold
Universität Potsdam
Lehrstuhl für Wirtschaftsinformatik und Electronic Government
WS2008/2009
Übungsblatt 03: Rechnen im dualen Zahlensystem
Das Bit
- kleinste Informationseinheit, kann zwei Zustände annehmen (engl.: binary digit)
- binäre Zahlen können sehr lang werden, für den „normalen“ Menschen schwer zu merken Æ
je 4 bit werden deshalb zu einem neuen System mit der Basis 16 zusammengefasst
Die Tetrade (Nibble, Halbbyte)
-
Umfasst dezimalen Werteumfang von 0 bis 15 (16 Werte)
verwendet die Werte 0 – 9 sowie die ersten sechs Buchstaben im Alphabet A – F (sedezimale
Darstellung)
Grundlage für das Hexadezimale Zahlensystem
-------------Basis
Hex-Wert
Dez-Wert
Rechenbeispiel ------------4096 256
16
1
7
C
3
E
7
12
3
14
Stellenwert zur Basis 16
= 7 * 4096 + 12 * 256 + 3 * 16 + 14 * 1
= 31.80610
Das Byte
-
ein Byte (engl.: by eight) wird durch 8 bit dargestellt
1 Byte kann 256 Zustände darstellen Æ damit ist es möglich, alle häufig gebrauchten Zeichen
(alphabetische, numerische und Sonderzeichen) zu codieren
größte darstellbare Zahl ist die die dezimale 255, in Dualschreibweise 11111111
Rechnen mit Binärwerten
-
bei der Codierung von Zeichen ist die Zuordnung zu Binärwerten beliebig, wird dann aber in
einem Codemodell erfasst
Umrechnung von Zahlen erfolgt nach streng mathematischen Vorschriften.
Umrechnung von binären in dezimale Zahlen
Umrechnung und Darstellung über Potenzschreibweise
Beispiel:
10112 = 1*23 + 0*22 + 1*21 +
1*20
= 1*8 + 0*4 + 1*2 +
1*1 =
1110
Umrechnung von dezimalen in binäre Zahlen
Umrechnung der Dezimalzahlen über die "Division mit Rest" Æ teilen der Zahl durch 2 bis als
Ergebnis 0 herauskommt Æ dabei wird der Rest jeweils notiert.
Beispiel:
19 / 2 = 9 Rest 1
20 / 2 = 10 Rest 0
9 / 2 = 4 Rest 1
10 / 2 = 5 Rest 0
4 / 2 = 2 Rest 0
5 / 2 = 2 Rest 1
2 / 2 = 1 Rest 0
2 / 2 = 1 Rest 0
1 / 2 = 0 Rest 1
1 / 2 = 0 Rest 1
Æ Rest:
101002
Æ Rest =
100112
Kilobyte, Megabyte, Gigabyte
- Ein Kilobyte Æ ca. tausend Byte Æ
- Ein Megabyte Æ ca. eine Million Byte Æ
- Ein Gigabyte Æ ca. eine Milliarde Byte Æ
Seite 1
210 Byte = 1.024 Byte
220 Byte = 1.048.576 Byte
230 Byte = 1.073.741.824 Byte
Einführung in die Wirtschaftsinformatik
Andreas Gäbler/ Juliane Arnold
Universität Potsdam
Lehrstuhl für Wirtschaftsinformatik und Electronic Government
WS2008/2009
Addition von Dualzahlen
- Addition funktioniert wie bei der Addition von Dezimalzahlen:
01012
+10012
====
11102
Grundsätzliche Rechenregeln:
Binärsystem
0+0=0, 1+0=1,
1+1=0 Übertrag 1 Æ 102.
Dezimalsystem 0+0=0, 1+0=1, … 9+0=9
9+1=0 Übertrag 1 Æ 1010
Analogie zum Dezimalsystem Æ Übertrag
Übertrag wird bei beiden Systemen jeweils voran gestellt.
Das Problem - Überlauf
Bei der Addition gibt es einen Haken: Die Addition kann nur innerhalb eines bestimmten
Wertebereiches problemlos realisiert werden.
In der Realität kann jede beliebig große Zahl dargestellt werden. In der Informatik wird der
Werteumfang durch die Verarbeitungsbreite der Computertechnik bzw. der Betriebssysteme
eingeschränkt. Zur Anschaulichkeit wird in den Beispielen der Wertebereich auf ein Byte begrenzt:
-
-
Die größte darstellbare Zahl:
1111 11112 = 255 dezimal
Vorgehensweise bei der Addition
1111 11112 + 0000 00012 = 255 + 1 dezimal
= 256 (???)
Ergebnis:
0000 00002 (also 0)
Å Übertrag in der höchsten Stelle (Bit 27) auf die Stelle 28
Æ Übertrag kann allerdings nicht gespeichert werden Æ wird deshalb einfach gestrichen
Damit gibt es durch den beschränkten Wertebereich eine obere Grenze.
Bei der Addition von 1 fängt dieser Wertebereich wieder von vorne an Æ Damit existiert eine
unendliche Zählreihe von 0 bis 255 Æ 0 bis 255 usw.
Das Einerkomplement
Bevor eine Subtraktion realisiert werden kann, muss das Komplement der Dualzahl gebildet werden
Æ Einerkomplement
Dabei wird jede Zahl durch ihr Gegenteil (Komplement) ersetzt Æ Formale Vorgehensweise
Beispiel:
Wert
Gegenteil
(Einerkomplement)
0101 01012
1010 10102
1111 00002
0000 11112
Das Zweierkomplement
entspricht dem Einerkomplement Æ zusätzlich erfolgt eine Addition von 12 in der niedrigsten Stelle
Beispiel:
Einerkomplement
Addition +1
Zweierkomplement
1010 10102
12
1010 10112
0000 11112
12
0001 00002
Subtraktion von Dualzahlen
Subtraktion zweier Zahlen erfolgt durch Addition des Zweierkomplementes
Beispiel:
Dezimal Æ 1210 – 710 = 510
- 7 Æ 0000 01112 Æ Einerkomplement 1111 10002 Æ Zweierkomplement 1111 10012
- Addition 0000 1100 + 1111 1001 = 0000 01012 Übertrag 1
Æ Ergebnis: 0000 01012 = 510 Æ Der Übertrag wird nicht gespeichert
Multiplikation von Dualzahlen
entspricht einem Verschieben der Ziffern nach links (Links-Shift)
Seite 2
Einführung in die Wirtschaftsinformatik
WS2008/2009
Beispiel:
1510 * 210 = 3010
1510 * 410 = 6010
1510 * 810 = 12010
1510 * 1610 = 24010
Andreas Gäbler/ Juliane Arnold
Universität Potsdam
Lehrstuhl für Wirtschaftsinformatik und Electronic Government
Æ 0000 1111 * 0000 0010 = 0001 11102
Æ 0000 1111 * 0000 0100 = 0011 11002
Æ 0000 1111 * 0000 1000 = 0111 10002
Æ 0000 1111 * 0001 0000 = 1111 00002
Vorgehen bei der Multiplikation einer beliebigen Zahl Æ Für jede 1 im zweiten Operand muss eine
Multiplikation ausgeführt werden. Die Ergebnisse werden anschließend miteinander addiert.
Beispiel:
0000 1111 * 0000 0101 Æ
0000 1111 * 0000 0100
+ 0000 1111 * 0000 0001
0011 1100
+ 0000 1111
= 0100 1011
Ergebnis: 0100 10112 (dezimal 15 * 5 = 75)
Achten Sie auf den Wertebereich Æ Gefahr des Überlaufs führt zu verfälschtem Ergebnis
Division von Dualzahlen
entspricht einem Verschieben der Zahlen nach rechts (Rechts-Shift)
Vorbemerkung:
Ergebnis kann eine Zahl mit Stellen (evtl. unendlich) hinter dem Komma sein
Beispiel 1:
9 / 2 = 4,5 - endliche Zahl mit einer Nachkommastelle
Beispiel 2:
10 / 3 = 3,33333... - Zahl mit unendlich vielen Nachkommastellen
Æ Wesentliches Problem der ungenauen Darstellung von Nachkommazahlen
Beispiel:
8 / 2 = 4 Æ 00001000 / 00000010 = 00000100 Æ Division durch 2 - Rechts-Shift von einer Stelle
8 / 4 = 2 Æ 00001000 / 00000100 = 00000010 Æ Division durch 4 - Rechts-Shift von zwei Stellen
Nachkommastellen
Beispiel:
3 / 2 = 1,5 Æ 00000011 / 00000010 = 00000001 Æ Rechts-Shift bewirkt, dass die letzte 1 rechts aus
dem Zahlenbereich "herausfällt". Æ alle Nachkommastellen werden abgeschnitten
Achtung: keine Rundung sondern Abbruch der Berechnung Æ 3 / 2 = 1!!!
Diese Art der Division funktioniert jedoch nur, wenn man durch 2 oder eine Potenz von 2 dividiert.
Beispiel: – Division im Dezimalsystem:
1307 / 11 = 118 Rest 9
-11
==
20
-11
==
97
-88 Rest 9
Analogie der Division nach dem gleichen Schema bei binären Zahlen:
Rechnet man Dezimalzahlen wiederum in Binärzahlen um, so kommt man wieder auf 1307/11=18
Rest 9 (siehe oben). Auch hier gilt: Rest wird gnadenlos abgeschnitten, nicht gerundet d.h. er entfällt.
Beispiel:
10100011011 / 1011 = 1110110 Rest 1001
- 01011
=====
1
Seite 3
Einführung in die Wirtschaftsinformatik
Andreas Gäbler/ Juliane Arnold
Universität Potsdam
Lehrstuhl für Wirtschaftsinformatik und Electronic Government
WS2008/2009
010010
- 01011
======
001111
- 1011
======
010010
- 01011
======
001111
- 1011
====
01001
- 1011
====
1001
2
34
5
6
7
-
Rest
Positive Ganzzahlen
In den bisherigen Überlegungen war nur die Darstellung von positiven Ganzzahlen möglich
Æ kleinste Zahl Î 0,
Æ größte Zahl abhängig vom Speicherplatz
Bisherige Betrachtung auf 1 Byte beschränkt Æ Typische Verarbeitungsbreite sind aber mindestens
zwei Byte
Beispiel:
Verarbeitungsbreite
größte darstellbare Dezimalzahl
2 Byte
65535
4 Byte
4.294.967.295
Seite 4
8 Byte
18,4467*1018
Einführung in die Wirtschaftsinformatik
Andreas Gäbler/ Juliane Arnold
Universität Potsdam
Lehrstuhl für Wirtschaftsinformatik und Electronic Government
WS2008/2009
Aufgabe 07: Addition mit binären Zahlen
Wert 1
0110
1010
0000 1111
1001 1101
1100 1001
1101 0011
0010 0101
1000 1011
Wert 2
0100
0010
0110 1011
0101 0001
0011 0111
0001 0101
0110 1000
0100 1111
Ergebnis
Aufgabe 08: Subtraktion mit binären Zahlen
Wert 1
0110
0111
0100 0000
1010 1110
1100 1001
1111 0010
1000 0010
1001 1001
Wert 2
0100
0011
0011 1001
1001 1010
0110 0101
1011 1010
0011 1100
1101 0011
Ergebnis
Aufgabe 09: Multiplikation mit binären Zahlen
Wert 1
0110
0011
1100
0010 1100
0001 1001
1101 0110
Wert 2
0100
0010
0101
0011
1011
0010 0010
Ergebnis-binär
Probe-dezimal
Aufgabe 10: Division mit binären Zahlen – mit Angaben des Restes
Wert 1
0110
1001
1110
1000
1100 1001
1011 0001
Wert 2
0010
0100
0110
0011
1001
1101
Ergebnis-binär
Seite 5
Probe-dezimal