Daten und Datentypen
Sprachen werden üblicherweise dazu verwendet, Information auszutauschen. Das ist nicht nur bei der menschlichen Sprache, sondern auch bei der Programmiersprache anwendbar.
Während die menschliche Sprache über das Sprachzentrum im Gehirn gesteuert wird, wird bei der Programmiersprache dazu der Speicher verwendet, worin Informationen in Form von Variablen, Konstanten usw. hinterlegt sind. Bei der natürlichen Sprache reichen vom Prinzip her die beiden Typen: Buchstaben und Ziffern aus, um Informationen zu verarbeiten. Bei der Programmiersprache reicht das leider nicht aus.
Wesentliche Datentypen
Datentyp | Beschreibung |
---|---|
int | Standarddatentyp für ganze Zahlen |
unsigned int | für ganze Zahlen ohne Vorzeichen |
long | für große Zahlen |
unsigned long | für große Zahlen ohne Vorzeichen |
long long | für ganz große Zahlen |
short | für kleine Zahlen |
float | für Fließkommazahlen |
double | für große Fließkommazahlen |
char | für einzelne Zeichen |
unsigned char | für einzelne Hexadezimalwerte |
char[] | für Zeichenketten |
void | kein Rückgabe-/Parameterwert bei Funktionen |
int[]/char[] | für Tabellen |
uint8_t, uint16_t, uint64_t | für Binär-/Hexwerte |
Bei einigen Datentypen ist die Speicherbelegung abhängig von der Systemarchitektur. Gerade in Verwendung mit Mikrocontrollern ist darauf zu achten, welche Architektur vorliegt. Während der ESP32 über ein 32-Bit System verfügt, hat der Arduino Uno nur ein 16-Bit System. Das 32-Bit System kann größere Zahlenräume verarbeiten, benötigt dafür aber auch mehr Speicherplatz.
int
- Steht für Integer.
- Benötigt 4 Bytes bei 32-Bit-Systemen und 2 Bytes bei 16-Bit-Systemen.
- Wertbereich: -2.147.483.648 bis +2.147.483.647 / -32.768 bis +32.767
unsigned int
- Steht für vorzeichenloser Integer.
- Benötigt 4 Bytes bei 32-Bit-Systemen und 2 Bytes bei 16-Bit-Systemen.
- Wertbereich: 0 bis 4.294.967.295 / 0 bis 65.535
long
- Steht für Long Integer.
- Benötigt 4 Bytes bei allen Systemen.
- Wertbereich: -2.147.483.648 bis +2.147.483.647
unsigned long
- Steht für vorzeichenloses Long Integer.
- Benötigt 4 Bytes bei allen Systemen.
- Wertbereich: 0 bis 4.294.967.295
long long
- Steht für sehr langer Integer.
- Benötigt 8 Bytes bei allen Systemen.
- Wertbereich: -9.223.372.036.854.755.808 bis +9.223.372.036.854.755.807
short
- Steht für Short Integer.
- Benötigt 2 Bytes bei allen Systemen.
- Wertbereich: -32.768 bis +32.767
float
- Steht für Floating Point (Fließkommazahl) mit 2 bis 6 Nachkommastellen.
- Speichergröße und Wertbereich sind implementierungsabhängig.
double
- Meist äquivalent zu float
char
- Benötigt 1 Byte Speicher.
- Speichert üblicherweise einzelne Zeichen.
- Wertbereich: zwischen 0 und 255
char[n]
- Benötigt n Byte Speicher (Anzahl der Zeichen + Endzeichen \0).
- Speichert Zeichenketten
void
- Benötigt 1 Byte Speicher.
- Kein echter Datentyp, wird verwendet wenn kein Wert benötigt wird.
int[] / char[] (array)
- Benötigt n Byte Speicher (Anzahl der Elemente x Elementgröße).
- Speichert Tabellen.
uint8_t, uint16_t, uint64_t
- Benötigt 1, 2, 8 Byte Speicher.
- Speichert Binär oder Hexadezimalwerte.
string()
- Benötigt n Byte Speicher.
- Speichert Zeichenketten.
Bei String handelt es sich um eine Klasse mit mächtigen Funktionen.
Weiter mit Variablen