Kapitel 5: Daten und Operationen

Ähnliche Dokumente
Daten und Operationen

Basisinformationstechnologie I

Einführung in die Informatik I

1. Grundlegende Konzepte der Informatik

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Vorlesung Programmieren

, 2017S Übungstermin: Di.,

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

5 Zahlenformate und deren Grenzen

, 2015S Übungstermin: Mi.,

Übung Praktische Informatik II

Lösung 1. Übungsblatt

Zahlensysteme und Kodes. Prof. Metzler

Übung Programmieren - Zahlendarstellung, SSH, SCP, Shellskripte -

Binärzahlen. Vorkurs Informatik. Sommersemester Institut für Informatik Heinrich-Heine-Universität Düsseldorf

Wertebereiche, Overflow und Underflow

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

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

N Bit Darstellung von Gleitkommazahlen

Rückblick. Zahlendarstellung zu einer beliebigen Basis b. Umwandlung zwischen Zahlendarstellung (214) 5 = (278) 10 =(?) 8

Inhalt. 2.1 Darstellung von Zahlen. 2.2 Darstellung von Zeichen. 2.3 Boolesche Algebra. 2.4 Aussagenlogik. Informatik 1 / Kapitel 2: Grundlagen

Das Verfahren in Hardware

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

Zahlendarstellungen und Rechnerarithmetik*

Inhalt. 2.1 Darstellung von Zahlen. 2.2 Darstellung von Zeichen. 2.3 Boolesche Algebra. 2.4 Aussagenlogik. 2.5 Logische Funktionen

Grundlagen der Technischen Informatik. 3. Übung

Grundlagen der Technischen Informatik. 3. Übung. Christian Knell Keine Garantie für Korrekt-/Vollständigkeit

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

Binäre Darstellung ganzer Zahlen

Grundlagen der Technischen Informatik. 3. Übung

Grundlagen der Technischen Informatik. 3. Übung

2.1 Fundamentale Typen

Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände

There are only 10 types of people in the world: those who understand binary, and those who don't

Der Zahlenformatstandard IEEE 754

Zahlen in Binärdarstellung

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben

Lösung 1. Übungsblatt

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

bei Unterlauf wird stattdessen Hälfte des Divisors addiert Ersparnisse einer Addition bzw. Subtraktion

Grundlagen der Programmierung

Grundlagen der Technischen Informatik. 4. Übung

Informatik Vorkurs - Vorlesung 2

Computergrundlagen Zahlensysteme

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

Grundlagen der Technischen Informatik. 4. Übung

1. Grundlagen der Informatik Zahlensysteme und interne Zahlendarstellung

4. Zahlendarstellungen

Grundlagen der Technischen Informatik. 4. Übung

Einführung in die Informatik I

Computergestützte Mathematik zur Linearen Algebra

II. Grundlagen der Programmierung

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts

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

Abschnitt 2: Daten und Algorithmen

Information und ihre Darstellung

2 ARITHM. UND LOG. AUSDRÜCKE ZAHLEN

Gleitkommaarithmetik. Erhöhen der Genauigkeit. Grundlagen der Rechnerarchitektur Logik und Arithmetik 124

1. Informationsdarstellung. Darstellung und Bedeutung. Darstellung und Bedeutung. Interpretation ??? 1. Kapitel

2 Repräsentation von elementaren Daten

(eindimensionaler) Paritätscode: Codes (8a)

Richtig Rechnen. // Program: fahrenheit.c // Convert temperatures from Celsius to Fahrenheit.

4. Zahlendarstellungen

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

IEEE 754 Encoding. Wie stellt man im IEEE 754 Format eigentlich die 0 dar!? Double Precision (Bias=1023)

Informatik I Übung, Woche 41

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = binär

Informatik I Modul 2: Rechnerarithmetik (1)

Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer?

Modul 2: Rechnerarithmetik (1) Informatik I. Modul 2: Rechnerarithmetik (1) Rechnerarithmetik. Formale Grundlagen. Zahlensysteme (1) Zahlensysteme (2)

2.Vorlesung Grundlagen der Informatik

Kapitel 5: Darstellung von Daten im Rechner

Zahlensysteme. Wie Computer Zahlen darstellen und mit ihnen rechnen Peter Ziesche

Technische Informatik I

Programmiervorkurs Einführung in Java Tag 1

Grundzüge der Informatik Zahlendarstellungen (7)

1.5 Einführung und Zahlensysteme/Darstellung gebrochener Zahlen

Einführung in die Informatik

Einführung in die Informatik

Zahlensysteme: Oktal- und Hexadezimalsystem

Computer rechnen nur mit Nullen und Einsen

Transkript:

Kapitel 5: Daten und Operationen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2007 Folien nach einer Vorlage von H.-Peter Gumm, Philipps-Universität Marburg

Ankündigungen 25.9.2007 Termin Fachprüfung: Freitag, 14. Dezember 2007 Termin Wiederholungsprüfung: Mittwoch, 6. Februar 2008 Zur Übung: Mittwoch, 3. Oktober 2007 keine Übung Hausaufgaben auf Übungsblatt 3 dafür etwas umfangreicher Abgabe der Hausaufgaben in jedem Fall schriftlich Programmieraufgaben auch elektronisch per BlueJ submitter Bearbeiten Sie die Hausaufgaben selbst! Praktische Informatik I, HWS 2007, Kapitel 5 Seite 2

Kommentar zu Kommentaren Denken Sie beim Programmieren an Ihren Tutor Tutor soll das Programm schnell verstehen Tutor kann Java! Daumenregeln Erläutern Sie mittels Javadoc einleitend jedes Feld und jede Methode (Schnittstelle) Was speichert/repräsentiert das Feld? Was macht die Methode? Erläutern Sie ungewöhnliche oder schwierige Stellen im Programm Stellen, über die Sie lange nachgedacht haben Stellen, an denen Sie Fehler gemacht und korrigiert haben Stellen, die Sie beim zweiten Lesen nicht verstanden haben Kommentieren ist sehr stark eine Frage der Erfahrung Praktische Informatik I, HWS 2007, Kapitel 5 Seite 3

Übersicht Bits, Bytes, Binärzahlen, Hex-Zahlen, Dezimalzahlen Konversionen, cast Zufallszahlen Boolesche Werte, Boolesche Algebra Kurzer Exkurs in die Logik Zeichen, Unicode, Fonts Praktische Informatik I, HWS 2007, Kapitel 5 Seite 4

Operationen auf ganzen Zahlen Grundoperationen Zahlkonstanten (Literale) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, einstellige Operationen +, - plus, minus Beispiel: +5, -17, -(3-4) = zweistellige Operationen +, -, * Addition, Subtraktion, Multiplikation Beispiele: -3 + 17, 5 + -17, 3*(4-7) / Ganzzahl-Division, mathematisch: div) Beispiele: 17/4 =, -1/-4 =, -3/2=, (-3)/2= % Rest bei Ganzzahl-Division, mathematisch: mod) Beispiele: 17%4 =, -1%-4 =, -3%2= Praktische Informatik I, HWS 2007, Kapitel 5 Seite 5

BlueJ als Java-Taschenrechner Direkteingabe aktivieren Im Calculator rechnen 26/7 = 3 26%7 = 5 etc. Praktische Informatik I, HWS 2007, Kapitel 5 Seite 6

div und mod div : Division ohne Rest 23 div 7 = 3 mod: Rest bei der Division 23 mod 7 = 2 Eigenschaften von div und mod Seien n und d natürliche Zahlen, dann gilt: (n div d)*d + (n mod d) = n 0 (n mod d) < d Wichtig! Sei z = (d k-1 d k-2...d 1 d 0 ) 10 die Dezimaldarstellung von z ( k > 0 ): 0 d i < 10 für i=0,...,(k-1) (d k-1 d k-2...d 1 ) 10 = z div 10 d 0 = z mod 10 Beispiel: 2002 = (2 0 0 2) 10 2002 div 10 = 200 = (2 0 0) 10 2002 mod 10 = 2 Unterscheide Zahl und ihre Darstellung als Folge von Ziffern Praktische Informatik I, HWS 2007, Kapitel 5 Seite 7

Computer verstehen nur 0 und 1 Eine physikalische Speicherzelle kann nur einen von zwei Zuständen haben Strom/kein Strom, Ladung/keine Ladung, ein/aus, positiv/negativ Interpretiere einen dieser Zustände als 0, den anderen als 1 Eine Gruppe von Speicherzellen kann viele Kombinationen von Zuständen speichern: Eine Gruppe von zwei Speicherzellen kann 4 Zustände speichern 00, 01, 10, 11 Eine Gruppe von 4 Speicherzellen kann 16 Zustände speichern 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111 Eine Gruppe von 8 Speicherzellen kann 256 = 2 8 Zustände speichern: 00000000, 00000001, 11111110, 11111111 0 1 oder 0 0, 0 1, 1 0, 1 1 0 0 0 0, 0 0 0 1... 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Praktische Informatik I, HWS 2007, Kapitel 5 Seite 8

Byte, Wort, Doppelwort Kein Computer der Welt gibt sich mit einzelnen Speicherzellen ab Die kleinste Einheit, mit der Computer rechnen ist ein Byte, das sind 8 Bit Die kleinste Einheit, die ein Computer speichern oder lesen kann ist ein Byte 16-Bit-Computer rechnen intern mit zwei Byte großen Daten zwei Byte nennt man dann ein Wort Vier Byte heißen ein Doppelwort, 8 Byte ein Quad-Wort 32 Bit Computer rechnen intern mit 4 Byte großen Daten Ob dann 4 Byte ein Wort oder ein Doppelwort heißen, ist uneinheitlich Die kleinste im Speicher adressierbare Einheit kann 1 Byte, 2 Byte aber auch 4 Byte sein 64-Bit Computer Praktische Informatik I, HWS 2007, Kapitel 5 Seite 9

Können Computer auch Zahlen speichern? Man kann den Speicherzuständen Zahlen zuordnen Zum Beispiel positive Zahlen 0000 = 0, 0001 = 1, 0010 = 2, 0011 = 3, 0100 = 4, 0101 = 5, 0110 = 6, 0111 = 7, 1000 = 8, 1001 = 9, 1010 =10, 1011 = 11, 1100 = 12, 1101 = 13, 1110 = 14, 1111 = 15 oder ganze (positive und negative) Zahlen 0000 = 0, 0001 = 1, 0010 = 2, 0011 = 3, 0100 = 4, 0101 = 5, 0110 = 6, 0111 = 7, 1000 = -8, 1001 = -7, 1010 = -6, 1011 = -5, 1100 = -4, 1101 = -3, 1110 = -2, 1111 = -1 Bitfolge 0000 0001 0010 0011 Positive Zahl 0 1 2 3 Ganze Zahl 0 1 2 3 In einem Byte kann man speichern eine positive Zahl zwischen 0 und 255 d.h. zwischen 0 und 2 8, oder eine ganze Zahl aus dem Bereich -128.. +127, d.h. -2 7.. 2 7-1. 0100 0101 0110 0111 4 5 6 7 4 5 6 7 In zwei Byte passt eine positive Zahl zwischen 0 und 65535, d.h. zwischen 0 und 2 16, oder eine ganze Zahl aus dem Bereich -32768.. +32767, d.h. -2 15.. 2 15-1. 1000 1001 1010 1011 8 9 10 11-8 -7-6 -5 In 4 Byte passt eine positive Zahl zwischen 0 und 4294967295 d.h. zwischen 0 und 2 32, oder eine ganze Zahl aus dem Bereich -2147483648.. +2147483647, d.h. -2 31.. 2 31-1. 1100 1101 1110 1111 12 13 14 15-4 -3-2 -1 Praktische Informatik I, HWS 2007, Kapitel 5 Seite 10

Wie rechnen Computer? ganz normal : 1+0 = 1 0+1 = 1 1+1 = 0 Übertrag 1 1+1+1 = 1 Übertrag 1 usw. + = 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 Siehe Vorlesung Praktische Informatik II Praktische Informatik I, HWS 2007, Kapitel 5 Seite 11

Woher weiß der Computer, ob eine positive oder eine negative Zahl gemeint ist? Er weiss es nicht Dank der cleveren Codierung (Zweierkomplement) braucht er es nicht zu wissen Nur der Programmierer muss wissen, was seine Daten bedeuten Stimmt: 5 + 9 = 14 + = 0 1 0 1 1 0 0 1 1 1 1 0 Stimmt: 5 + -7= -2 Praktische Informatik I, HWS 2007, Kapitel 5 Seite 12

Binärsystem Binärziffern: 0 und 1 Binärzahl: Folge b n b n-1 b 1 b 0 von Binärziffern Beispiel: 10110111 Falls Missverständnis möglich, Index 2 verwenden Zahlenwert Beispiel : (10110111) 2 W = b n *2 n +b n-1 *2 n-1 + +b 1 *2 1 +b 0 Beispiel: 10110111 = 2 7 +2 5 +2 4 +2 2 +2 1 +2 0 = 183 Von Dezimal nach Binär W = (b n b n-1 b 1 b 0 ) 2 W div 2 = (b n b n-1 b 1 ) 2 und W mod 2 = b 0 Unterscheide Zahl und ihre Darstellung als Folge von Ziffern Praktische Informatik I, HWS 2007, Kapitel 5 Seite 13

Binär - Dezimal Zahlenwert W = b n *2 n +b n-1 *2 n-1 + +b 1 *2 1 + b 0 = (b n b n-1 b 1 b 0 ) 2 W = 2 * (b n *2 n-1 +b n-1 *2 n-2 + +b 1 *2 0 ) + b 0 = 2 *(b n b n-1 b 1 ) 2 + b 0 und 0 b 0 < 2 W div 2 W mod 2 Also von Dezimal nach Binär W = (b n b n-1 b 1 b 0 ) 2 W div 2 = (b n b n-1 b 1 ) 2 und W mod 2 = b 0 Praktische Informatik I, HWS 2007, Kapitel 5 Seite 14

Umwandlung ins Binärsystem W = 2* (W div 2) + W mod 2 2002 = 2 * 1001 + 0 1001 = 2 * 500 + 1 500 = 2 * 250 + 0 250 = 2 * 125 + 0 125 = 2 * 62 + 1 62 = 2 * 31 + 0 31 = 2 * 15 + 1 15 = 2 * 7 + 1 7 = 2 * 3 + 1 3 = 2 * 1 + 1 1 = 2 * 0 + 1 (2002) 10 = 10 (1 (11 1 1 1 0 1 0 0 1 0) 0) 2 Praktische Informatik I, HWS 2007, Kapitel 5 Seite 15

Hexadezimalsystem Im Hexadezimalsystem verwendet man 16 Ziffern : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Positionsbewertungen F53CA = F*16 4 +5*16 3 +3*16 2 +C*16 1 +A*16 0 = (1004490) 10 Umrechnung vom Dezimalsystem ins Hexadezimalsystem: (2002) 10 = (d 2 d 1 d 0 ) 16 = d 2 *16 2 +d 1 *16 1 + d 0 *16 0 = 16*(d 2 *16 1 +d 1 *16 0 ) + d 0, wobei 0 d 0 < 16 Konsequenz: 2002 div 16 = 125 = (d 2 d 1 ) 16 d 0 = 2002 mod 16 = 2 d 1 = 125 mod 16 = D 125 div 16 = 7 = (d 2 ) 16 d 2 = 7 mod 16 = 7 Ergebnis: 2002 = (7D2) 16 2002 div 16 2002 mod 16 Praktische Informatik I, HWS 2007, Kapitel 5 Seite 16

Darstellung von Bytes Ein Byte wie z.b. 10111110 kann aufgefasst werden als 8-stellige Zahl im Binärsystem (10111110) 2 = 1*2 7 +0*2 6 +1*2 5 +1*2 4 +1*2 3 +1*2 2 +1*2 1 +0*2 0 3 stellige Zahl im Oktalsystem (mit führender Oktalziffer < 4) (10 111 110) 2 = 2*8 2 +7*8 1 +6*8 0 = (276) 8 2-stellige Zahl im Hexadezimalsystem 1011 1110 = 11*16 1 +14*16 0 = (BE) 16 Praktische Informatik I, HWS 2007, Kapitel 5 Seite 17

Ganze Zahlen in Java Java bietet vier Varianten von ganz-zahligen Wertetypen byte 1 Byte = 8 bit Wertebereich -2 7 = -128 +127 = 2 7-1 short 2 Byte = 16 bit Wertebereich -2 15 = -32768 +32767 = 2 15-1 int 4 Byte = 32 bit Wertebereich -2 31 = -2147483648 +2147483647= 2 31-1 long 8 Byte = 64 bit Wertebereich -2 63 2 63-1, d.h. -9223372036854775808 9223372036854775807 Praktische Informatik I, HWS 2007, Kapitel 5 Seite 18

Bereichsfehler Operationen auf Zahlen können den festgelegten Bereich überschreiten z.b. Addition zweier großer positiver Zahlen Im 2-Byte-Bereich 0.. 2 16-1 die Addition 50000+50000: 1100001101010000 + 1100001101010000 =11000011010100000 Was soll das 50000 + 50000 = 34464?? + = 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 Stimmt doch : -15536 + -15536 = - 31072 Übertrag Praktische Informatik I, HWS 2007, Kapitel 5 Seite 19

Bereichsüberschreitung Auch bei ganz-zahligen Werten ist Bereichsüberschreitung möglich z.b. bei der Addition großer Zahlen, z.b. bei Subtraktion kleiner Zahlen, bei der Multiplikation. Beispiel aus dem Bank-Projekt Legen Sie ein Konto für Bill Gates an. Zahlen Sie sein Geld ein: 2147483600. Überweisen Sie ihm nun das Geld für Ihr Windows-Update: 60. Überprüfen Sie mit Inspect, wie viele Miese er jetzt hat. Java speichert int-werte in 4 Bytes ab Bereich: - 2147483648... 2147483647 Für Bereichsüberschreitungen ist der Programmierer verantwortlich Später mehr dazu (auch in der Übung) Praktische Informatik I, HWS 2007, Kapitel 5 Seite 20

Zahlenliterale Zahlenkonstanten (Literale) standardmässig als int interpretiert int-bereich -2147483648 +2147483647 Interpretation als long durch Anhängen von L oder l Praktische Informatik I, HWS 2007, Kapitel 5 Seite 21

Konversionen Werte aus einem Bereich können in Werte des anderen konvertiert werden engl.: to cast neudeutsch: casten, gecastet, Verknüpfung von Werten aus verschiedenen Bereichen konvertiert automatisch in den größeren z.b. (short)+(long) = (long) Konvertierung in zu kleinen Bereich wird ausgeführt auch wenn es nicht passt Fehler Praktische Informatik I, HWS 2007, Kapitel 5 Seite 22

Dezimalzahlen Dezimalzahlen sind Zahlen mit Komma. Man speichert das Vorzeichen die Folge der Ziffern (Mantisse) die Position des Kommas (Exponent) allerdings im Binären Zahlensystem -7141,59270595 = -0,714159270595*10 4 Vorzeichen: Mantisse Exponent: 1 71415927 4 Viele Bits für Mantisse: hohe Genauigkeit Viele Bits für Exponenten: großer Bereich Praktische Informatik I, HWS 2007, Kapitel 5 Seite 23

Operationen auf Dezimalzahlen Grundoperationen Zahlkonstanten (Literale) Zahlen mit Dezimalpunkt Beispiel: 0.0124, 3.1415, 1234.0,.23 Wissenschaftliche Notation Beispiele: 234E-12 für 2.34*10-12, 1.5E17 Einstellige Operationen +, - plus, minus Zweistellige Operationen +, -, *, / Addition, Subtraktion, Multiplikation, Division Praktische Informatik I, HWS 2007, Kapitel 5 Seite 24

Java Dezimalzahlen Siehe Vorlesung Praktische Informatik II Java hat zwei Varianten von Dezimalzahlen float (floating point number, single precision) 32 Bit double (double precision) 64 Bit Das genaue Format ist in der IEEE Norm 745 festgelegt: IEEE 745 Sign Exponent Mantisse single 1 bit 8 bit 23 bit Double 1 bit 11 bit 52 bit Praktische Informatik I, HWS 2007, Kapitel 5 Seite 25

Dezimale Literale standardmäßig double float durch Anhängen von F oder f gemischte Operationen konvertieren in größeren Bereich (double) Konversionen, casts (float) (double) Konversion nach (int) schneidet Stellen ab nicht dasselbe wie runden Praktische Informatik I, HWS 2007, Kapitel 5 Seite 26

Fehler bei Dezimalzahlarithmetik Dezimalzahlarithmetik ist nicht exakt Werte werden approximiert Wir addieren 0.1 und 0.2 und erhalten: Vergleiche sind nicht 100% verlässlich: 0.1 + 0.2 0.3 Addition ist nicht kommutativ Praktische Informatik I, HWS 2007, Kapitel 5 Seite 27