unsigned char
From Just Solve the File Format Problem
unsigned 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.
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | value |
---|---|---|---|---|---|---|---|---|
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 128 |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 127 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 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.
Other C++ datatypes of the same size
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