# Calculate range of data types using C++

• Difficulty Level : Medium
• Last Updated : 12 Jan, 2018

C++ program for printing the range data type like int, char, short.

Signed Data Types

```METHOD
1.) calculate total number of bits by multiplying sizeof with 8 (say n)
2.) Calculate  -2^(n-1) for minimum range
3.) Calculate  (2^(n-1))-1 for maximum range
```

 `// CPP program to calculate ``// range of signed data type``#include ``#define SIZE(x) sizeof(x) * 8``using` `namespace` `std;`` ` `// function to calculate range of``//unsigned data type``void` `printSignedRange(``int` `count)``{``    ``int` `min = ``pow``(2, count - 1);``    ``int` `max = ``pow``(2, count - 1) - 1;``    ``printf``(``"%d to %d"``, min * (-1), max);``}`` ` `// DRIVER program``int` `main()``{``    ``cout << ``"signed char: "``;``    ``printSignedRange(SIZE(``char``));``    ``cout << ``"\nsigned int: "``;``    ``printSignedRange(SIZE(``int``));``    ``cout << ``"\nsigned short int: "``;``    ``printSignedRange(SIZE(``short` `int``));`` ` `    ``return` `0;``}`

Output:

```signed char: -128 to 127
signed int: -2147483648 to 2147483647
signed short int: -32768 to 32767
```

Unsigned Data Types

```METHOD
1.)Find number of bits by multiplying result of sizeof with 8 say n
2.)minimum range is always zero for unsigned data type
3.)for maximum range calculate 2^n-1
```

 `// CPP program to calculate range ``// of given unsigned data type``#include ``#define SIZE(x) sizeof(x) * 8``using` `namespace` `std;`` ` `// function to calculate range ``// of given unsigned data type``void` `UnsignedRange(``int` `count)``{``    ``// calculate 2^number of bits``    ``unsigned ``int` `max =  ``pow``(2, count) - 1;`` ` `    ``cout << ``"0 to "` `<< max;``}`` ` `// DRIVER program``int` `main()``{``    ``cout << ``"unsigned char: "``;``    ``UnsignedRange(SIZE(unsigned ``char``));``    ``cout << ``"\nunsigned int: "``;``    ``UnsignedRange(SIZE(unsigned ``int``));``    ``cout << ``"\nunsigned short int: "``;``    ``UnsignedRange(SIZE(unsigned ``short``));``    ``return` `0;``}`

Output:

```unsigned char: 0 to 255
unsigned int: 0 to 4294967295
unsigned short int: 0 to 65535
```

My Personal Notes arrow_drop_up