On 22 April 2015 at 19:44:26, William Huston (williamahuston@gmail.com) wrote:
On Wednesday, April 22, 2015, Jamie Bullock jamie@jamiebullock.com wrote:
Pd is 32-bit *floating point*, so you have 32-bit resolution between -1 and 1.
I don't think that's right.
The range of a single precision floating point number is from
-3.4028234 × 10E38 to 3.4028234 × 10E38 (not from -1 to 1)
True, but I didn’t say the range of 32-bit float was -1 to 1!
There are only 23 bits of precision for the mantissa + 1 for sign in a single precision float.
Also true, but when I said “resolution” I didn’t mean “precision”. Because the exponent can be negative, resolution scales dynamically from 1..0 according to the value of the exponent, whilst precision stays fixed according to the number of bits in the mantissa. Thus for very small values the resolution (or quantisation step size) is far finer than can be represented with the mantissa alone.
What I was trying to put across (poorly!) in my original reply is that unlike fixed point where for lower order values fewer bits are available in the binary representation, with floating point, just because e.g. -1..1 is a smaller range than -3.4 x 10E38..3.4 x 10E38 it doesn’t imply “fewer are bits available”, e.g.
Sign Exponent Mantissa 0 01111110 11111111111111111111111 -> 0.99999994 0 00000001 11111111111111111111111 -> 2.3509886E-38 1 01000000 0000000000000000000000 -> -1.0842022E-19 1 011111110 0000000000000000000000 -> -1.0
Strictly speaking, I guess only 31 bits “count” in the range -1..1 due to a maximum of 7-bits being significant in the exponent.
best,
Jamie