Ganzzahlen / Ganze Zahlen

Ganzzahlen bzw. ganze Zahlen sind Zahlen ohne Nachkommastellen. Die meisten Computersysteme und Programmiersprachen kennen dafür den Datentyp Integer, kurz Int. Je nach Wertebereich auch die Varianten SmallInt und BigInt mit und ohne negativen Vorzeichen (signed bzw. unsigned).

Die Verarbeitung ganzer Zahlen erfolgt in der Informatik in der dualen bzw. binären Darstellung. Dabei entsprechen die Zahlen einer Bitfolge aus Nullen und Einsen.
Nehmen wir beispielhaft einen Wertebereich von 0 bis 15, der sich mit 4 aufeinander folgenden Bits binär darstellen lässt.

0000 = 0
0001 = 1
0010 = 2
0011 = 3
0100 = 4
0101 = 5
0110 = 6
0111 = 7
1000 = 8
1001 = 9
1010 = 10
1011 = 11
1100 = 12
1101 = 13
1110 = 14
1111 = 15

Geht man von einem beispielhaften Datentyp oder einem Datenwort mit 4 Bit Länge aus, dann ermöglicht das 16 Zustände und damit einen Wertebereich für dezimale Ganzzahlen von 0 bis 15. Die "0" steht dabei für "0000" (2) und die "15" für "1111" (2). Das ist der höchste dezimale Nennwert der mit 4 binären Stellen darstellbar ist.

Positionssystem / Stellenwertsystem

Ein Positionssystem, auch Stellenwertsystem genannt, ist ein Zahlensystem, bei dem die Wertigkeit eines Symbols (meist Ziffern oder Zahlen) von seiner Position bzw. seiner Stelle abhängig ist. Der Vorteil von Positionssystemen ist, das mit wenigen Symbolen große Zahlen dargestellt werden können.

Beispiel: Dezimales Zahlensystem

Dezimales Zahlensystem als Positionssystem

Beispiel: Duales Zahlensystem

Duales Zahlensystem als Positionssystem

Rechnen mit dualen Zahlen

Die Rechenregeln bei Dualzahlen entsprechen im Prinzip genauso, wie bei Dezimalzahlen. Es gelten jedoch ein paar Besonderheiten bezüglich negativer Zahlen und Zahlen mit Nachkommastellen. Beides gibt es bei dualen Zahlen nicht.

Darstellung negativer Zahlen

Die Darstellung ganzer Zahlen erfordert auch die Darstellung negativer Zahlen. Da das duale Zahlensystem kein negatives Vorzeichen kennt, muss man auf ein Hilfsmittel zurückgreifen. Dabei wird in der Regel das erste Bit einer Bitfolge als Vorzeichenbit missbraucht. Dabei steht die "0" für positive Zahlen und die "1" für negative Zahlen (mit negativem Vorzeichen). Man unterscheidet die Komplement- und die Zweierkomplementdarstellung.

Zur Darstellung und Berechnung positiver wie auch negativer ganzer Zahlen ist die Zweierkomplementdarstellung die gebräuchlichste Form.

Datentypen und Wertebereiche für Ganzzahlen

Je nachdem, wie groß der Wertebereich sein muss, wählt der Programmierer den Datentyp (Variablentyp) für die entsprechende Programmiersprache aus.
Will man mehr als 15 bzw. 7 zählen, dann reichen 4 Bit nicht aus. Zu diesem Zweck gibt es Datentypen, die 1 Byte (8 Bit), 2 Byte (16 Bit), 4 Byte (32 Bit) und 8 Byte (64 Bit) haben. Diese Datentypen existieren dabei ohne Vorzeichen (unsigned) und mit Vorzeichen (signed). Bei letzterem dient das höchstwertige Bit als Vorzeichen. Dabei kommt die Zweierkomplementdarstellung zur Anwendung.

Wertebereiche mit Vorzeichen (signed) Speicherbedarf C#-Datentyp Delphi Java-Datentyp
-128 ... 127 - 27 bis 27 -1 8 Bit 1 Byte sbyte shortint byte
-32.768 ... 32.767 - 215 bis 215 -1 16 Bit 2 Byte short smallint short
-2.147.483.648 ... 2.147.483.647 - 231 bis 231 -1 32 Bit 4 Byte int integer/longint int
-9.223.372.036.854.775.808 ... 9.223.372.036.854.775.807 - 263 bis 263 -1 64 Bit 8 Byte long int64 long
Wertebereiche ohne Vorzeichen (unsigned) Speicherbedarf C#-Datentyp Delphi-Datentyp Java-Datentyp
0 ... 255 0 bis 28 8 Bit 1 Byte byte byte (char)
0 ... 65.535 0 bis 216 16 Bit 2 Byte ushort word (char)
0 ... 4.294.967.295 0 bis 232 32 Bit 4 Byte uint cardinal/longword (char)
0 ... 18.446.744.073.709.551.615 0 bis 264 64 Bit 8 Byte ulong   (char)

Bei der Entscheidung, welcher Ganzzahlen-Datentyp verwendet werden soll, muss der Programmierer abschätzen können, was der kleinste und was der größte Wert ist, der vorkommen kann. Dabei muss er berücksichtigen, dass Zwischenergebnisse während der Berechnung höher oder niedriger liegen können, als das Endergebnis.
Zur Sicherheit einfach mit dem Datentyp zu arbeiten, der den höchsten oder niedrigsten Wert einnehmen kann, ist aber nicht die Lösung. Auf Dauer ist dann unter Umständen mehr als die Hälfte des Speicherplatzes für einen Wertebereich verschwendet, den niemand braucht.

Zahlen in der Informatik

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Die Computertechnik-Fibel, das Computer-Buch
Computertechnik-Fibel

Alles was Sie über Computertechnik wissen müssen.

Die Computertechnik-Fibel ist ein Buch über die Grundlagen der Computertechnik, Prozessortechnik, Halbleiterspeicher, Schnittstellen, Datenspeicher, Laufwerke und wichtige Hardware-Komponenten.

Das will ich haben!

Die Computertechnik-Fibel, das Computer-Buch
Computertechnik-Fibel

Alles was Sie über Computertechnik wissen müssen.

Die Computertechnik-Fibel ist ein Buch über die Grundlagen der Computertechnik, Prozessortechnik, Halbleiterspeicher, Schnittstellen, Datenspeicher, Laufwerke und wichtige Hardware-Komponenten.

Das will ich haben!

Elektronik-Set Raspberry Pi Edition
Elektronik-Set Raspberry Pi Edition

Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero

  • Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
  • Experimentieren und Programmieren ohne Vorkenntnisse
  • Sofort Loslegen mit All-in-one-Set

Elektronik-Set jetzt bestellen