Or convert the whole thing to fixed point. If you can live with that you only need to do shift operations. You need to have registers in the form integer.decimal each of which having a size of max. exp bits. Place a 1 in the integer part, copy the mantissa left aligned into the decimal part and shift both registers left (pos. exp) or right (neg. exp) for exp bits (unbias exp first). The result is a positive fixed point number in your registers 'integer.decimal'. If the FP number had the sign bit set then convert it to negative. The fixed notation is easier to convert to ASCII.