In Visual C++ (MSVC) gibt es verschiedene Datentypen für ganze Zahlen. Sie unterscheiden sich in ihrer Speichergröße und ihrem Wertebereich.
| Datentyp | Speicherplatz | Vorzeichen | Wertebereich |
|---|---|---|---|
char / signed char | 1 Byte (8 Bit) | ja | -128 bis 127 |
unsigned char | 1 Byte (8 Bit) | nein | 0 bis 255 |
short / short int | 2 Bytes (16 Bit) | ja | -32.768 bis 32.767 |
unsigned short | 2 Bytes (16 Bit) | nein | 0 bis 65.535 |
int | 4 Bytes (32 Bit) | ja | -2.147.483.648 bis 2.147.483.647 |
unsigned int | 4 Bytes (32 Bit) | nein | 0 bis 4.294.967.295 |
long | 4 Bytes (32 Bit)* | ja | -2.147.483.648 bis 2.147.483.647 |
unsigned long | 4 Bytes (32 Bit)* | nein | 0 bis 4.294.967.295 |
long long | 8 Bytes (64 Bit) | ja | -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 |
unsigned long long | 8 Bytes (64 Bit) | nein | 0 bis 18.446.744.073.709.551.615 |
Für plattformunabhängigen Code empfiehlt sich die Nutzung von :
| Typ | Entspricht in MSVC | Wertebereich |
|---|---|---|
int8_t / uint8_t | 8-Bit Ganzzahl | -128 bis 127 / 0 bis 255 |
int16_t / uint16_t | 16-Bit Ganzzahl | -32.768 bis 32.767 / 0 bis 65.535 |
int32_t / uint32_t | 32-Bit Ganzzahl | -2.147.483.648 bis 2.147.483.647 / 0 bis 4.294.967.295 |
int64_t / uint64_t | 64-Bit Ganzzahl | ca. -9,22 × 10¹⁸ bis 9,22 × 10¹⁸ / 0 bis 1,84 × 10¹⁹ |
size_t | Größe/Index | 32-Bit (x86) oder 64-Bit (x64) |
#include <iostream> #include <limits> using namespace std; int main() { cout << "int Min: " << numeric_limits<int>::min() << "\n"; cout << "int Max: " << numeric_limits<int>::max() << "\n"; cout << "unsigned int Max: " << numeric_limits<unsigned int>::max() << "\n"; return 0; }