Algorithmen und Datenstrukturen 2.1 Einfache Datentypen in C W. Tasin, M.Sc. Fakultät 04 [email protected] Einfache Datentypen in C Allgemeines (1) Einfache (od. primitive) Datentypen legen fest, wie die Information kodiert im Speicher abgelegt wird. wie der Inhalt einer oder aufeinanderfolgender Speicherstellen interpretiert werden soll. wie viele aufeinanderfolgende Speicherstellen zur Ablage der Information nötig sind definierter Wertebereich. welche Operationen mit der Information durchgeführt werden können. Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 2 Einfache Datentypen in C Allgemeines (2) Die ANSI-C Norm legt fest, dass Variablen, Ausdrücke oder Konstanten einen Datentyp besitzen müssen. legt nur die Mindestanforderung an einen Datentypen fest. daraus resultiert, dass z. B. int-Breite bei 16bit-µControllern mit den dazugehörigen C-Entwicklungswerkzeugen 16 bit bei 32bit-µControllern mit den dazugehörigen C-Entwicklungswerkzeugen 32 bit Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 3 Einfache Datentypen in C Datentypen (1) char signed char Informationsablage Zeichen Ganzzahlen typische Datenbreite 8 bit Wertebereich -128 .. 127 Bemerkungen - Zählvariable mit reduziertem Wertebereich - char kann mithilfe eines Schalter beim Algorithmen und Datenstrukturen - W. Tasin, M.Sc. Übersetzen zu unsigned char werden. 4 Einfache Datentypen in C Datentypen (2) unsigned char Informationsablage Zeichen (selten) Ganzzahlen typische Datenbreite 8 bit Wertebereich 0 .. 255 Bemerkungen Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 5 Einfache Datentypen in C Datentypen (3) short signed short signed short int Informationsablage Ganzzahlen typische Datenbreite 16 bit Wertebereich -32768 .. 32767 Bemerkungen Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 6 Einfache Datentypen in C Datentypen (4) unsigned short unsigned short int Informationsablage Ganzzahlen typische Datenbreite 16 bit Wertebereich 0 .. 65535 Bemerkungen Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 7 Einfache Datentypen in C Datentypen (5) int signed int Informationsablage Ganzzahlen Wahrheitswerte typische Datenbreite 32 bit Wertebereich -2147483648 .. 2147483647 Bemerkungen - typische Zählvariablen, deren Wertebereich mit Architekturverbesserungen mitwächst Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 8 Einfache Datentypen in C Datentypen (6) unsigned unsigned int Informationsablage Ganzzahlen typische Datenbreite 32 bit Wertebereich 0 .. 4294967295 Bemerkungen - positive Zählvariablen - Sichern von Größenangaben (bei 32-bit Entwicklungstools) Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 9 Einfache Datentypen in C Datentypen (7) long signed long long int signed long int Informationsablage Ganzzahlen typische Datenbreite 32 bit Wertebereich -2147483648 .. 2147483647 Bemerkungen Unter 64-bit Linux 64 bit breit Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 10 Einfache Datentypen in C Datentypen (8) unsigned long unsigned long int Informationsablage Ganzzahlen typische Datenbreite 32 bit Wertebereich 0 .. 4294967295 Bemerkungen Unter 64-bit Linux 64 bit breit Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 11 Einfache Datentypen in C Datentypen (9) long long NUR in ANSI-C 99! signed long long long long int signed long long int Informationsablage Ganzzahlen typische Datenbreite 64 bit Wertebereich -9223372036854775808 .. 9223372036854775807 Bemerkungen Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 12 Einfache Datentypen in C Datentypen (10) NUR in ANSI-C 99! unsigned long long unsigned long long int Informationsablage Ganzzahlen typische Datenbreite 64 bit Wertebereich 0 .. 18446744073709551615 Bemerkungen Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 13 Einfache Datentypen in C Datentypen (11) float Informationsablage Fließkommazahlen typische Datenbreite 32 bit Wertebereich ±(1.2E-38 .. 3.4E38) Genauigkeit 6 Stellen Bemerkungen Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 14 Einfache Datentypen in C Datentypen (12) double Informationsablage Fließkommazahlen typische Datenbreite 64 bit Wertebereich ±(2.23E-308 .. 1.79E308) Genauigkeit 15 Stellen Bemerkungen Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 15 Einfache Datentypen in C Datentypen (13) long double Informationsablage Fließkommazahlen typische Datenbreite 80 bit (auch 96 oder 128 bit) Wertebereich ±(3.37E-4932 .. 1.18E4932) Genauigkeit 19 Stellen Bemerkungen Bei 96/128 Datenbreite wird oft nur mit 80 bit Genauigkeit gerechnet. Unter Windows entspricht dieser Datentyp dem Typ double. Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 16