Tutorialspoint.dev

Data Type Ranges and their macros in C++

Most of the times, in competitive programming, there is a need to assign the variable, the maximum or minimum value that data type can hold, but remembering such a large and precise number comes out to be a difficult job. Therefore, C++ has certain macros to represent these numbers, so that these can be directly assigned to the variable without actually typing the whole number. List of some of them are mentioned below.

Data Type                              Range                      Macro for min value           Macro for max value
char                                -128 to +127                        CHAR_MIN                      CHAR_MAX
short char                          -128 to +127                       SCHAR_MIN                     SCHAR_MAX
unsigned char                         0  to 255                             0                        UCHAR_MAX

short int                         -32768 to +32767                      SHRT_MIN                      SHRT_MAX
unsigned short int                    0  to  65535                          0                        USHRT_MAX 
int                          -2147483648 to +2147483647                  INT_MIN                       INT_MAX
unsigned int                          0  to  4294967295                     0                         UINT_MAX
long int            -9223372036854775808 to +9223372036854775807        LONG_MIN                      LONG_MAX
unsigned long int                     0  to  18446744073709551615           0                        ULONG_MAX 
long long int       -9223372036854775808 to +9223372036854775807       LLONG_MIN                     LLONG_MAX
unsigned long long int                0  to  18446744073709551615           0                       ULLONG_MAX

float                        1.17549e-38 to  3.40282e+38                 FLT_MIN                       FLT_MAX
float(negative)             -1.17549e-38 to -3.40282e+38                -FLT_MIN                      -FLT_MAX
double                      2.22507e-308 to  1.79769e+308                DBL_MIN                       DBL_MAX
double(negative)           -2.22507e-308 to -1.79769e+308               -DBL_MIN                      -DBL_MAX
// C++ code to demonstrate the macros for data types
#include<iostream>
#include<limits.h> // for int,char macros
#include<float.h> // for float,double macros
using namespace std;
int main()
{
  
// Displaying ranges with the help of macros
cout << "char ranges from : " << CHAR_MIN << " to " << CHAR_MAX;
cout << " short char ranges from : " << SCHAR_MIN << " to " << SCHAR_MAX;
cout << " unsigned char ranges from : " << 0 << " to " << UCHAR_MAX;
  
cout << " short int ranges from : " << SHRT_MIN << " to " << SHRT_MAX;
cout << " unsigned short int ranges from : " << 0 << " to " << USHRT_MAX;
cout << " int ranges from : " << INT_MIN << " to " << INT_MAX;
cout << " unsigned int ranges from : " << 0 << " to " << UINT_MAX;
cout << " long int ranges from : " << LONG_MIN << " to " << LONG_MAX;
cout << " unsigned long int ranges from : " << 0 << " to " << ULONG_MAX;
cout << " long long int ranges from : " << LLONG_MIN << " to " << LLONG_MAX;
cout << " unsigned long long int ranges from : " << 0 << " to " << ULLONG_MAX;
  
cout << " float ranges from : " << FLT_MIN << " to " << FLT_MAX;
cout << " negative float ranges from : " << -FLT_MIN << " to " << -FLT_MAX;
cout << " double ranges from : " << DBL_MIN << " to " << DBL_MAX;
cout << " negative double ranges from : " << -DBL_MIN << " to " << +DBL_MAX;
  
return 0;
  
}

Output:

char ranges from : -128 to 127

short char ranges from : -128 to 127

unsigned char ranges from : 0 to 255


short int ranges from : -32768 to 32767

unsigned short int ranges from : 0 to 65535

int ranges from : -2147483648 to 2147483647

unsigned int ranges from : 0 to 4294967295

long int ranges from : -9223372036854775808 to 9223372036854775807

unsigned long int ranges from : 0 to 18446744073709551615

long long int ranges from : -9223372036854775808 to 9223372036854775807

unsigned long long int ranges from : 0 to 18446744073709551615


float ranges from : 1.17549e-38 to 3.40282e+38

negative float ranges from : -1.17549e-38 to -3.40282e+38

double ranges from : 2.22507e-308 to 1.79769e+308

negative double ranges from : -2.22507e-308 to 1.79769e+308

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



This article is attributed to GeeksforGeeks.org

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter