Grundlagen der Programmierung

Ähnliche Dokumente
Grundlagen der Programmierung

Grundlagen der Programmierung

Informatik Vorkurs - Vorlesung 2

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

Informatik I (D-MAVT)

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

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

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

Basisinformationstechnologie I

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Das Rechnermodell - Funktion

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

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

Informationsdarstellung 2.2

Einführung in die Informatik I

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

Übersicht. Peter Sobe 1

2.1 Fundamentale Typen

Zahlensysteme und Kodes. Prof. Metzler

1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung

Grundlagen der Informatik 2. Typen

7. Übung zur Vorlesung Grundlagen der Informatik

Hello World! Eine Einführung in das Programmieren Variablen

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

2.5 Primitive Datentypen

Das Maschinenmodell Datenrepräsentation

Wertebereiche, Overflow und Underflow

2 Repräsentation von elementaren Daten

Zahlen- und Buchstabencodierung. Zahlendarstellung

Vorlesung Programmieren

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

4. Zahlendarstellungen

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Zahlen in Binärdarstellung

Welche Informatik-Kenntnisse bringen Sie mit?

Grundlagen der Modellierung und Programmierung, Übung

3. Datentypen, Ausdrücke und Operatoren

Abschnitt 2: Daten und Algorithmen

Lösung 1. Übungsblatt

Rechnerorganisation. IHS 2018/2019 H.-D. Wuttke, K. Henke

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

Grundlagen der Technischen Informatik. 4. Übung

Zahlendarstellungen und Rechnerarithmetik*

Informatik I Übung, Woche 41

Informatik I: Abschnitt 7

5 Zahlenformate und deren Grenzen

Numerisches Programmieren

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

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

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

Grundlagen der Programmierung

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2018/19. Allgemeine Informationen zum Praktikum

Programmierkurs C++ Variablen und Datentypen

Algorithmen und Datenstrukturen (für ET/IT)

Übung Praktische Informatik II

4. Zahlendarstellungen

Einstieg in die Informatik mit Java

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Grundlagen der Technischen Informatik. 3. Übung

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Kapitel 5: Darstellung von Daten im Rechner

Einstieg in die Informatik mit Java

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Datentypen: integer, char, string, boolean

, 2014W Übungstermin: Fr.,

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

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

Rechnergrundlagen SS Vorlesung

Hochschule Niederrhein Einführung in die Programmierung Prof. Dr. Nitsche. Bachelor Informatik WS 2015/16 Blatt 3 Beispiellösung.

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

Java I Vorlesung Imperatives Programmieren

Datendarstellung Teil 2

Kapitel 5: Daten und Operationen

Einführung in die Programmierung Wintersemester 2008/09

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Kommentare in C. Keine Ahnung was ich vor einem Jahr gemacht habe. Ich verstehe es nicht ich schreibe es nochmal..

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

1. Tutorium Digitaltechnik und Entwurfsverfahren

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

3. Java - Sprachkonstrukte I

Wo sind wir? Übersicht lexikale Struktur von Java

1. 4-Bit Binärzahlen ohne Vorzeichen 2. 4-Bit Binärzahlen mit Vorzeichen 3. 4-Bit Binärzahlen im 2er Komplement 4. Rechnen im 2er Komplement

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

Angewandte Mathematik und Programmierung

Primitive Datentypen in Haskell

Rechnergrundlagen SS Vorlesung

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Allgemeine Informationen zum Praktikum

RO-Tutorien 3 / 6 / 12

2. Programmierung in C

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Motivation und Überblick

Transkript:

Grundlagen der Programmierung 5. Vorlesung 06.11.2018 1

Zahlendarstellungen 2

Speicherinhalte: Bits Hardware Spannung Ladung Magnetisierung Codierung 0V ungeladen unmagnetisiert 0 5V geladen magnetisiert 1 1 Bit entspricht der Information 0 oder 1 3

Zahlendarstellung Zählen mit Bits: 0 1 10 11 100 101 110 Zahlen werden als Bitfolgen gespeichert 4

Binärzahlen Binärzahl b n...b 2 b 1 b 0,b i {0, 1} Umrechnung in Dezimalsystem Beispiel: 1010102 = 1 2 5 + 0 2 4 +1 2 3 + 0 2 2 + 1 2 1 + 0 2 0 = 3210 + 810 + 210 = 4210 n i=0 b i 2 i Zahlensystem 5

Binärzahlen Umrechnung von Dezimal nach Binär: Teile durch 2, notiere Rest, bis Zahl=0 Beispiel: 251 251 : 2 = 125 Rest 1 125 : 2 = 62 Rest 1 62 : 2 = 31 Rest 0 31 : 2 = 15 Rest 1 15 : 2 = 7 Rest 1 7 : 2 = 3 Rest 1 3 : 2 = 1 Rest 1 1 : 2 = 0 Rest 1 25110 = 111110112 6

Hexadezimalzahlen Zur bessere Lesbarkeit von Binärzahlen fasst man 4 Bits zu einem Nibble zusammen 24 = 16 Zustände: Hexadezimalsystem (Basis 16) Bin Dez Hex Bin Dez Hex 0000 0 0 1000 8 8 0001 1 1 1001 9 9 0010 2 2 1010 10 A 0011 3 3 1011 11 B 0100 4 4 1100 12 C 0101 5 5 1101 13 D 0110 6 6 1110 14 E 0111 7 7 1111 15 F 7

Umrechnung Hexadezimalzahl h n... h2h1h0, hi {0,...,9,A,...,F} nach Dezimal: Dezimal nach Hexadezimal: Teile durch 16, notiere Rest, bis Zahl=0 251 : 16 = 15 Rest 11 10 = B16 15 : 16 = 0 Rest 15 10 = F16 251 10 = FB16 = 1111 10112 n i=0 h i 16 i 8

Natürliche Zahlen Speichern als Bitfolgen mit fester Länge Länge beeinflußt größte zu speichernde Zahl Zahlenbereich bei n Bit: 0... 2 n - 1 Länge hängt vom Datentyp ab Rechnen (z.b. Addition) wie im Dezimalsystem negative Zahlen? 9

Negative Zahlen Feste Anzahl von Bits pro Zahl (z.b. 16 Bit = 2 Byte für eine ganze Zahl) 1. Idee: Vorzeichenbit Nutze vorderstes Bit zum Speichern des Vorzeichens Zahlenbereich bei n Bit: -(2 n-1-1)... 2 n-1-1 Beispiel: -42 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 Vorzeichenbit 10

Vorzeichenbit: Probleme Null nicht mehr eindeutig: 10...0 = 00...0 Bitweise Addition funktioniert nicht mehr Z.B. (mit 8-Bit Zahlen) -210 = 10000010VZB +510 = 00000101VZB +310 10000111VZB = -710 11

Zweierkomplement Nutze gesamten Zahlenraum aus bei n Bit -2 n-1... 2 n-1-1 Beispiel: 4 Bit -9-8 -7-6 -5-4 -3-2 -1 0 1 2 3 4 5 6 7 8 010 = 00002K -810 = 10002K 110 = 00012K -710 = 10012K...... 710 = 01112K -110 = 11112K 12

Zweierkomplement: Umrechnung 1. Wandle (positive) Zahl ins Binärformat 2. Bilde bitweises Komplement (d.h. aus Null wird Eins und aus Eins wird Null) 3. Addiere 1 Beispiel: -42 (8 Bit) Binär: 00101010 Komplement: 11010101 +1: 11010110 13

Zweierkomplement: Addition Vorzeichenbit (mit 8-Bit Zahlen) -210 = 10000010VZB +510 = 00000101VZB +310 10000111VZB = -710 Jetzt: -210 = 111111102K +510 = 000001012K +310 000000112K = +310 14

Zweierkomplement Addition -210 = 111111102K -510 = 111110112K 111110012K =? Umrechnung, zwei Möglichkeiten: -1 und bitweises Komplement b n...b 2 b 1 b 0,b i {0, 1} b n 2 n + n 1 X i=0 b i 2 i 15

Reelle Zahlen Exponentialdarstellung reeller Zahlen 3,14 = 3,14 100 = 0,314 10 1 = 0,0314 10 2 Wandle ganzzahligen Anteil und Nachkommastellen in Binärzahl um Normalisiere Darstellung (Verschiebe Komma, so dass ganzzahliger Anteil 1 wird): ±1,mmmm 2 eee Addiere festgelegten Wert (Bias) zu eee (damit: positiv) Speichere VZ, Mantisse mmmm, mod. Exponent 16

Textdarstellung Jedem Buchstaben ist eine Zahl zugeordnet, die den Buchstaben repräsentiert ASCII = American Standard Code of Information Interchange 256 Zeichen (2 8 ) Unicode 65536 Zeichen (2 16 ) 17

ASCII-Tabelle 18

There are only 10 types of people in the world: Those who understand binary and those who do not. 19

Variablen, Datentypen, Ausdrücke 20

Bezeichner Für Namen von Variablen, Funktionen,... Beginnen mit Buchstaben Nur Buchstaben, Zahlen und '_' erlaubt Keine reservierten Worte von Matlab Erlaubt: x x1 eingabe summe bloeder_langer_name Nicht erlaubt: 12 2x end while bloeder_#@&%!!_name Case sensitive (halloduda ungleich HalloDuDa ) 21

Reservierte Wörter break case catch classdef continue else elseif end for function global if otherwise parfor persistent return spmd switch try while Test: ist Zeichenkette ein reserviertes Wort? Test: ist Zeichenkette eine Funktion? 22

Datentypen (numerisch) single double int8 int16 int32 int64 uint8 uint16 uint32 uint64 Gleitkomma, einfache Genauigkeit 32 Bit (1 VZ, 23 Mantisse, 8 Exp.) Gleitkomma, doppelte Genauigkeit 64 Bit (1 VZ, 52 Mantisse, 11 Exp.) Integer (ganze Zahl), 8 Bit Integer, 16 Bit Integer, 32 Bit Integer, 64 Bit Unsigned Integer (nat. Zahl), 8 Bit Unsigned Integer, 16 Bit Unsigned Integer, 32 Bit Unsigned Integer, 64 Bit 23

Wertebereiche 8 Bit 16 Bit 32 Bit int -2 7... 2 7-1 -128... 127-2 15... 2 15-1 -32768... 32767-2 31... 2 31-1 -2147483648... 2147483647 uint 0... 2 8 0... 255 0... 2 16 65535 0... 2 32 0... 4294967295 64 Bit -2 63... 2 63-1 0... 2 64 0... 18446744073709551616 24

Deklaration Ohne Angabe: double Andere Datentypen bei der Zuweisung angeben Datentyp ermitteln: whos Achtung: Punkt! 25

Datentypen (Zeichen) Buchstabenvektoren (char array) x = Hello World Zeichenkettenvektoren (string array) x = Hello World 26

Datentypen (weitere) logical (wahrheitswert, true oder false) complex x = 2 + 3i besteht aus zwei double Zahlen datetime (Datum und Uhrzeit) duration (Zeitspannen)... 27

Rundungsprobleme sum = single(0); n = 0; while( n < 100 ) n = n + 1; sum = sum + 1.1; end fprintf( "Summe: %f\n", sum ); 28

Rundungsprobleme while (r ~= 110.0)... end Wird evtl. nie wahr Immer Bereich testen: abs(r-110.0) <= 0.0001 Fixkommazahlen: besser kein single/double Z.B. Geldbeträge: mit Cent rechnen und intxx verwenden 29