The integral and floating point promotions are used automatically as part of the usual arithmetic conversions and default argument promotions. The integral and floating point promotions do not change either the sign or the magnitude of the value. For more information about the usual arithmetic conversions, see Usual arithmetic conversions.


The Boolean type can be converted to the int type.
If the Boolean
value is 0, the result is an int with a value of
0. If the Boolean value is 1, the result is an int with
a value of 1.
If
the Boolean value is false, the result is an int with
a value of 0. If the Boolean value is true, the result
is an int with a value of 1.
If an integer type other than wchar_t, bit field, and Boolean can be represented by the int type and its rank is lower than the rank of int, the integer type can be converted to the int type. Otherwise, the integer type can be converted to the unsigned int type.
The float type can be converted to the double type. The float value is not changed after the promotion.