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.**