This is called reciprocal multiplication. You can trade off accuracy for number of bits required, etc. I used this to do meaningful processing of Kinect data on a CPU without an FPU at near full frame rate.
Just curious, did you try making x an 8-bit integer to see if the compiler chose a different multiplier?
Just curious, did you try making x an 8-bit integer to see if the compiler chose a different multiplier?