Fixed Point to Floating Point and Backwards
Is converting Fixed Pt. (fixed n bit for fraction) to IEEE double safe ?
ie: does IEEE double format can represent all numbers a fixed point can represent ?
The test: a number goes to floating pt format then back to it's original fixed p开发者_JAVA技巧t format.
Assuming your fixed point numbers are stored as 32-bit integers, yes, IEEE double precision can represent any value representable in fixed point. This is because double has a 53-bit mantissa, your fixed point values only have 32 bits of precision, and the floating-point exponent for the fixed point value is bounded between -32 and 32 (depending on where you consider the binary-point to lie in your fixed point values) which is well within the representable range.
It all depends on the size and format of your fixed point type. Fixed point to floating point is safe if your fixed type has few enough bits not to become inaccurate when converted to float. The other way round your fixed point type would have to be extremely long because a double can potentially represent a very large value (magnitude-wise) in a small amount of bits.
精彩评论