Ok, usually I stay out of these things, but.......
A single 8-bit byte can store values from 0 though 255 ( 256 different values).
Any offset (i.e. definition of boundaries) of that single 8-bit byte requires additional space.
I.e. another offset value stored somewhere.
So.........0-255 is the range of values capable of being stored in a byte, unless, of course, the high bit is interpreted as a negative number, then you have 127 negative values, negative 0 and positive 0 and 127 positive values, which, when added up gets you 256 values.
8 bits is 8 bits, no more, no less. The program or the compiler may 'hide' the additional values, but parts is parts.
Eric (I promise I will never do this again
)
Congrats Paul on such a long, interesting, and focused thread. Very useful to all.