Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

DVG1 - 05 - Datenformate 1 Datenformate. 2 Speicherhierarchie Prozessor, Register, CPU sehr schnell, sehr teuer, sehr klein 1 ns, 1 $/Byte, 1kByte Hauptspeicher,

Ähnliche Präsentationen


Präsentation zum Thema: "DVG1 - 05 - Datenformate 1 Datenformate. 2 Speicherhierarchie Prozessor, Register, CPU sehr schnell, sehr teuer, sehr klein 1 ns, 1 $/Byte, 1kByte Hauptspeicher,"—  Präsentation transkript:

1 DVG Datenformate 1 Datenformate

2 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, $/Byte, 1 GByte Externe Speicher, Platten, Bänder langsam, billig, riesig 10 ms...1 min, $/Byte, 100 GByte...1 PByte

3 3DVG Datenformate Kleinste Speichereinheit: 1bit ja - nein wahr - falsch Strom fließt - Strom fließt nicht Ladung gespeichert - Ladung nicht gespeichert größere Mengen: 1 kbit = 2 10 bit = 1024 bit ~ 10 3 bit 1 Mbit = 2 20 bit = 1024 kbit = bit ~ 10 6 bit 1 Gbit = 2 30 bit = 1024 Mbit = bit ~ 10 9 bit 1 Tbit = 2 40 bit = 1024 Gbit = bit ~ bit 1 Pbit = 2 50 bit = 1024 Tbit = bit ~ bit

4 4DVG Datenformate drei bit werden zu einer Oktalziffer zusammengefaßt Zahlen, die mit einer 0 beginnen werden als Oktalzahlen interpretiert. vier bit werden zu einer Hexadezimalziffer zusammengefasst 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

5 5DVG Datenformate 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.

6 6DVG Datenformateboolean 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);

7 7DVG Datenformatechar 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.

8 8DVG Datenformate 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 -2 l-1 und 2 l-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 x x7F0x800x81...0xFF long -Konstanten enden mit L, z.B. 321L Alle anderen ganzzahligen Konstanten sind immer int. Standardwert: 0 Wrapper Typen: Byte, Short, Integer, Long

9 9DVG Datenformate 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

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

11 11DVG Datenformate Zusammenfassung

12 12DVG Datenformate 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

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

14 14DVG Datenformate 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

15 15DVG Datenformate 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

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

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

18 18DVG Datenformate Zeichenkettenliteral Beliebige Folge von Zeichen, die in Anführungszeichen eingeschlossen sind. 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\1 62\154\144\41"

19 19DVG DatenformateTypumwandlungen Implizit immer in größere Typen, d.h byte ==> int byte ==> int char ==> int char ==> int short ==> int short ==> int int ==> long int ==> long float ==> double float ==> double byte, char, short, 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.: z.B.: short s; byte b = (byte)s; Umwandlung kann mit Informationsverlusten verbunden sein! Umwandlung kann mit Informationsverlusten verbunden sein!

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

21 21DVG Datenformate int i;

22 22DVG Datenformate Binäre Operatoren Addition + Addition + Subtraktion - Subtraktion - Multiplikation * Multiplikation * Division / mit Rundung zur Null Division / mit Rundung zur Null Modulo % Modulo % a%b = a - (a/b)*b bitweise Verschiebung nach links << 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 >> 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

23 23DVG Datenformate bitweise Verschiebung nach rechts ohne Berücksichtigung des Vorzeichens >>> 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 logische Operatoren bitweises logisches und : & bitweises logisches oder : | bitweises logisches exklusives oder : ^ Vergleichoperatoren >, =,, =, <=, ==, != ergeben immer boolsche Werte

24 24DVG Datenformate

25 25DVG Datenformate Ternärer Operator ?: boolausdr ? ausdruck1 : ausdruck2 ; boolausdr ? ausdruck1 : ausdruck2 ; boolausdr == true ==> ausdruck1 boolausdr == false ==> ausdruck2 Zuweisungsoperatoren Zuweisung = Zuweisung = kombinierte Zuweisung op=, wobei op ein beliebiger binärer Operator ist. i op= j ist äquivalent zu i = i op j. z.B.: 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 i = i i = i << 4 Zuweisungsoperatoren besitzen den Wert, der zugewiesen wird. Daher können sie in Ausdrücken wiederverwendet werden. Z.B.: 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;

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

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

28 28DVG Datenformate Operationen mit boolschen Werten Negation "!" Operatoren mit unverkürzter Auswertung und &, oder |, exklusives oder ^ und &, oder |, exklusives oder ^ Die Ausdrücke werden ausgewertet auch wenn das Ergebnis schon sicher ist. Z.B 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 || und &&, oder || Die Ausdrücke werden nur soweit ausgewertet, bis das Ergebnis des Ausdruckes bekannt ist. Die Ausdrücke werden nur soweit ausgewertet, bis das Ergebnis des Ausdruckes bekannt ist.

29 29DVG Datenformate 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.


Herunterladen ppt "DVG1 - 05 - Datenformate 1 Datenformate. 2 Speicherhierarchie Prozessor, Register, CPU sehr schnell, sehr teuer, sehr klein 1 ns, 1 $/Byte, 1kByte Hauptspeicher,"

Ähnliche Präsentationen


Google-Anzeigen