Suche
Suche Menü

Ganze Zahlen

short

Der Datentyp für kleine Zahlen heißt short. Dieser hat laut Standard eine Größe von 16 Bit, was einem Wertebereich von -32.768 bis +32.767 entspricht. Wollen wir nur positive Zahlen speichern und benötigen somit kein Vorzeichen, verschiebt sich der negative Bereich in den Positiven. Eine vorzeichenlose Variable erhält man mit einem zusätzlichen Schlüsselwort unsigned, für short z.B. unsigned short. Somit hat unsigned short einen Wertebereich von 0 bis 65.535. Überschreiten wir den Wertebereich an einem Ende, so beginnt er wieder am anderen Ende. Dies soll in dem nächsten Beispiel verdeutlicht werden.

#include<stdio.h>

int main() {
// kleine Zahl mit Vorzeichen deklarieren (erstellen)
short kleineZahl;

// kleine Zahl auf Grenzwert setzen
kleineZahl = 32767;

// kleineZahl ausgeben
printf("Wert von kleineZahl: %d\n", kleineZahl);

// eins hochzählen, also 32767+1, was eigentlich 32768 ergibt
kleineZahl++;

// kleineZahl ausgeben
printf("Wert von kleineZahl: %d\n", kleineZahl);

return 0;
}

Wert von kleineZahl: 32767
Wert von kleineZahl: -32768

int

Mit dem Schlüsselwort int erstellen wir Variablen gewöhnlicher Größe. Diese Variante wird auch am Meisten verwendet. Laut Standard hat dieser Datentyp mindestens 16 Bit, bei einem 32-Bit Prozessor jedoch 32 Bit. Daraus ergibt sich ein Wertebereich von -2.147.483.647 bis +2.147.483.647, bei fehlendem Vorzeichen von 0 bis 4.294.967.295.

long

Für sehr große Zahlen verwenden wir long bzw. long long. Laut Standard hat long mindestens 32 Bit und long long 64 Bit – gewöhnlicherweise haben jedoch beide 64 Bit. Daraus ergibt sich ein Wertebereich von -9.223.372.036.854.775.807 bis +9.223.372.036.854.775.807, bei fehlendem Vorzeichen von 0 bis 18.446.744.073.709.551.615.

Beispiel: Verschiedene Datentypen für Zahlen erstellen

Dieses Beispielprogramm zeigt die Handhabung der Datentypen int, unsigned int und unsigned long long.

#include<stdio.h>

int main() {
	// Deklaration von int Variable 
	int zahl;
	
	// Wert-Zuweisung
	zahl = -7;

	// Deklaration von int Variable ohne Vorzeichen
	unsigned int zahl2;

	// Deklaration von long long Variable ohne Vorzeichen
	unsigned long long grosseZahl;

	return 0;
}

Beispiel: Größe von Datentypen berechnen

Das folgende Beispielprogramm bietet sich an, wenn man nachschauen möchte, welche tatsächlichen Speichergrößen für die einzelnen Integervarianten vom eigenen Computer reserviert werden. Man übergibt dafür dem sizeof() Befehl den Datentyp und man erhält die Speichergröße in Byte. Da wir hier jedoch von Bits reden, wird der Rückgabewert noch mit 8 multipliziert, denn 8 Bits sind 1 Byte. Statt der hier übergebenen int-Typen short, int, long und long long, kann man auch alle anderen Datentypen übergeben. In späteren Kapiteln wird noch näher auf den sizeof() Befehl eingegangen, deshalb muss man den Quellcode an dieser Stelle noch nicht ganz verstehen; von Bedeutung ist hier nur die Programmausgabe.

// Dieses Programm gibt die Größen der Datentypen in Bit aus

#include<stdio.h>

int main() {
	printf("short:      %zu Bit\n", sizeof(short)*8);
	printf("int:        %zu Bit\n", sizeof(int)*8);
	printf("long:       %zu Bit\n", sizeof(long)*8);
	printf("long long:  %zu Bit\n", sizeof(long long)*8);
	return 0;
}

Bemerkung: Wir müssen hier bei der printf-Ausgabe die Formatanweisung „%zu“ verwenden, womit int Variablen ohne Vorzeichen ausgegeben werden, denn dies ist der Rückgabewert der sizeof()-Funktion.

short:      16 Bit
int:        32 Bit
long:       32 Bit
long long:  64 Bit