Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> In IEEE 754 standard, floating point numbers are represented using 1 bit for the sign, 11 bits for the exponent, and the remaining 52 bits for the fraction (number between 0 and 1).

On reading this I immediately read the standard, hoping to discover that the word "fraction" wasn't used, only to find that "fraction" is defined as the part of the significand (mantissa) lying to the right of the implied binary point. In essence then (because the bit to the "left" of the binary point is only ever implied, never explicit), "fraction" stands as a synonym for significand.

Unfortunate terminology. And why? Here's why:

A fraction: 1/3

A significand, base ten: 0.3333333333333333

IEEE 754 can provide the second, but it cannot provide the first.

IEEE 754:

http://kfe.fjfi.cvut.cz/~klimo/nm/ieee754.pdf

Significand:

http://en.wikipedia.org/wiki/Significand

A quote: "The significand (also coefficient or mantissa) is part of a floating-point number, consisting of its significant digits."

p.s. this is not a correction, it's a lament.



It's actually even more complicated...

Remember, this is binary, so the only possible digits are 0 and 1. For example, 1/3 in binary is 0.01010101010101...;

Encoding that in "floating point", we first get:

  1.0101010101 * 2^-2;
We can see that in this format, the first digit of the number is always 1; thus, the first digit of the significand, for any number, is ALWAYS 1 (in binary)! IEEE754 makes the optimization to not store this leading 1 as part of the fraction, so the the approximation to 1/3 is actually encoded as:

  0 01111111101 0101010101010101010101010101010101010101010101010101
  ^      ^            ^
  |      +-----+      |
  sign bit     |    fraction = 1.33333... = 1.01010101010101...0101010101010101b
               |                              |---  this part is included  ---|
               |
        exponent = 01111111101b - 1023 = 1021 - 1023 = -2




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: