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