Nothing is being expressed. It's just bits. When you stick the bit pattern 11111111 into an unsigned char you get 255. In a signed char, you get -128. The computer doesn't care. The problem exists only in your mind.
Actually, on almost all modern architectures, 1111 1111 signed is -1.
But technically, in C, integer overflow is undefined behavior. So if you add two numbers such that the result is greater than INT_MAX, anything can happen. Even a crash.
It is too clear and so it is hard to see.
A dunce once searched for fire with a lighted lantern.
Had he known what fire was,
He could have cooked his rice much sooner.