Quote Originally Posted by brewbuck View Post
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.