Many DSP's have arithmetical units (with shifters), which can work with block floating points. These are normal fixed points numbers, but with exponent.
I've never used that, but I hear, this is very good for algorithms making on blocks of data (ie. FFT).
If you want to know more about that, try to search analog devices DSP application notes.