Data Type Ranges
https://docs.microsoft.com/en-us/cpp/cpp/data-type-ranges?view=vs-2019
- 05/28/2020
- 2 minutes to read
- The Microsoft C++ 32-bit and 64-bit compilers recognize the types in the table later in this article.
-
-
int
(unsigned int
) -
__int8
(unsigned __int8
) -
__int16
(unsigned __int16
) -
__int32
(unsigned __int32
) -
__int64
(unsigned __int64
) -
short
(unsigned short
) -
long
(unsigned long
) -
long long
(unsigned long long
)
If its name begins with two underscores (
__
), a data type is non-standard.The ranges that are specified in the following table are inclusive-inclusive.
TABLE 1 Type Name Bytes Other Names Range of Values int
4 signed
-2,147,483,648 to 2,147,483,647 unsigned int
4 unsigned
0 to 4,294,967,295 __int8
1 char
-128 to 127 unsigned __int8
1 unsigned char
0 to 255 __int16
2 short
,short int
,signed short int
-32,768 to 32,767 unsigned __int16
2 unsigned short
,unsigned short int
0 to 65,535 __int32
4 signed
,signed int
,int
-2,147,483,648 to 2,147,483,647 unsigned __int32
4 unsigned
,unsigned int
0 to 4,294,967,295 __int64
8 long long
,signed long long
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 unsigned __int64
8 unsigned long long
0 to 18,446,744,073,709,551,615 bool
1 none false
ortrue
char
1 none -128 to 127 by default
0 to 255 when compiled by using/J
signed char
1 none -128 to 127 unsigned char
1 none 0 to 255 short
2 short int
,signed short int
-32,768 to 32,767 unsigned short
2 unsigned short int
0 to 65,535 long
4 long int
,signed long int
-2,147,483,648 to 2,147,483,647 unsigned long
4 unsigned long int
0 to 4,294,967,295 long long
8 none (but equivalent to __int64
)-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 unsigned long long
8 none (but equivalent to unsigned __int64
)0 to 18,446,744,073,709,551,615 enum
varies none float
4 none 3.4E +/- 38 (7 digits) double
8 none 1.7E +/- 308 (15 digits) long double
same as double
none Same as double
wchar_t
2 __wchar_t
0 to 65,535 Depending on how it's used, a variable of
__wchar_t
designates either a wide-character type or multibyte-character type. Use theL
prefix before a character or string constant to designate the wide-character-type constant.signed
andunsigned
are modifiers that you can use with any integral type exceptbool
. Note thatchar
,signed char
, andunsigned char
are three distinct types for the purposes of mechanisms like overloading and templates.The
int
andunsigned int
types have a size of four bytes. However, portable code should not depend on the size ofint
because the language standard allows this to be implementation-specific.C/C++ in Visual Studio also supports sized integer types. For more information, see
__int8, __int16, __int32, __int64
and Integer Limits.For more information about the restrictions of the sizes of each type, see Built-in types.
The range of enumerated types varies depending on the language context and specified compiler flags. For more information, see C Enumeration Declarations and Enumerations.
See also
-
-