In C++ development, integer variables can be decimal (base 10
), octal (base 8
) or hexadecimal (base 16
). In addition to int
, short int
, long int
, and long long int
, there are fixed width integer types. Fixed-width integers are defined types with a fixed number of bits. In this post we will list them.
What are fixed width integer types in modern C++?
In addition to standard types in C++, there are fixed-width integers which are defined types in header <cstdint>
with a fixed number of bits. Fixed-width integers are called as intN_t
or intX_t
integers where N or X represents number of bits reserved for that type. That means, these integer types guarantee a specific size in bits, and can be portable to any other platform. Mostly we use decimal variables which are in ranges from 0
to 4,294,967,295
but there are many different types of integers that allows developers use the memory wisely.
What are fixed width signed integer types in modern C++?
Fixed-width integers which are defined types in header <cstdint>
, and these can be listed as below,
Here are signed with integer types:
Fixed Width Integer Types | Description |
int8_t | 8 bits signed integer type |
int16_t | 16 bits signed integer type |
int32_t | 32 bits signed integer type |
int64_t | 64 bits signed integer type |
Here are signed integer types ‘fastest form’:
Fixed Width Integer Types | Description |
int_fast8_t | 8 bits fast signed integer type |
int_fast16_t | 16 bits fast signed integer type |
int_fast32_t | 32 bits fast signed integer type |
int_fast64_t | 64 bits fast signed integer type |
Here are signed with integer types in ‘smallest form’:
Fixed Width Integer Types | Description |
int_least8_t | 8 bits smallest signed integer type |
int_least16_t | 16 bits smallest signed integer type |
int_least32_t | 32 bits smallest signed integer type |
int_least64_t | 64 bits smallest signed integer type |
and there is also maximum-width signed integer type:
Fixed Width Integer Types | Description |
intmax_t | integer type that has maximum-width |
and a signed integer type that holds pointer:
Fixed Width Integer Types | Description |
intptr_t | signed integer type that holds pointer |
What are fixed width unsigned integer types in modern C++
If you are sure that your integer variable is a zero or a positive number, you can use an unsigned version that doubles the highest integer number which can be used in that variable.
Here are unsigned with integer types in general form:
Fixed Width Integer Types | Description |
uint8_t | 8 bits unsigned integer type |
uint16_t | 16 bits unsigned integer type |
uint32_t | 32 bits unsigned integer type |
uint64_t | 64 bits unsigned integer type |
Here are unsigned with integer types in fastest form:
Fixed Width Integer Types | Description |
uint_fast8_t | 8 bits fast unsigned integer type |
uint_fast16_t | 16 bits fast unsigned integer type |
uint_fast32_t | 32 bits fast unsigned integer type |
uint_fast64_t | 64 bits fast unsigned integer type |
Here are signed with integer types in smallest form:
Fixed Width Integer Types | Description |
uint_least8_t | 8 bits smallest unsigned integer type |
uint_least16_t | 16 bits smallest unsigned integer type |
uint_least32_t | 32 bits smallest unsigned integer type |
uint_least64_t | 64 bits smallest unsigned integer type |
and there is also maximum-width unsigned integer type:
Fixed Width Integer Types | Description |
uintmax_t | integer type that has maximum-width |
and unsigned integer type that holds pointer:
Fixed Width Integer Types | Description |
uintptr_t | unsigned integer type that holds pointer |
If you are looking more about Integer constants there are more details about them, https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Integer_Constants
C++ Builder is the easiest and fastest C and C++ IDE for building simple or professional applications on the Windows, MacOS, iOS & Android operating systems. It is also easy for beginners to learn with its wide range of samples, tutorials, help files, and LSP support for code. RAD Studio’s C++ Builder version comes with the award-winning VCL framework for high-performance native Windows apps and the powerful FireMonkey (FMX) framework for cross-platform UIs.