C++ Integer data type : built-in data type

By using integer data type we can make use of integer value in our program.Integer type may come in handy if your program requires integer value or an operation that involve integer value.To use the integer data type in our program we will use the keyword int and a variable should be declared for the type(if you don’t know what is variable please visit this link C++ Terms:Variables , Identifier , Keyword , Operators , Operands,literals).An example code below shows how to use the integer data type in a program.

int var=90 ;  //var is a variable of 'int' type

cout << var+var ; //Outputting the sum of the value

Output

180

 

There are many integral types in C++ and some can represent a small range of value while others can represent a larger range of value.Specifically there are four integer data types in C++:

i)Short int.
ii)int (plain int type).
iii)long int and
iv)long long.

 

An example below shows how to use the ‘short int‘ or just ‘short‘ type.

 

short short_int=89 ;

short_int+=short_int ;  //same as short_int=short_int + short_int ;

cout<< short_int ; 

Output,

178

 

Further division of integer type

The integer data type are divided into four types.But if we use the specifier ‘signed‘ and ‘unsigned‘ we can further classify various integer data type as:

i)short type : signed short int , unsigned short int.
ii)int type :signed int , unsigned int.
iii)long int :signed long int , unsigned long int.
iv)long long:signed long long , unsigned long long.
 

 

The various integral type occupy different sizes but their corresponding signed and unsigned type will occupy the same size.For instance,’signed int’ and ‘unsigned int’ will have the same size as ‘int’ type.The various type and their size is discuss in more detail below.


short int

This type has the smallest size among all the integral type.So,it can represent the smallest ranges of value.The table below give the meaning,integer size and range of values short int can represent.

 

Type Description short Integer
size(maximum)
Range of values
short int Can represent
both +ve and
-ve values.
2 bytes -32,768 to 32,767
Signed short int Same as short
int
2 bytes -32,768 to 32,767
Unsigned short int Can represent
only +ve
values.
2 bytes 0 to 65535

 


int type

This type is also known as plain int type.In every machine this type will have a minimum size same as that of short int type.The table below shows the meaning,size and range of values it can represent.

Type Description int type integer
size(Maximum)
Range of values
int Can represent
both +ve and
-ve values
4 bytes -2147483648 to
2147483647
Signed int Same as
int
4 bytes -2147483648 to
2147483647
Unsigned int Can represent
only +ve
values.
4 bytes 0 to 4294967295

 

Since int type has a size larger than short int it can represent larger range of values.


long int

As the name suggest this type can represent a longer integer values and it will have a minimum size(can be more) of int type.To use this type you can write just ‘long’ instead of ‘long int’.More information about this type is given below.

Type Description long integer Maximum
size(Maximum)
Range of values
long int Can represent
both +ve and
-ve values
8 bytes -9223372036854775808 to
9223372036854775807
Signed long int Same as long
int
8 bytes -9223372036854775808 to
9223372036854775807
Unsigned long int Can represent
only +ve
values.
8 bytes 0 to 18446744073709551615

 


long long

This type has the largest size among all the int type and so it can represent the largest and smallest range of integer values.A table consisting of it’s range and size is shown below.

Type Description Long long integer
size(Maximum)
Range of values
int Can represent
both +ve and
-ve values
8 bytes -9223372036854775808 to
9223372036854775807
Signed int Same as long
long int
8 bytes -9223372036854775808 to
9223372036854775807
Unsigned int Can represent
only +ve
values.
8 bytes 0 to 18446744073709551615

 

The program below shows the maximum and minimum values of different integer data type.Include the library <climits> because this library define the various minimum and maximum range of value each integer data type can represent.

#include <iostream>
#include <climits>

using namespace std;

int main( )
{
//Short min and max value
cout << “Short int minimum value ” << SHRT_MIN << endl ;
cout << “Short int maximum value ” << SHRT_MAX << endl ;
cout << “Unsigned short int maximum value ” << USHRT_MAx << endl ;

//Int min and max value
cout << “Int minimum value ” << INT_MIN << endl ;
cout << “Int maximum value ” << INT_MAX << endl ;
cout << “Unsigned int maximum value ” << UINT_MAx << endl ;

//Long int min and max value
cout << “Long int minimum value ” << LINT_MIN << endl ;
cout << “Long int maximum value ” << LINT_MAX << endl ;
cout << “Unsigned long int maximum value ” << ULINT_MAx << endl ;

//Long long min and max value
cout << “Long long minimum value ” << LLONG_MIN << endl ;
cout << “long long maximum value ” << LLONG_MAX << endl ;
cout << “Unsigned long long maximum value ” << ULLONG_MAx << endl ;

cin.get( ) ;
return 0 ;
}

Run the code and see the output yourself.

The minimum and maximum value given by the <climits> library for various signed and unsigned integer data type is the standard value in C++ and nothing can change it’s value unless the C++ committee intends to do so.