Is there any documentation out there on how mathematical functions are handled when operating on different types?

E.g.: * would integer division of 1 / 2 produce a float or double of 0.5? Or an integer of the same type set to 0? * if two INT are multipled and produce a result larger than INT can support, is the result returned as a BIGINT?