Ü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