When a value with integral type is converted to another integral type, if the value can be
represented by the new type, its value is unchanged.
When a signed integer is converted to an unsigned integer with equal or greater size, if the
value of the signed integer is nonnegative. its value is unchanged. Otherwise: if the unsigned
integer has greater size, the signed integer is first promoted to the signed integer corresponding to
the unsigned integer: the value is converted to unsigned by adding to it one greater than the
largest number that can be represented in the unsigned integer type ”