Next: Unsigned integer types, Up: Primitive types [Contents]

There are five primitive signed integer types: `int`

, `int8`

,
`int16`

, `int32`

and `int64`

.

Except for `int`

, the width in bits of each of these is given by the
numeric suffix in its name.

The width in bits of `int`

is implementation defined,
but must be at least 32-bits.

All signed integer types use two’s-complement representation. Their width must be equal to the width of the corresponding unsigned type.

Values of the type `int8`

must be in the range *-128*
(*-(2^{8 - 1})*) to *127* (*2^{8 - 1} - 1*),
both inclusive.

Values of the type `int16`

must be in the range *-32768*
(*-(2^{16 - 1})*) to *32767* (*2^{16 - 1} - 1*),
both inclusive.

Values of the type `int32`

must be in the range *-2147483648*
(*-(2^{32 - 1})*) to *2147483647* (*2^{32 - 1} - 1*),
both inclusive.

Values of the type `int64`

must be in the range *-9223372036854775808*
(*-(2^{64 - 1})*) to *9223372036854775807* (*2^{64 - 1} - 1*),
both inclusive.

Values of the type `int`

must be in the range to *-(2^{N - 1})* to
*2^{N - 1} - 1*, both inclusive; *N* being the width of `int`

in bits.