0
$\begingroup$

In class, I've heard hexadecimal representation for IEEE754 mentioned and described in 32bit length as a format that consists of one bit for sign, normalized 6-digit fraction (with an implied leading zero) and biased (+64) 7bit exponent, leading me to believe it's not just a made up spec.

However, googling the actual IEEE754-2008 standard, I've found only 5 basic formats for base 2 and base 10 in it (binary32, binary64, binary128, decimal64, decimal128) and some more interchange formats for these two bases, but no mention of representation in base 16. Could that specification be some rejected proposal which is difficult to find now or am I missing something here?

$\endgroup$
1
$\begingroup$

There is the old IBM format :

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

which fits that description, but it's not an IEEE P754 format.

$\endgroup$
  • $\begingroup$ This actually sounds like what I was looking for—but it was misleadingly lumped together with IEEE754 in lessons, leading me to believe there is a connection between the two $\endgroup$ – Luke Mar 14 at 15:56
  • $\begingroup$ @Luke. The IEEE standard was designed from the many previously used formats, addressing their shortcomings : handling of infinites, very small numbers, ranges of exponents, rounding, hardware implementation complexity... Before the unification, each computer brand used differend formats, making cumbersome data transfers, and difficult to reproduce results for many numerical algorithms. Notable formats were IBM's, Dec VAX and MIL-STD 1750A which survived many years after the IEEE standard became dominant, for compatibility with old software. $\endgroup$ – TEMLIB Mar 16 at 0:01
1
$\begingroup$

Hexadecimal notation is just a shortcut writing one hexadecimal digit instead of four bits. For example 1A is exactly the same as 00011010. So eight hexadecimal digits give you the same as the binary32 format.

What you describe may be that someone takes one sign bit, 2 hex digits for the 8 bit exponenent, and 6 hex digits for the 23 bit mantissa. That would be possible but a bit misleading.

$\endgroup$
  • $\begingroup$ It is described as a completely different format—notice it uses 6 hex digits in fraction (which are encoded as 24 bits, not 23 like binary32 uses), and the 7 remaining bits (instead of 8) for fraction, effectively halving the range. So I was wondering if I'm missing a part from the standard itself which defines floating point in base 16. $\endgroup$ – Luke Jan 7 at 23:10
0
$\begingroup$

The description you were given us wrong. It’s one sign but, an 8 bit exponent biased by 127 (so for the number 1.0 the biased exponent is 127), and a 23 bit mantissa with an implicit leading one bit.

There’s also a 64 bit format (11 bit exponent, 52 bit mantissa) and an 80 bit format (15 bit exponent, 64 bit mantissa with explicit leading bit).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.