...
Type range errors, including loss of data (truncation) and loss of sign (sign errors), can occur when converting from a a value a value of an unsigned integer type to a value of a signed integer type. This noncompliant code example results in a truncation error on most implementations:
...