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