7. Übung zur Vorlesung Grundlagen der Informatik

Ähnliche Dokumente
Informationsdarstellung 2.2

Rückblick. Addition in der b-adischen Darstellung wie gewohnt. Informatik 1 / Kapitel 2: Grundlagen

3. Datentypen, Ausdrücke und Operatoren

2.1 Fundamentale Typen

Grundlagen der Programmierung

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 15/16

4. Daten. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Rechnerstrukturen. Michael Engel und Peter Marwedel. Sommer TU Dortmund, Fakultät für Informatik

Rechnen in B. Ralf Dorn. 3. September Heinrich-Hertz-Gymnasium. R. Dorn (H 2 O) Informatik LK 3. September / 6

Grundlagen der Technischen Informatik. 4. Übung

Grundlagen der Technischen Informatik. 4. Übung

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Einführung in die Informatik I

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

Die Zahl ist: (z 2, z 1, z 0 ) (z ) : 7 = 0 Rest z 2

Abschnitt 2: Daten und Algorithmen

Grundlagen der Informatik

2 Repräsentation von elementaren Daten

Einstieg in die Informatik mit Java

Grundlagen der Technischen Informatik. 4. Übung

Kapitel 5: Darstellung von Daten im Rechner

Zum Nachdenken. Wenn die Zahl (123) hat, was könnte dann (123,45) 10

Technische Informatik (RO)

Übung Praktische Informatik II

1.5.A Einführung und Zahlensysteme/Darstellung gebrochener Zahlen Arbeitsblatt

5.1 Basistypen. Wie viele Werte kann man mit n Bit darstellen? 30. Jan Felix Brandt, Harald Räcke 70/596

2.5 Primitive Datentypen

Rechnerstrukturen WS 2012/13

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung

Einstieg in die Informatik mit Java

1. Grundlegende Konzepte der Informatik

Skript. EDV Grundlagen

Wertebereiche, Overflow und Underflow

2 Darstellung von Zahlen und Zeichen

DuE-Tutorien 16 und 17

Einstieg in die Informatik mit Java

3. Datentypen, Ausdrücke und Operatoren

Binäre Darstellung ganzer Zahlen

Informatik Vorkurs - Vorlesung 2

Informatik I (D-MAVT)

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

RO-Tutorien 3 / 6 / 12

N Bit Darstellung von Gleitkommazahlen

1 Dualsystem Dualzahlen mit Vorzeichen 4. 2 Hexadezimalsystem Hexadezimalzahlen mit Vorzeichen Oktalsystem 13 4 Zahlenring 14

Wie rechnet ein Rechner?

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Dualzahlen

Datendarstellung Teil 2

B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Z = a 0 B 0 + a 1 B 1 + a 2 B a n-1 B n-1

Informationsdarstellung. 2 Informationsdarstellung. Ziele. 2 Informationsdarstellung Texte. Texte WS 2017/2018

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit

Einführung in die elektronische Datenverarbeitung. Zahlensysteme

Lösungsvorschlag 4. Übung Technische Grundlagen der Informatik II Sommersemester 2009

1. Tutorium Digitaltechnik und Entwurfsverfahren

Grundlagen der Technischen Informatik. 4. Übung

Grundlagen der Technischen Informatik. 4. Übung

Grundzüge der Informatik Tutorium Gruppe 6

Computergrundlagen Zahlensysteme

Lösung 2. Übungsblatt

Grundlagen der Informatik

Das Rechnermodell - Funktion

Motivation und Überblick

6.2 Kodierung von Zahlen

Vorlesung Programmieren

Dr. Monika Meiler. Inhalt

Hauptspeicherinhalt. Ton. Vektorgrafik Bitmapgrafik Digit. Video. 1. Darstellung von Daten im Rechner. Abb. 1.1: Einteilung der Daten

II. Grundlagen der Programmierung

Datentypen printf und scanf. Programmieren in C Dr. Michael Zwick

Zwischenklausur Informatik, WS 2014/15

Dipl.-Ing. Halit Ünver Datenbanken/Künstliche Intelligenz FAW/n. Zahlensysteme

Datendarstellung Teil 2

Wo sind wir? Übersicht lexikale Struktur von Java

Einführung in die Programmierung Wintersemester 2008/09

Mathematische Werkzeuge für Computergrafik 2016/17. Gleitkommzahlen

Einführung in die Programmierung

Martin Unold INFORMATIK. Geoinformatik und Vermessung

2.1.2 Gleitkommazahlen

Einführung in die Computerorientierte Mathematik

Zahlensysteme: Oktal- und Hexadezimalsystem

2 Darstellung von Zahlen und Zeichen

1.5 Einführung und Zahlensysteme/Darstellung gebrochener Zahlen

3/4/2009. Schalter: Ein vs. Aus Lochkarten: Loch vs. Kein Loch Boolean/Wahrheitswerte: true vs. false

Grundlagen der Wirtschaftsinformatik. Übung. Lösungen zu den Hausaufgaben

Java-Applikationen (Java-Programme)

Einstieg in die Informatik mit Java

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

Das Maschinenmodell Datenrepräsentation

1. Grundlagen der Informatik Zahlensysteme und interne Zahlendarstellung

Transkript:

7. Übung zur Vorlesung Grundlagen der Informatik 13.Interne Darstellung von Daten In der Vorlesung wurde bereits darauf hingewiesen, dass ein Rechner intern lediglich die Zustände 0 (kein Signal liegt an) und 1 (Signal liegt an) kennt. Das bedeutet, dass alle Informationen, die mit einem Rechner verarbeitet werden sollen, in eine diesem Muster entsprechende Darstellung übersetzt werden müssen. Man unterscheidet in diesem Zusammenhang interne und externe Daten. Unter externen Daten versteht man Zeichenfolgen, die aus einem festen Zeichensatz aufgebaut werden, der wiederum die möglichen Zeichen der I/O- Devices beinhaltet. Dabei gelten folgende Begrifflichkeiten: Numerische Zeichen Alphabetische Zeichen Sonderzeichen 0, 1, 2,,9 A, B, C,, Z, a, b, c,, z +, -, *, /,,!,., %, Leerzeichen, Numerische und alphabetische Zeichen werden auch als alphanumerische Zeichen zusammengefasst. Jedes dieser Eingabezeichen wird zunächst in eine eindeutige Bitfolge die interne Darstellung umgewandelt. Grundlage dafür ist die sog. ASCII- Code-Tabelle (American Standard Code for Information Interchange, 1967), die jedem Zeichen eine Zahl zuordnet, worüber es identifiziert werden kann: 7.Übung zur Vorlesung Grundlagen der Informatik Seite 1 von 8 Dipl.-Phys. Thomas Thull

Der ASCII-Code verwendet nur 7 Bit zur Zeichencodierung, ein 8.Bit war ursprünglich für Paritätsprüfungen reserviert. Im Englischen sind 2 7 = 128 Zeichen ausreichend, um alle alphanumerischen Zeichen und Sonderzeichen abzubilden. Darüber hinaus können auch Spezial- und Steuerzeichen, wie NL bzw. LF (New Line bzw. Line Feed = Zeilenvorschub), CR (Carriage Return = Wagenrücklauf) oder BEL (Bell = akustisches Signal), in ausreichender Zahl berücksichtigt werden. Um weitere Zeichen darstellen zu können, wurde eine Reihe zusätzlicher Standards entwickelt, die aber immer zu ASCII kompatibel waren und sind. Der für Westeuropa Wichtigste lautete ISO 8859-1, enthielt u.a. die deutschen Umlaute und setzte auf einer 8-Bit-Codierung auf. Heutzutage spielt der Unicode mit 16 Bit und 2 16 Zeichen die entscheidende Rolle. In der internen Darstellung hat somit z.b. der Buchstabe A folgende Werte: 65 = (41) 16 = (1000001) 2 = (01000001) 2. Ein einzelner Buchstabe oder ein einzelnes Zeichen wird als character bezeichnet, eine Zeichenkette (Wort, Satz, Absatz, ) als string. Worte werden immer durch ein Leerzeichen (Space) voneinander getrennt, Zeichenketten meist durch ein besonderes (Steuer-)Zeichen terminiert. In Abhängigkeit vom jeweiligen Datentyp wird die interne Darstellung zur Weiterverarbeitung noch anderweitig konvertiert. Zahlen bspw. werden in ihrer Dualdarstellung im Speicher abgelegt, um damit Rechenoperationen durchführen zu können. Beispiele: Externe Darstellung Interne Darstellung Dualdarstellung Auto (41 75 74 6F) 16 = keine (01000001 01110101 01110100 01101111) 2 15 (31 35) 16 = (00110001 00110101) 2 (00001111) 2 Es lässt sich am Beispiel der Zahl 15 erkennen, dass die unterschiedlichen Darstellungen auch unterschiedlich viel Speicherplatz benötigen. Die interne Darstellung benötigt 2 Byte (die Zahl besteht aus zwei Zeichen), die Dualdarstellung hingegen würde schon mit 4 Bit auskommen. Allerdings könnte man dann auch nur im Zahlenraum von 0 bis 15 (bei natürlichen Zahlen) bzw. -8 bis +7 (bei ganzen Zahlen) arbeiten, was eine ziemliche Einschränkung bedeuten würde. Für die Praxis sind deutlich größere Zahlenbereiche relevant, auch wenn sie entsprechend mehr Speicher benötigen. Auf diese soll im Folgenden detailliert eingegangen werden: 7.Übung zur Vorlesung Grundlagen der Informatik Seite 2 von 8 Dipl.-Phys. Thomas Thull

a) Natürliche Zahlen: z 0, Dualdarstellung mit festgelegter Bitzahl Speicherplat z in Byte MIN (kleinste darstellbare Zahl) MAX (größte darstellbare Zahl) 1 (0000 0000) 2 = 0 (1111 1111) 2 = 255 = 2 8 1 2 0 65 535 = 2 16 1 4 0 4 294 967 295 = 2 32 1 b) Ganze Zahlen: z 0: Dualdarstellung mit festgelegter Bitzahl z < 0: Komplementdarstellung von z Speicherplat z in Byte MIN (kleinste darstellbare Zahl) MAX (größte darstellbare Zahl) 1 (1000 0000) 2 = 128= 2 7 (0111 1111) 2 = 127 = 2 7 1 2 32 768 = 2 15 32 767 = 2 15 1 4 2 147 483 648 = 2 31 2 147 483 647 = 2 31 1 Die Darstellung von natürlichen Zahlen in verschiedenen Zahlensystemen wurde in der Vorlesung und in verschiedenen Übungen inzwischen hinreichend behandelt. Was noch aussteht, ist eine Verallgemeinerung auf alle Zahlen. c) Rationale Zahlen Darstellung als Gleitkommazahl (Gleitpunktzahl) mit Mantisse M und Exponent E (gemäß IEEE754) 1. Umwandlung der Kommazahl in eine Dualzahl: Beispiel: 3.15625 = 3 + 0.15625 = (11) 2 + (?) 2 Berechnung der Dualdarstellung von 0.15625: 0.15625 2 = 0.3125 0.3125 2 = 0.625 0.625 2 = 1.25 0.25 2 = 0.5 0.5 2 = 1.0 0.15625 = (0.00101) 2 3.15625 = (11) 2 + (0.00101) 2 = (11.00101) 2 2. Kommaverschieben liefert Mantisse und Exponent: 7.Übung zur Vorlesung Grundlagen der Informatik Seite 3 von 8 Dipl.-Phys. Thomas Thull

(11.00101) 2 = (1.100101) 2 (10) 2 = (1.100101) 2 2 1 Mantisse: 100101 ( 1. ist obsolet, wird weggelassen) Exponent: 1+B (B ist der sog. Bias) Vorzeichen: 0 (0 bei positiver, 1 bei negativer Zahl) Die Mantisse M ist in ihrer Stellenzahl durch den zur Verfügung stehenden Speicherplatz beschränkt. Gleiches gilt für den Exponenten E, der mittels des konstanten Bias B immer in den positiven Bereich verschoben wird. Der Wert des Bias hängt ebenfalls vom für ihn vorgesehenen Speicherplatz ab. Komplettiert wird die Maschinenzahldarstellung durch ein sog. Vorzeichenbit. 3. Darstellung als Maschinenzahl: Die Darstellung als Maschinenzahl hängt also elementar von dem zur Verfügung stehenden Speicherplatz ab. Im Allgemeinen hat sie die Form: Vz. Exponent Mantisse y+1 y x+1 x 0 Legt man bspw. fest, dass die Maschinenzahl aus 32 Bit bestehen soll, von denen 8 für den Exponenten und 23 für die Mantisse genutzt werden sollen, erhält man: Vz. Exponent Mantisse 31 30 23 22 0 Das heißt, dass in den Bits 0 bis 22 die Mantisse liegt, in den Bits 23 bis 30 der Exponent und in Bit 31 das Vorzeichen. Die kleinste so darstellbare Zahl (von 0 abgesehen) hat den Wert 1.18 10-38, die größte den Wert 3.40 10 38. Dabei wurde der Bias gemäß (2 k-1-1) mit dem Wert 127 berücksichtigt (k ist die Anzahl der für den Exponenten zur Verfügung stehenden Bits). Übertragen auf das Beispiel 3.15625 bedeutet dies: 3.15625 0 10000000 10010100000000000000000 Ist die Mantisse länger als die zur Verfügung stehende Anzahl an Bits, muss gerundet werden. Rechnet man diese Maschinenzahl dann wieder zurück, so erhält man einen ungenaueren Wert. Das bedeutet, dass intern extrem gerundet werden kann, ohne dass dies von außen beeinflusst werden kann. Eine weitere Erkenntnis ist, dass es Bereiche gibt, in denen sich Zahlen nicht maschinentauglich darstellen lassen. Unter näherer Betrachtung zeigt sich, dass die Abstände zwischen darstellbaren Zahlen von MIN nach MAX zunehmen. 7.Übung zur Vorlesung Grundlagen der Informatik Seite 4 von 8 Dipl.-Phys. Thomas Thull

Man kann folgendes Verhalten erkennen: Zahlen zwischen MIN und MAX, die nicht dargestellt werden können, werden immer auf die darstellbaren Zahlen gerundet Rundungsfehler! Zahlen zwischen 0 und MIN (bzw. MIN und 0) können ebenfalls nicht dargestellt werden. Es entsteht eine Darstellungslücke, der sog. Unterlauf. Zahlen in diesem Bereich werden ebenfalls gerundet Rundungsfehler! Zahlen größer als MAX (bzw. kleiner als MAX) sind nicht mehr darstellbar. Man spricht von einem Überlauf, der in der Regel mit einem Programmabbruch bestraft wird. Nach dem IEEE-Standard 754 sind folgende Zahlenbereiche üblich: Bezeichnung Speicherplatz Mantisse Exponent in Bit in Bit Genauigkeit single 4 Byte = 32 Bit 23 8 6-stellig double 8 Byte = 64 Bit 52 11 15-stellig Bezeichnung ± MIN ± MAX single 1.18 10-38 3.40 10 38 double 2.23 10 308 1.80 10 +308 Aufgaben: a) Übersetzen Sie folgende Worte und Sätze in Maschinencode (gemäß ASCII): i) Informatik (49 6E 66 6F 72 6D 61 74 69 6B) 16 ii) 714 + 99 (37 31 34 20 2B 20 39 39) 16 (Leerzeichen nicht vergessen!) iii) Ende gut, (45 6E 64 65 20 67 75 74 2C 2E 2E 2E) 16 Das Umrechnen nach binär sei jedem selbst überlassen b) Wandeln Sie folgende Zahlen in IEEE754-Maschinenzahlen um (Typ single ): i) 166.125 Lösung: 1. Umwandeln in Dualzahl: 166 = (10100110) 2 0.125 =? 0.125 2 = 0.25 0.25 2 = 0.5 0.5 2 = 1.0 7.Übung zur Vorlesung Grundlagen der Informatik Seite 5 von 8 Dipl.-Phys. Thomas Thull

0.125 = (0.001) 2 166.125 = (10100110.001) 2 2. Kommaverschiebung: (10100110.001) 2 = (1.0100110001) 2 2 7 3. Maschinenzahl (Typ single ): Objekt Größe Wert Anmerkung Vorzeichen 1 Bit 0 Zahl positiv Bias 8 Bit 127 (2 k-1-1) mit k=8 Exponent 8 Bit 7 + 127 = 134 = (10000110) 2 Komma wurde um 7 Stellen verschoben Mantisse 23 Bit (01001100010000000000000) 2 Anhängen von Nullen zum Auffüllen Insgesamt erhält man also: 166.125 0 10000110 01001100010000000000000 Übersichtlicher lässt sich das schreiben als: 0100 0011 0010 0110 0010 0000 0000 0000 = (43 26 20 00) 16 Diese Schreibweise dient lediglich der besseren Lesbarkeit und findet so keine Anwendung! ii) 8,124.0375 Lösung: 1. Umwandeln in Dualzahl: 8,124 = (1111110111100) 2 0.0375 =? 0.0375 2 = 0.075 0.075 2 = 0.15 0.15 2 = 0.3 0.3 2 = 0.6 0.6 2 = 1.2 0.8 2 = 1.6 0.6 2 = 1.2 = Man erkennt, dass sich die Zahlenreihen wiederholen 0.0375 = (0.0000100110011001100110011 ) 2 8,124.0375 = (1111110111100.000010011001100110011 ) 2 7.Übung zur Vorlesung Grundlagen der Informatik Seite 6 von 8 Dipl.-Phys. Thomas Thull

2. Kommaverschiebung: (1111110111100.000010011001100110011 ) 2 = (1.111110111100000010011001100110011 ) 2 2 12 3. Maschinenzahl (Typ single ): Objekt Größe Wert Anmerkung Vorzeichen 1 Bit 0 Zahl positiv Bias 8 Bit 127 (2 k-1-1) mit k=8 Exponent 8 Bit 12 + 127 = 139 = (10001011) 2 Komma wurde um 12 Stellen verschoben Mantisse 23 Bit (111110111100000010011001 ) 2 = (11111011110000001001101) 2 Runden! iii) 0.1 Insgesamt erhält man also: 8,124.0375 0 10001011 11111011110000001001101 Übersichtlicher lässt sich das schreiben als: 0100 0101 1111 1101 1110 0000 0100 1101 = (45 FD E0 4D) 16 Lösung: 1. Umwandeln in Dualzahl: 0.1 =? 0.1 2 = 0.2 0.8 2 = 1.6 0.6 2 = 1.2 0.8 2 = 1.6 0.6 2 = 1.2 = Man erkennt, dass sich die Zahlenreihen wiederholen 0.1 = (0.0001100110011001100110011 ) 2 2. Kommaverschiebung: (0.000110011001100110011 ) 2 = (1.10011001100110011001100110011 ) 2 2-4 7.Übung zur Vorlesung Grundlagen der Informatik Seite 7 von 8 Dipl.-Phys. Thomas Thull

3. Maschinenzahl (Typ single ): Objekt Größe Wert Anmerkung Vorzeichen 1 Bit 0 Zahl positiv Bias 8 Bit 127 (2 k-1-1) mit k=8 Exponent 8 Bit 4 + 127 = 123 = (01111011) 2 Komma wurde um 4 Stellen nach rechts (!) verschoben Mantisse 23 Bit (100110011001100110011001 ) 2 = (10011001100110011001101) 2 Runden! Insgesamt erhält man also: 0.1 0 01111011 10011001100110011001101 Übersichtlicher lässt sich das schreiben als: 0011 1101 1100 1100 1100 1100 1100 1101 = (3D CC CC CD) 16 7.Übung zur Vorlesung Grundlagen der Informatik Seite 8 von 8 Dipl.-Phys. Thomas Thull