# Range of Int in C

In this article, we are going to discuss the range of int in C with programs.

## Range of Int

Data types, and their size and range, play an important role in C programming. The sizeof() operator gives the number of bytes required to store a value in memory of a specific form. However, to prevent overflow and underflow errors in programming, we must be aware of a type's range. C specifies the exact minimum storage size for each integer form. For example, short requires at least two bytes, and long requires at least four bytes. The compiler determines the size and range of a data type. As a result, we should not hardcode the size and range values in the program.

### Find a range of data types manually without a C library

The given formula defines the minimum and maximum range of a signed type:

• -(2N-1) to 2N-1 - 1 (Where N is sizeof(type) * 8 (it is the total number of bits used by integer type)).

The given formula defines the minimum and maximum range of an unsigned type:

• 0 to (2N-1) + (2N-1 - 1)

Examples:

Let's take an example to find the range of integers in C programming.

Output: After executing this code, we will get the output as shown below:

```Range of int = -2147483648 to 2147483647
Range of unsigned int = 0 to 4294967295
Range of char = -128 to 127
Range of unsigned char = 0 to 255
Range of long = -9223372036854775808 to 9223372036854775807
Range of unsigned long = 0 to 18446744073709551615
Range of short = -32768 to 32767
Range of unsigned short = 0 to 65535
Range of long long = -9223372036854775808 to 9223372036854775807
Range of unsigned long long = 0 to 18446744073709551615
```

### Find the range of data types using a C library

The method described above for obtaining any form of the range is interesting, but it is not recommended for use. Using the power of a pre-defined C library is often recommended.

Limits.h and float.h are two header files in C programming that define minimum and maximum constants. limits.h specifies constants for integer type and character types. Small and maximum size ranges, total bits, and many others. The float.h defines the floating-point numbers.

Example:

Now, let's take an example to understand how we can find the range of integers by using the C library.

Output: After executing this above code, we will get the output as shown below:

The output is:

```Range of signed int -2147483648 to 2147483647
Range of unsigned int 0 to 4294967295
Range of signed char -128 to 127
Range of unsigned char 0 to 255
Range of signed long int -9223372036854775808 to 9223372036854775807
Range of unsigned long int 0 to 18446744073709551615
Range of signed short int -32768 to 32767
Range of unsigned short int 0 to 65535
Range of float 1.175494e-38 to 3.402823e+38
Range of double 2.225074e-308 to 1.797693e+308
Range of long double 3.362103e-4932 to 1.189731e+4932
```

Example:

Write a program that reads an integer type and checks it against the given range to see where it belongs.

Output: After executing this above code, we will get the output as shown below:

The Output is:

```Input an integer: 28
Range [26,50]
```

Example:

The sizeof() operator is used to determine the size of an integer form or some other type. The given below program shows how to use the sizeof() operator to determine the sizes of various integer types in the system.

Output: After executing this above code, we will get the output as shown below:

The output is:

```sizeof(short) = 2 bytes
sizeof(int) = 4 bytes
sizeof(unsigned int) = 4 bytes
sizeof(long) = 8 bytes
```

### Feedback   