Ein Datentyp legt fest, welche Art von Werten eine Variable, ein Datenfeld oder ein Ausdruck annehmen kann und welche Operationen auf diesen Werten zulässig sind.
Jeder Wert, mit dem ein Computer arbeitet, muss einer bestimmten Kategorie zugeordnet sein: eine Zahl, ein Text, ein Wahrheitswert oder etwas Komplexeres. Diese Kategorie heißt Datentyp. Sie bestimmt, wie viel Speicherplatz ein Wert belegt, wie er intern dargestellt wird und was mit ihm sinnvoll gemacht werden kann – Zahlen lassen sich addieren, Texte dagegen aneinanderhängen.
Grundlegende, sogenannte primitive Datentypen umfassen etwa Ganzzahlen, Fließkommazahlen, Zeichen und Wahrheitswerte; sie werden meist direkt durch eine feste Anzahl von Bits dargestellt. Darauf aufbauend lassen sich zusammengesetzte Datentypen bilden, etwa Zeichenketten aus einzelnen Zeichen oder Datensätze aus mehreren Feldern unterschiedlichen Typs. Programmiersprachen prüfen – je nach Sprache zur Übersetzungszeit oder erst zur Laufzeit –, ob eine Operation zum verwendeten Datentyp passt, und verhindern dadurch beispielsweise, dass ein Text versehentlich wie eine Zahl behandelt wird.
Eine Variable, die das Lebensalter einer Person speichert, wird sinnvollerweise als Ganzzahl-Datentyp angelegt. Versucht die Software, in dieses Feld stattdessen den Text „zwanzig“ einzutragen, meldet sie einen Typfehler, weil Buchstaben nicht dem erwarteten Datentyp Ganzzahl entsprechen.
Datentypen werden eingesetzt, um Speicher effizient zu reservieren, Programmierfehler frühzeitig zu erkennen, die Lesbarkeit von Code zu verbessern und festzulegen, welche Operationen auf einem Wert überhaupt ausgeführt werden dürfen.
Ein Datentyp beschreibt nur die Art eines einzelnen Werts, nicht dessen gesamte innere Organisation; wie mehrere Werte eines oder verschiedener Typen zu einer größeren Einheit zusammengesetzt werden, regelt stattdessen eine Datenstruktur. Häufig wird außerdem übersehen, dass derselbe Datentyp – etwa eine Ganzzahl – je nach Programmiersprache und Plattform unterschiedlich viel Speicher belegen und unterschiedliche Wertebereiche abdecken kann.
Nicht zu verwechseln mit Zeichenkodierung: Zeichenkodierung legt fest, wie einzelne Schriftzeichen auf Zahlenwerte abgebildet werden, während ein Datentyp wie die Zeichenkette allgemein beschreibt, dass es sich überhaupt um Text handelt. Ebenfalls abzugrenzen ist Binärsystem: Das Binärsystem ist die zugrunde liegende Zahlendarstellung aus Nullen und Einsen, auf der sämtliche Datentypen letztlich technisch aufbauen.