An integral promotion is the conversion of one integral type to another where the second type can hold all possible values of the first type. Certain fundamental types can be used wherever an integer can be used. The following fundamental types can be converted through integral promotion are:
Except for wchar_t, if the value cannot be represented by an int, the value is converted to an unsigned int. For wchar_t, if an int can represent all the values of the original type, the value is converted to the type that can best represent all the values of the original type. For example, if a long can represent all the values, the value is converted to a long.
Floating-Point Promotions
You can convert an rvalue of type float to an rvalue of type double. The value of the expression is unchanged. This conversion is a floating-point promotion.
Related References