Datenformate

 Documents

 36 views
of 29
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Description
Datenformate DVG1 - 05 - Datenformate 1 Speicherhierarchie Prozessor, Register, CPU sehr schnell, sehr teuer, sehr klein 1 ns, 1 $/Byte, 1kByte Hauptspeicher,…
Share
Transcript
Datenformate DVG1 - 05 - Datenformate 1 Speicherhierarchie Prozessor, Register, CPU sehr schnell, sehr teuer, sehr klein 1 ns, 1 $/Byte, 1kByte Hauptspeicher, RAM schnell, mäßig teuer, mäßig groß DVG1 - 05 - Datenformate 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 2 Kleinste Speichereinheit: 1bit ja - nein wahr - falsch 0-1 Strom fließt - Strom fließt nicht Ladung gespeichert - Ladung nicht gespeichert größere Mengen: DVG1 - 05 - Datenformate 1 kbit = 210 bit = 1024 bit ~ 10 3 bit 1 Mbit = 220 bit = 1024 kbit = 1048576 bit ~ 10 6 bit 1 Gbit = 230 bit = 1024 Mbit = 1073741824 bit ~ 10 9 bit 1 Tbit = 240 bit = 1024 Gbit = 1099511627776 bit ~ 1012 bit 1 Pbit = 250 bit = 1024 Tbit = 1125899906842624 bit ~ 10 15 bit ....... 3 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 0000 ... 1111 0 ... F DVG1 - 05 - Datenformate Zahlen, die mit „0x“ beginnen werden als Hexadezimalzahlen interpretiert. 8 bit = 1 Byte 00000000 ... 11111111 0 ... 255 Analog bit gibt es kByte, MByte, GByte, TByte, PByte ... Byte: 0x00 ... 0xFF 4 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; DVG1 - 05 - Datenformate 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. 5 boolean  Logischer Wahrheitswert  Ergebnis logischer Ausdrücke  mögliche Werte: false, true  Standardwert: false  Wrapper Typ: Boolean boolean schalter = true; DVG1 - 05 - Datenformate schalter = false; if (schalter) { .... } else { .... } schalter = !schalter; schalter = (n > 5) & (i < 3); 6 char  Ein Zeichen des Unicodes  mögliche Werte: 0x0000 ... 0xFFFF. 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 DVG1 - 05 - Datenformate  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. 7 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. 0x00 ... 0x7F entspricht den positiven Zahlen 0x80 ... 0xFF entspricht den negativen Zahlen, wert = wert - 256 0x00 ... 0x7F 0x80 0x81 ... 0xFF DVG1 - 05 - Datenformate 0 ... 127 128 129 ... 255 0 ... 127 -128 -127 ... -1  long-Konstanten enden mit „L“, z.B. 321L  Alle anderen ganzzahligen Konstanten sind immer int.  Standardwert: 0  Wrapper Typen: Byte, Short, Integer, Long 8 float, double  Gleitkommazahlen, werden im IEEE 754 Format gespeichert  Länge: float 32 bit; double 64 bit  1.4 10-45 < |float| < 3.4 10+38  4.9 10-324 < |double| < 1.7 10+308  zusätzlich +0, -0, +unendlich, -unendlich, keineZahl (NaN)  alle Operationen sind zulässig und liefern definierte Resultate z.B: 1/+0 = +unendlich DVG1 - 05 - Datenformate 1/-0 = -unendlich +0/+0 = NaN  float-Konstanten enden mit „f“, z.B. -1.234e23f  double-Konstanten enden mit „d“, z.B. 1.234567e-243d  Standardwert: 0.0f , 0.0d  Wrapper Typ: Float, Double 9 void  void ist der Rückgabewert von Funktionen, die keinen Wert zurückgeben.  Wrapper Typ: Void DVG1 - 05 - Datenformate 10 Zusammenfassung Typ Größe Minimum Maximum Wrapper Typ boolean 1 bit - Boolean 16 char 16 bit Unicode 0 Unicode 2 -1 Char byte 8 bit -128 127 Byte 15 15 short 16 bit -2 2 -1 Short 31 31 int 32 bit -2 2 -1 Integer DVG1 - 05 - Datenformate 63 63 long 64 bit -2 2 -1 Long float 32 bit IEEE 754 IEEE 754 Float double 64 bit IEEE 754 IEEE 754 Double void - - - Void 11 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) DVG1 - 05 - Datenformate  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 12 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 DVG1 - 05 - Datenformate  xy$05  märz_23  nicht zulässig sind  123xy  märz-23 13 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; DVG1 - 05 - Datenformate float x0 = 0; x=x+x0; return Math.abs(x); } i ist in dem ganzen Block bekannt, x0 nur in der zweiten Hälfte 14 float f (float x) { int i=0; while (i<10) { float y=i*3.14159f; System.out.println(i+"*pi="+y); DVG1 - 05 - Datenformate i=i+1; } } i ist im ganzen Block bekannt y ist nur in dem inneren Block bekannt 15 Literale  Festkommaliteral  enthält nur Ziffern und < 2 31 ==> int z.B. 12345  enthält nur Ziffern und >=2 31 oder endet mit l oder L ==> long z.B. 12345L  beginnt mit 0x oder 0X ==> hexadezimale Darstellung  beginnt mit 0 ==> oktale Darstellung  Gleitkommaliteral  enthält Ziffern, einen ´.´ oder ein ´e´ oder ´E´ ==> float DVG1 - 05 - Datenformate z.B.: 3.14159, 3.3333e-1, 2345E22  wenn ein ´d´ oder ´D´ angehängt wird ==> double z.B.: 3.14159d, 3.3333e-1D, 2345E22d  logisches Literal  true und false 16  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 DVG1 - 05 - Datenformate Zeilenschaltung \n (\u000A) Tabulaturzeichen \t (\u0009) Rückschritt \b (\u0008) Wagenrücklauf \r (\u000D) Seitenvorschub \f (\u000C) Apostroph/Hochkomma \' (\u0027) Anführungszeichen \" (\u0022) Umgekehrter Schrägstrich \\ (\u005C) 17  Zeichenkettenliteral  Beliebige Folge von Zeichen, die in Anführungszeichen eingeschlossen sind. Z.B.: "Hello, World!" "\u0048\u0065\u006C\u006c\u006f\u002c\u0020\u 0057\u006f\u0072\u006C\u0064\u0021" "\110\145\154\154\157\54\40\127\157\162\154\1 44\41" DVG1 - 05 - Datenformate 18 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 DVG1 - 05 - Datenformate konvertiert  Explizite Umwandlung durch „casting“ : (typ)ausdruck  z.B.: short s; byte b = (byte)s;  Umwandlung kann mit Informationsverlusten verbunden sein! 19 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 „--“ DVG1 - 05 - Datenformate  j = --i <==> i=i-1; j=i; (Prädekrement)  j = i-- <==> j=i; i=i-1; (Postdekrement) 20 int i; i -i ~i ++i --i 1 -1 -2 2 0 0 0 -1 1 -1 -1 1 0 0 -2 255 -255 -256 256 254 -255 255 254 -254 -256 2147483647 -2147483647 -2147483648 -2147483648 2147483646 -2147483648 -2147483648 2147483647 -2147483647 2147483647 DVG1 - 05 - Datenformate 21  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 DVG1 - 05 - Datenformate 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 22  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“ : „^“ DVG1 - 05 - Datenformate  Vergleichoperatoren „>“, „<“, „>=“, „<=“, „==“, „!=“  ergeben immer boolsche Werte 23 i j i+j i<>j i>>>j i&j i|j i^j 1 2 3 4 0 0 0 3 3 0 2 2 0 0 0 0 2 2 -1 2 1 -4 -1 1073741823 2 -1 -3 255 2 257 1020 63 63 2 255 253 -255 2 -253 -1020 -64 1073741760 0 -253 -253 256 2 258 1024 64 64 0 258 258 -256 2 -254 -1024 -64 1073741760 0 -254 -254 1 4 5 16 0 0 0 5 5 0 4 4 0 0 0 0 4 4 DVG1 - 05 - Datenformate -1 4 3 -16 -1 268435455 4 -1 -5 255 4 259 4080 15 15 4 255 251 -255 4 -251 -4080 -16 268435440 0 -251 -251 256 4 260 4096 16 16 0 260 260 -256 4 -252 -4096 -16 268435440 0 -252 -252 24  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.: DVG1 - 05 - Datenformate  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; 25 Operationen mit Gleitkommazahlen  Folgende Operatoren arbeiten bei Gleitkommazahlen analog zu Festkommazahlen:  Unäre Operatoren : „-“, „++“, „--“  Binäre Operatoren : „+“, „-“, „*“, „/“, „%“, „>“, „<“, „>=“, „<=“, „==“, „!=“  ternärer Operator : „?:“  Zuweisungsoperatoren : „=“, „op=“ DVG1 - 05 - Datenformate 26 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!“ DVG1 - 05 - Datenformate 27 Operationen mit boolschen Werten  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 „||“ DVG1 - 05 - Datenformate  Die Ausdrücke werden nur soweit ausgewertet, bis das Ergebnis des Ausdruckes bekannt ist. 28 Reihenfolge von Operatoren • Die Operationen werden der 15 . [] () Priorität nach abgearbeitet. 14 - ++ -- ! ~ instanceof • Bei gleicher Priorität werden die 13 */% Operatoren von links nach rechts 12 +- abgearbeitet. 11 << >> >>> • Zuweisungsoperatoren werden 10 < > <= >= von rechts nach links abgearbeitet. 9 == != 8 & 7 ^ DVG1 - 05 - Datenformate 6 | 5 && 4 || 3 ?: 2 = op= 1 , 29
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks