# Maximum value of unsigned char in C++

• Last Updated : 18 Jan, 2021

In this article, we will discuss the maximum value of unsigned char data type in C++.

Some properties of the unsigned char data type are:

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.
• Being an unsigned data type, it can store only positive values.
• Unsigned char data type in C++ is used to store 8-bit characters.
• A maximum value that can be stored in an unsigned char data type is typically 255, around 28 – 1(but is compiler dependent).
• The maximum value that can be stored in an unsigned char is stored as a constant in the <climits> header file, whose value can be used as UCHAR_MAX.
• A minimum value that can be stored in an unsigned char data type is 0.
• In case of overflow or underflow of data type, the value is wrapped around.
• For example, if 0 is stored in an unsigned char data type and 1 is subtracted from it, the value in that variable will become equal to 255. Similarly, in the case of overflow, the value will round back to 0.

Below is the program to get the highest value that can be stored in unsigned char in C++:

## C++

 `// C++ program to obtain the maximum``// value that can be stored in an``// unsigned char`` ` `#include ``#include ``using` `namespace` `std;`` ` `// Function to find the maximum value``// stored in unsigned char``void` `maxUnsignedChar()``{``    ``// From the constant of climits``    ``// header file``    ``unsigned ``char` `valueFromLimits = UCHAR_MAX;``    ``cout << ``"Value from climits "``         ``<< ``"constant : "``         ``<< (``int``)valueFromLimits``         ``<< ``"\n"``;`` ` `    ``// Using the wrap around property``    ``// of data types`` ` `    ``// Initialize a variable with``    ``// value 0``    ``unsigned ``char` `value = 0;`` ` `    ``// Subtract 1 from value since``    ``// unsigned data type cannot store``    ``// negative number, the value will``    ``// wrap around and store the maximum``    ``// value that we can store in it``    ``value = value - 1;`` ` `    ``cout << ``"Value using the wrap "``         ``<< ``"around property : "``         ``<< (``int``)value << ``"\n"``;``}`` ` `// Driver Code``int` `main()``{``    ``// Function call``    ``maxUnsignedChar();`` ` `    ``return` `0;``}`
Output:
```Value from climits constant : 255
Value using the wrap around property : 255
```

My Personal Notes arrow_drop_up