Algorithmen und Datenstrukturen 2.1 Einfache Datentypen in C W. Tasin, M.Sc. Fakultät 04 tasin@hm.edu
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
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
Datentypen (1) char signed char Zeichen 8 bit Wertebereich -128.. 127 - Zählvariable mit reduziertem Wertebereich - char kann mithilfe eines Schalter beim Übersetzen zu unsigned char werden. Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 4
Datentypen (2) unsigned char Zeichen (selten) 8 bit Wertebereich 0.. 255 Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 5
Datentypen (3) short signed short signed short int 16 bit Wertebereich -32768.. 32767 Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 6
Datentypen (4) unsigned short unsigned short int 16 bit Wertebereich 0.. 65535 Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 7
Datentypen (5) int signed int Wahrheitswerte 32 bit Wertebereich -2147483648.. 2147483647 - typische Zählvariablen, deren Wertebereich mit Architekturverbesserungen mitwächst Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 8
Datentypen (6) unsigned unsigned int 32 bit Wertebereich 0.. 4294967295 - positive Zählvariablen - Sichern von Größenangaben (bei 32-bit Entwicklungstools) Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 9
Datentypen (7) long signed long long int signed long int 32 bit Wertebereich -2147483648.. 2147483647 Unter 64-bit Linux 64 bit breit Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 10
Datentypen (8) unsigned long unsigned long int 32 bit Wertebereich 0.. 4294967295 Unter 64-bit Linux 64 bit breit Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 11
Datentypen (9) NUR in ANSI-C 99! long long signed long long long long int signed long long int Wertebereich 64 bit -9223372036854775808.. 9223372036854775807 Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 12
Datentypen (10) NUR in ANSI-C 99! unsigned long long unsigned long long int 64 bit Wertebereich 0.. 18446744073709551615 Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 13
Datentypen (11) float Fließkommazahlen Wertebereich 32 bit ±(1.2E-38.. 3.4E38) Genauigkeit 6 Stellen Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 14
Datentypen (12) double Fließkommazahlen Wertebereich 64 bit ±(2.23E-308.. 1.79E308) Genauigkeit 15 Stellen Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 15
Datentypen (13) long double Fließkommazahlen Wertebereich Genauigkeit 80 bit (auch 96 oder 128 bit) ±(3.37E-4932.. 1.18E4932) 19 Stellen 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