Differences in char, signed char, and unsigned char