Unsigned char

signed char is the smallest unsigned integer type in C++, it often gets typedef-ed as "byte" (alternatively people use signed char for that reason) because it uses one byte of memory (depending upon what architecture defines it as, but no less than 8 bits). The range of values that can definitely be stored in this type is 0 – 255.

Operation 255+1 will likely cause a "roll over" and the result will be 0, but it is unwise to count on that when writing multi-architecture code, as it is possible to define byte in a processor to be more than 8 bits.

Relationship with char
unsigned char uses exact same amount of memory as char, the main difference happens during the output; char gets interpreted as the code of ASCII character, while unsigned char is interpreted as non-negative binary integer.

Other C++ datatypes of the same size

 * char
 * signed char

Other C++ data types storing unsigned integers

 * unsigned short no less than 16 bits, no less than char
 * unsigned (int) no less than 16 bits, no less than short
 * unsigned long no less than 32 bits, no less than int
 * unsigned long long no less than 64 bits, no less than long