Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenformate DVG1 - 05 - Datenformate.

Ähnliche Präsentationen


Präsentation zum Thema: "Datenformate DVG1 - 05 - Datenformate."—  Präsentation transkript:

1 Datenformate DVG Datenformate

2 Speicherhierarchie Prozessor, Register, CPU
sehr schnell, sehr teuer, sehr klein 1 ns, 1 $/Byte, 1kByte Hauptspeicher, RAM schnell, mäßig teuer, mäßig groß 60 ns, 10-3 $/Byte, 1 GByte Externe Speicher, Platten, Bänder langsam, billig, riesig 10 ms...1 min, 10-9 $/Byte, 100 GByte...1 PByte DVG Datenformate

3 Kleinste Speichereinheit: 1bit
ja - nein wahr - falsch 0 - 1 Strom fließt - Strom fließt nicht Ladung gespeichert - Ladung nicht gespeichert größere Mengen: 1 kbit = 210 bit = 1024 bit ~ 103 bit 1 Mbit = 220 bit = 1024 kbit = bit ~ 106 bit 1 Gbit = 230 bit = 1024 Mbit = bit ~ 109 bit 1 Tbit = 240 bit = 1024 Gbit = bit ~ 1012 bit 1 Pbit = 250 bit = 1024 Tbit = bit ~ 1015 bit DVG Datenformate

4 drei bit werden zu einer Oktalziffer zusammengefaßt 000...111 0...7
Zahlen, die mit einer „0“ beginnen werden als Oktalzahlen interpretiert. vier bit werden zu einer Hexadezimalziffer zusammengefasst 0 ... F Zahlen, die mit „0x“ beginnen werden als Hexadezimalzahlen interpretiert. 8 bit = 1 Byte Analog bit gibt es kByte, MByte, GByte, TByte, PByte ... Byte: 0x xFF DVG Datenformate

5 Primitive Datentypen Allgemeine Form: typ name = wert; z.B.:
int i = 12; Variable name mit dem Typ typ wird direkt im Speicher angelegt und mit dem Wert wert initialisiert. Wird typ name; benutzt, werden die Standardwerte zur Initialisierung benutzt. Standardwert ist immer „alle bit 0“. Zu jedem primitiven Datentyp gibt es einen „Wrapper Typ“ (Umschlag Typ). Mit dieser kann man Objekte von dem Typ mit new erzeugen. DVG Datenformate

6 boolean Logischer Wahrheitswert Ergebnis logischer Ausdrücke
mögliche Werte: false, true Standardwert: false Wrapper Typ: Boolean boolean schalter = true; schalter = false; if (schalter) { .... } else { .... } schalter = !schalter; schalter = (n > 5) & (i < 3); DVG Datenformate

7 char Ein Zeichen des Unicodes
mögliche Werte: 0x xFFFF. Konstanten, der Form '\uxxxx' werden als Unicode-Zeichen in Hexadezimaldarstellung interpretiert. z.B.: '0' = 48 = '\u0030' = 0x0030 'A' = 65 = '\u0041' = 0x0041 'a' = 97 = '\u0061' = 0x0061 enthält die Zeichen vieler Sprachen, z.B. griechisch, kyrillisch, arabisch, chinesisch (?) .... Programmtexte können alle Unicode-Zeichen benutzen. Es kann z.B. eine Variable µ definiert werden. Standardwert: '\u0000' Wrapper Typ: Char char und boolean sind die einzigen vorzeichenfreien Datentypen. DVG Datenformate

8 byte, short, int, long Verschieden lange ganze Zahlen
Länge: byte 8 bit; short 16 bit; int 32 bit; long 64 bit mögliche Werte: alle ganzen Zahlen zwischen -2l-1 und 2l-1-1, l = Länge des Typs (8, 16, 32, 64) interne Darstellung: im „zweier-Komplement“, d.h. 0x x7F entspricht den positiven Zahlen 0x xFF entspricht den negativen Zahlen, wert = wert - 256 0x x7F 0x80 0x xFF long-Konstanten enden mit „L“, z.B. 321L Alle anderen ganzzahligen Konstanten sind immer int. Standardwert: 0 Wrapper Typen: Byte, Short, Integer, Long DVG Datenformate

9 float, double Gleitkommazahlen, werden im IEEE 754 Format gespeichert
Länge: float 32 bit; double 64 bit < |float| < < |double| < zusätzlich +0, -0, +unendlich, -unendlich, keineZahl (NaN) alle Operationen sind zulässig und liefern definierte Resultate z.B: 1/+0 = +unendlich 1/-0 = -unendlich +0/+0 = NaN float-Konstanten enden mit „f“, z.B e23f double-Konstanten enden mit „d“, z.B e-243d Standardwert: 0.0f , 0.0d Wrapper Typ: Float, Double DVG Datenformate

10 void void ist der Rückgabewert von Funktionen, die keinen Wert zurückgeben. Wrapper Typ: Void DVG Datenformate

11 Zusammenfassung DVG Datenformate

12 Gemeinsame Eigenschaften der primitiven Datentypen:
belegen einen feste Speichermenge, 1bit (boolean) 1 Byte (byte) 2 Byte (char, short) 4 Byte (int, float) 8 Byte (long, double) Variable von primitiven Typen werden direkt im Speicher angelegt z.B. bewirkt die Anweisung double x = 1.0d; die Reservierung von 8Byte Speicher und die Initialisierung mit dem Wert 1.0d DVG Datenformate

13 Bezeichner bestehen aus Buchstaben (a-z, A-Z, Unicode) Ziffern (0-9)
Sonderzeichen (´_´ und ´$´) beginnen nie mit einer Ziffer z.B.: zulässig sind abcd123 xy$05 märz_23 nicht zulässig sind 123xy märz-23 DVG Datenformate

14 Gültigkeit von Bezeichnern
Variable bekommen in der Anweisung Speicherplatz zugewiesen, in der sie vereinbart werden. Der Platz den Variable belegen wird am Ende des Blockes freigegeben, in dem sie vereinbart wurden. Z.B.: float f (float x) { int i=3; i=i+1; float x0 = 0; x=x+x0; return Math.abs(x); } i ist in dem ganzen Block bekannt, x0 nur in der zweiten Hälfte DVG Datenformate

15 System.out.println(i+"*pi="+y); i=i+1; }
float f (float x) { int i=0; while (i<10) float y=i* f; System.out.println(i+"*pi="+y); i=i+1; } i ist im ganzen Block bekannt y ist nur in dem inneren Block bekannt DVG Datenformate

16 Literale Festkommaliteral
enthält nur Ziffern und < ==> int z.B enthält nur Ziffern und >=231 oder endet mit l oder L ==> long z.B L beginnt mit 0x oder 0X ==> hexadezimale Darstellung beginnt mit 0 ==> oktale Darstellung Gleitkommaliteral enthält Ziffern, einen ´.´ oder ein ´e´ oder ´E´, endet nicht mit ´f´ oder ´F´ ==> double z.B.: , e-1, E22 wenn ein ´f´ oder ´F´ angehängt wird ==> float z.B.: f, e-1F, E22f logisches Literal true und false DVG Datenformate

17 Alphanumerische Literale ein Zeichen in Hochkomma eingeschlossen
Unicodezeichen mit \ddd (octal), führende Nullen können entfallen \udddd (hexadezimal) z.B: ´A´ = ´\101´ = ´\u0041´ ; ´ ´ = ´\40´ = ´\u0020´ besondere Zeichen DVG Datenformate

18 Zeichenkettenliteral
Beliebige Folge von Zeichen, die in Anführungszeichen eingeschlossen sind. Z.B.: "Hello, World!" "\u0048\u0065\u006C\u006c\u006f\u002c\u0020\u0057\u006f\u0072\u006C\u0064\u0021" "\110\145\154\154\157\54\40\127\157\162\154\144\41" DVG Datenformate

19 Typumwandlungen Implizit immer in „größere“ Typen, d.h byte ==> int
char ==> int short ==> int int ==> long float ==> double byte, char, short, int, long ==> float, double byte und short werden vor der Verarbeitung immer nach int konvertiert Explizite Umwandlung durch „casting“ : (typ)ausdruck z.B.: short s; byte b = (byte)s; Umwandlung kann mit Informationsverlusten verbunden sein! DVG Datenformate

20 Operationen mit Festkommazahlen
Unäre Operatoren Negation „-“ Bit-Komplement „~“ bitweises ersetzen der 0 durch 1 und umgekehrt Inkrement „++“ j = ++i <==> i=i+1; j=i; (Präinkrement) j = i++ <==> j=i; i=i+1; (Postinkrement) Dekrement „--“ j = --i <==> i=i-1; j=i; (Prädekrement) j = i-- <==> j=i; i=i-1; (Postdekrement) DVG Datenformate

21 int i; DVG Datenformate

22 Binäre Operatoren Addition „+“ Subtraktion „-“ Multiplikation „*“
Division „/“ mit Rundung zur Null Modulo „%“ a%b = a - (a/b)*b bitweise Verschiebung nach links „<<“ a << b, die Binärdarstellung von a wird um (b%L) Stellen nach links verschoben, rechts wird mit „0“ aufgefüllt. L ist die Länge von a (byte 8, char und short 16, int 32, long 64) bitweise Verschiebung nach rechts unter Berücksichtigung des Vorzeichens „>>“ a >> b, die Binärdarstellung von a wird um (b%L) Stellen nach rechts verschoben, dabei wird von links mit dem ersten bit aufgefüllt DVG Datenformate

23 Vergleichoperatoren „>“, „<“, „>=“, „<=“, „==“, „!=“
bitweise Verschiebung nach rechts ohne Berücksichtigung des Vorzeichens „>>>“ a >>> b, die Binärdarstellung von a wird um (b%L) Stellen nach rechts verschoben, dabei wird von links mit „0“ aufgefüllt logische Operatoren bitweises logisches „und“ : „&“ bitweises logisches „oder“ : „|“ bitweises logisches „exklusives oder“ : „^“ Vergleichoperatoren „>“, „<“, „>=“, „<=“, „==“, „!=“ ergeben immer boolsche Werte DVG Datenformate

24 DVG Datenformate

25 Zuweisungsoperatoren
Ternärer Operator „?:“ boolausdr ? ausdruck1 : ausdruck2 ; boolausdr == true ==> ausdruck1 boolausdr == false ==> ausdruck2 Zuweisungsoperatoren Zuweisung „=“ kombinierte Zuweisung „op=“ , wobei op ein beliebiger binärer Operator ist. i op= j ist äquivalent zu i = i op j. z.B.: i += 1 <==> i = i+1 <==> i++ i <<= 4 <==> i = i << 4 Zuweisungsoperatoren besitzen den Wert, der zugewiesen wird. Daher können sie in Ausdrücken wiederverwendet werden. Z.B.: i = 1 + (j=3*5) *7; ==> j=15; i=106; i = (j = 999); ==> j=999; i=999; DVG Datenformate

26 Operationen mit Gleitkommazahlen
Folgende Operatoren arbeiten bei Gleitkommazahlen analog zu Festkommazahlen: Unäre Operatoren : „-“, „++“, „--“ Binäre Operatoren : „+“, „-“, „*“, „/“, „%“, „>“, „<“, „>=“, „<=“, „==“, „!=“ ternärer Operator : „?:“ Zuweisungsoperatoren : „=“, „op=“ DVG Datenformate

27 Operationen mit Zeichenketten
Verkettung „+“ string1 + string2 ergibt die Zeichenkette, die aus Aneinanderhängen der Zeichenketten string1 und string2 entsteht. Z.B.: “Hallo, “ + “World!“ ergibt “Hallo, World!“ DVG Datenformate

28 Operationen mit boolschen Werten
Negation "!" Operatoren mit unverkürzter Auswertung und „&“, oder „|“, exklusives oder „^“ Die Ausdrücke werden ausgewertet auch wenn das Ergebnis schon sicher ist. Z.B b=(i > j) | f(j) ; Wenn i>j ist, müsste f(j) nicht aufgerufen werden um b zu bestimmen. Wird aber doch aufgerufen. Operatoren mit verkürzter Auswertung und „&&“, oder „||“ Die Ausdrücke werden nur soweit ausgewertet, bis das Ergebnis des Ausdruckes bekannt ist. DVG Datenformate

29 Reihenfolge von Operatoren
Die Operationen werden der Priorität nach abgearbeitet. Bei gleicher Priorität werden die Operatoren von links nach rechts abgearbeitet. Zuweisungsoperatoren werden von rechts nach links abgearbeitet. DVG Datenformate


Herunterladen ppt "Datenformate DVG1 - 05 - Datenformate."

Ähnliche Präsentationen


Google-Anzeigen