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.