An operator for a specific type always takes that type as operands and produces a value of the same type. When a binary operation is performed on two numeric values of different types, both operands are implicitly promoted (converted) to the wider of the two operand types type which, in case of the non-relational operators, also becomes the result type of the operation.