The principle of data type conversion is shown in the following figure:
Double floating
High ↑
long
↑
Unsigned
↑
Low int/char, short integer
"←" indicates certain conversion, such as float type is always converted to double type at runtime; "↑" indicates the conversion direction when operand types are different. For example, if the operation is a mixed operation of type int and type double, the type int will be converted to type double.