Ja, dat had ik er eigenlijk nog bij willen schrijven; wel oppassen dat je niet uit het bereik van je integers loopt. Als de deler een constante is (zoals vaak bij het omrekenen van ADC samples e.d.), kun je de deling in 2 stukken splitsen; eerst wat nodig is om nooit uit het bereik te lopen, en de rest aan het eind, en bij voorkeur doe je die eerste (als het kan beide) dan met een bitshift, dat is eigenlijk altijd significant sneller dan een integer deling.
Veel moderne microcontrollers (zoals de STM32F4 die ik veel gebruik; die gaat toch al een tijdje mee) hebben dedicated floating-point hardware aan boord. Een vermenigvuldiging van 2 single precision floats kost 1 cycle, aangenomen dat de operants als geladen zijn, en een deling 14 cycles. Een integer bitshift kost 1 cycle (ongeacht de shift count), maar een integer deling kost 2 tot 12 cycles, afhankelijk van de waarde van de deler.
Het verschil tussen de worst-case 12 cycles van een integer deling, en de vaste 14 cycles van een floating point is erg klein. Zelfs als je de (2+12)/2 = 7 cycles als gemiddelde neemt voor integer delingen, scheelt het maar een factor 2 op die ene instructie. Je kunt je dan afvragen of het de moeite loont om nog met fixed-point te werken.
Voor controllers zonder floating-point hardware (zoals oude 8-bitters) ligt dat natuurlijk anders.