Visual C++ Ganzzahltypen (Integer)

In Visual C++ (MSVC) gibt es verschiedene Datentypen für ganze Zahlen. Sie unterscheiden sich in ihrer Speichergröße und ihrem Wertebereich.

Standard-Ganzzahltypen

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

Typen mit fester Breite ()

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)

Code-Beispiel: Grenzen abfragen

#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;
}