7 Expressions [expr]

7.3 Standard conversions [conv]

7.3.8 Integral conversions [conv.integral]

A prvalue of an integer type can be converted to a prvalue of another integer type.
A prvalue of an unscoped enumeration type can be converted to a prvalue of an integer type.
If the destination type is bool, see [conv.bool].
If the source type is bool, the value false is converted to zero and the value true is converted to one.
Otherwise, the result is the unique value of the destination type that is congruent to the source integer modulo , where N is the range exponent of the destination type.
The conversions allowed as integral promotions are excluded from the set of integral conversions.