When an binary operator occurs with 2 datatypes that are not the same.
e.g. uint * int
then, the ‘lower’ datatype is promoted to the ‘higher’ datatype before the operation proceeds.
charandshortare converted tointfloatis converted todouble- if any are
doublethen*is converted todouble - if any are
longthen*is converted tolong - if any are
unsignedthen*is converted tounsigned - All float values are converted to
doubleAll floating point arithmetic in C is done in double precision - otherwise, the operands must be
intand result isint