What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Ein Integer ist eine ganze Zahl ohne Nachkommastellen. In der Programmierung bezeichnet „Integer“ außerdem einen Datentyp für solche Werte. Mathematisch gehören beispielsweise -8, 0 und 42 dazu; 2,5, -0,75 und 1/3 dagegen nicht.

Integer einfach erklärt

Das deutsche Wort für Integer ist ganze Zahl. Die Menge wird mit ℤ (Z) bezeichnet:

ℤ = { …, -3, -2, -1, 0, 1, 2, 3, … }

Ganze Zahlen haben keinen fractional component, also keinen Nachkommateil. Ob eine Zahl mit Dezimalpunkt geschrieben wird, ist dabei nicht allein entscheidend: 42.0 kann mathematisch denselben Wert wie 42 darstellen, wird in einer Programmiersprache aber häufig als Gleitkommawert gespeichert.

Eine deutschsprachige Definition mit Beispielen bietet Computer Weekly. Dort ist etwa 3.043 als ganze Zahl gemeint, also dreitausenddreiundvierzig, nicht als Dezimalzahl mit drei Nachkommastellen.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Welche Zahlen gehören zu ℤ?

  • Negative ganze Zahlen: etwa -5 und -1
  • Null: 0
  • Positive ganze Zahlen: etwa 1, 97 und 3043

Brüche wie 4/3 und Zahlen mit Nachkommateil wie 3,14 sind keine Integer. Die ganzen Zahlen sind unendlich, aber abzählbar unendlich: Man kann sie in einer Folge anordnen. Die rationalen Zahlen sind ebenfalls abzählbar unendlich, die reellen Zahlen dagegen überabzählbar. Bei „imaginären Zahlen“ muss man die betrachtete Menge angeben: Die rein imaginären Zahlen {bi | b ∈ ℝ} haben dieselbe Kardinalität wie die reellen Zahlen; komplexe Zahlen ebenfalls eine größere Kardinalität als ℤ.

Integer als Datentyp in der Programmierung

In Quelltexten steht int oft für einen Integer-Datentyp. Anders als die mathematische Menge ℤ hat ein gewöhnlicher Maschinentyp eine festgelegte Bitbreite und damit einen endlichen Wertebereich.

Bitbreite und Wertebereich

Ein Speicherformat mit n Bit besitzt 2^n mögliche Bitmuster: 8 Bit ergeben 256 Muster, 16 Bit 65.536, 32 Bit 2^32 und 64 Bit 2^64. Bei einem vorzeichenbehafteten Zweierkomplement-Typ reicht ein 32-Bit-Integer typischerweise von -2^31 bis 2^31 - 1, also von -2.147.483.648 bis 2.147.483.647.

Die mathematische Menge ℤ ist daher nicht mit einem endlichen Integer-Feld gleichzusetzen.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Signed und unsigned

Signed-Integer können negative und positive Werte speichern. Unsigned-Integer enthalten nur nichtnegative Werte und nutzen bei gleicher Bitbreite mehr Muster für den positiven Bereich. Ob ein unsigned Typ sinnvoll ist, hängt von Datenmodell, Sprache und Schnittstellen ab.

Beispiele für Sprachtypen

Sprache Typ Eigenschaft
Java int signed, 32 Bit, -2.147.483.648 bis 2.147.483.647
Java long signed, 64 Bit
C# int signed, 32 Bit, gleicher Bereich wie Java
C# uint unsigned, 32 Bit, 0 bis 4.294.967.295
Python int beliebig erweiterbare Genauigkeit, praktisch durch den verfügbaren Speicher begrenzt

Die Java-Wertebereiche und Ganzzahlliterale sind in der Java-Dokumentation beschrieben. C# dokumentiert seine integralen Typen, darunter nint und nuint, in der .NET-Dokumentation. C#-nint und nuint haben eine vom Zielprozess abhängige native Größe.

Integer in Python, Java und C#

Java

int alter = 42;
long population = 9_000_000_000L;

Für Werte außerhalb des Bereichs von long bietet Java java.math.BigInteger.

C#

int anzahl = 42;
uint flags = 42;
long population = 9_000_000_000L;

Ein konstanter Wert außerhalb des Zielbereichs kann bereits beim Kompilieren abgelehnt werden. Die C#-Dokumentation zeigt dies beispielsweise bei der Zuweisung 300 an einen byte-Wert, dessen Bereich nur 0 bis 255 umfasst.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Python

x = 42
print(type(x))
int("42")      # 42
int(3.9)       # 3
bin(26)        # '0b11010'

int(3.9) rundet nicht auf 4, sondern schneidet den Nachkommateil ab. Die Python-Dokumentation beschreibt int() als eingebauten Integer-Typ und bin() als Umwandlung einer Integerzahl in eine Binärzeichenkette.

Integer, Float, Decimal und String: die Unterschiede

Typ Beispiel Bedeutung
Integer 12 ganze Zahl
Float oder Double 12.5 Gleitkommazahl mit Nachkommateil
Decimal 12.50 dezimaler Zahlentyp, häufig für exakte Geldbeträge
Bruch 1/3 rationaler, nicht ganzzahliger Wert
String "12" Text; nicht automatisch eine Zahl
Boolean true/false Wahrheitswert

12.0 kann in einer Sprache ein float oder double sein, obwohl der mathematische Wert ganzzahlig ist. Die tatsächliche Typprüfung und mögliche Konvertierung bestimmt die jeweilige Sprache.

Was passiert bei einem Integer-Überlauf?

Ein Überlauf entsteht, wenn das Ergebnis außerhalb des Wertebereichs des Zieltyps liegt. Das Verhalten ist nicht universell: Sprache, Datentyp, Compiler, Laufzeit und aktivierte Überlaufprüfungen entscheiden, ob ein Fehler gemeldet wird, der Wert umspringt oder eine Konvertierung verweigert wird.

  • Wertebereiche vor der Implementierung festlegen und eine Sicherheitsmarge einplanen.
  • Eingaben aus APIs, Dateien und Datenbanken vor der Konvertierung prüfen.
  • Bei kritischen Rechnungen größere Typen oder explizite Überlaufprüfungen verwenden.
  • Negative Werte niemals ungeprüft in unsigned Typen umwandeln.

Signed oder unsigned: die Auswahl

C#-Typ Wertebereich
sbyte -128 bis 127
byte 0 bis 255
short -32.768 bis 32.767
ushort 0 bis 65.535
int -2.147.483.648 bis 2.147.483.647

Java verwendet bei den primitiven Typen byte, short, int und long grundsätzlich signed Varianten. Für unsigned-Arithmetik stellt Java seit Version 8 Methoden und Interpretationen bereit, aber keinen vollständig neuen primitiven unsigned-Typ.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Sehr große Zahlen: long und Big Integer

Reicht ein 32-Bit-int nicht aus, kann ein 64-Bit-Typ wie long die passende Lösung sein. Für noch größere exakte Ganzzahlen eignen sich Big-Integer-Implementierungen. Java beschreibt BigInteger als unveränderliche Ganzzahl beliebiger Präzision, unter anderem für modulare Arithmetik, größte gemeinsame Teiler und Primzahltests.

„Beliebige Präzision“ bedeutet nicht unendlich: Speicherbedarf und Laufzeit wachsen mit der Zahlengröße. Big Integers benötigen typischerweise mehr Speicher und sind langsamer als native Integer. Ein Float ist kein sicherer Ersatz, wenn jede Ganzzahl exakt bleiben muss.

Integer in Datenbanken

Datenbanken bieten meist mehrere Ganzzahltypen, etwa kleine Typen für Statuswerte, normale Integer für IDs und Mengen sowie große Typen für hohe Schlüssel- oder Messwerte. INTEGER ist jedoch nicht in jedem Datenbanksystem identisch: Wertebereich, Speicherbedarf, automatische ID-Erzeugung und Überlaufregeln unterscheiden sich. Datentypen von Datenbank, API und Anwendung sollten deshalb ausdrücklich auf Bitbreite und Vorzeichen abgestimmt werden.

Binär-, Dezimal- und Hexadezimalschreibweise

Computer speichern Integer als Bitfolgen. Derselbe Wert kann unterschiedlich notiert werden:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

26 dezimal = 11010 binär = 0x1A hexadezimal

Java unterstützt Integer-Literale in dezimaler, hexadezimaler und binärer Schreibweise. Negative Werte werden in festen signed Formaten typischerweise im Zweierkomplement dargestellt; die Einzelheiten hängen vom Datentyp und Kontext ab.

Typische Einsatzgebiete und ungeeignete Fälle

Geeignet für

  • Zähler, Schleifen und Seitenzahlen
  • Array- und Listenindizes
  • Benutzer- und Datensatz-IDs
  • Alter, Mengen und Statuscodes
  • Portnummern, Pixelkoordinaten und Bitmasken
  • Zeitstempel, sofern der gewählte Bereich ausreicht
  • Versionsnummern

Mit Vorsicht verwenden

  • Geldbeträge ohne festgelegte Einheit und Skalierung
  • Messwerte mit Nachkommastellen
  • wissenschaftliche Gleitkommawerte
  • beliebig große Zahlen ohne Big-Integer-Typ

Häufige Fehler

  • "123" ist ein String, 123 ein Integer.
  • 12.0 ist nicht automatisch ein Integer-Datentyp.
  • int bedeutet nicht in jeder Sprache dasselbe.
  • Ein kleinerer Typ ist nicht automatisch schneller oder besser.
  • Überlauf, Vorzeichen und Einheiten müssen bei Schnittstellen geprüft werden.
  • Deutsche Tausender- und Dezimaltrennzeichen können beim Einlesen verwechselt werden.
  • JavaScript-Zahlen sollten nicht pauschal als klassische 64-Bit-Integer behandelt werden.

Kurzfassung

Begriff Erklärung
Integer Ganze Zahl ohne fractional component
int Häufiger Datentyp für ganze Zahlen
Float/Double Gleitkommazahl
Big Integer Ganzzahl mit erweiterbarer Präzision
String Textdarstellung, keine automatisch numerische Zahl

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.