7.10 Vorzeichenlos und vorzeichenbehaftet
 
Mit dem Schlüsselwort unsigned weisen Sie den Compiler an, dass er einen Datentyp vorzeichenlos behandeln soll. Dadurch erhöht sich auch der Wertebereich der positiven Zahlen. Mit dem Schlüsselwort signed bewirken Sie genau das Gegenteil. signed ist bei allen Datentypen voreingestellt. Das bedeutet, dass folgende Schreibweisen die gleiche Bedeutung haben:
int a;
signed int a;
Am besten sehen Sie sich dazu die Tabelle an, auf der sich alle Datentypen befinden, die Sie bisher kennen gelernt haben.
Tabelle 7.6
Übersicht aller Standard-Datentypen in C
Name
|
Größe
|
Wertebereich
|
char, signed char
|
1 Byte = 8 Bit
|
–128…+127 bzw. 0 … 255
|
unsigned char
|
1 Byte = 8 Bit
|
0…255
|
short, signed short
|
2 Byte = 16 Bit
|
–32768…+32767
|
unsigned short
|
2 Byte = 16 Bit
|
0…65535
|
int, signed int
|
4 Byte = 32 Bit
|
–2147483648…+2147483648
|
unsigned int
|
4 Byte = 32 Bit
|
0…4294967295
|
long, signed long
|
4 Byte = 32 Bit
|
–2147483648…+2147483648
|
unsigned long
|
4 Byte = 32 Bit
|
0…4294967295
|
float
|
4 Byte = 32 Bit
|
3.4*10–38…3.4*1038
|
double
|
8 Byte = 64 Bit
|
1.7*10–308…1.7*10308
|
long double
|
10 Byte = 80 Bit
|
3.4*10–4932…3.4*104932
|
Hinweis Diese Tabelle stellt nur einen Überblick zu den gängigen Größen der Standard-Datentypen dar. Sie sollten hierbei in keinster Weise den Eindruck bekommen, dass die dort angegebenen Größen allgemein gültig sind (siehe Hinweis in Abschnitt 7.8).
|
Dazu nochmals char als Beispiel. Manch einer wird sich vorhin gedacht haben: »Warum kann ich mit char nur Werte zwischen –128 und 127 darstellen?«
Denn, wenn alle Bits gesetzt sind, und Sie nachrechnen, ist das Ergebnis der Summe 255. Doch es müssen ja auch negative Werte dargestellt werden, etwa –100. Wenn das Schlüsselwort unsigned vor einen Datentyp gestellt wird, sind keine negativen Zahlen mehr möglich. Somit verdoppelt sich aber der positive Wert der Zahl. Sollten Sie z.B. zwei Zahlen subtrahieren und es kommt ein negatives Ergebnis heraus, und es wurde vor dem Datentyp des Ergebnisses das Schlüsselwort unsigned gesetzt, so wird das Minus der negativen Zahl ignoriert und es wird eine positive Zahl daraus.
|