// If the integer part is greater than one, we need to use a higher exponent
if((rounded_mantissa>>bits.mantissa)>1)
++biased_exponent;
if(biased_exponent>=exponent_mask || infinity)
// Overflow, return infinity
// If the integer part is greater than one, we need to use a higher exponent
if((rounded_mantissa>>bits.mantissa)>1)
++biased_exponent;
if(biased_exponent>=exponent_mask || infinity)
// Overflow, return infinity