...
Conversions to unsigned character types are well-defined by C11 C to have modular behavior. A character's value is not misinterpreted by the loss of sign or conversion to a negative number. For example, the Euro symbol €
is sometimes represented by bit pattern 0x80
which can have the mathematical value 128 or -127.
Conversions to signed character types are more problematic.
C11 subclause The C Standard, subclause 6.3.1.3 paragraph 3 says, regarding conversions:
...