HiveBrain v1.2.0
Get Started
← Back to all entries
patternModerate

Is significand same as mantissa in IEEE754?

Submitted by: @import:stackexchange-cs··
0
Viewed 0 times
mantissasamesignificandieee754

Problem

I'm trying to understand IEEE 754 floating point. when I try convert 0.3 from decimal to binary with online calculator, it said the significand value was 1.2

Where 1.2 come from?

I did understand another bits like exponent and sign bit.

.3 if converted to binary it will be

.3 * 2 = .6 + 0
.6 * 2 = .2 + 1
.2 * 2 = .4 + 0
.4 * 2 = .8 + 0
.8 * 2 = .6 + 1
...


So
0.3 = 0.010011001... in binary

Apply the scientific notation in binary:

0.010011001 = 1.0011001 * 2 ^ (-2)


So the exponent is -2. And the normalized mantissa is 0011001...

I will not talk about exponent bit and sign bit. Back to the my question, what is the difference of significand and mantissa?

Solution

They're used as synonyms in the context of floating point math, but "mantissa" is less correct mathematically.

It's fewer syllables, easier to type, and starts with a different letter than Sign or Exponent, so many people including myself still prefer it, despite what Kahan and Knuth have to say. (Also including Intel, in naming the AVX512 instruction vgetmantpd for example, as a partner for vgetexppd which are convenient for exp/log implementations.)

Either / both get used as names for the part that isn't the sign bit or the exponent field. Or the value represented by that field, as opposed to the bits of the encoding. Wikipedia's articles on single-precision binary32 (float), and double, and IEEE FP formats in general, are very good.

Gilles's answer suggests that the two terms could make a distinction between the 1.x value represented vs. the bit-pattern or encoding, but I don't think that usage is common; I've never come across it.

For example, a single-precision binary32 FP converter (with a nice UI and display of the bits) names the field "Mantissa", and shows both the binary bit-pattern and the 1.x or 0.x value it represents (depending on the leading 1 or 0 implied by the exponent field for a normalized or subnormal float).

Wikipedia's Significand article describes the fact that they're used synonymously. But has a section at the end about why "mantissa" isn't quite the right mathematical meaning for FP math, since the significand is linear with only the exponent field being exponential. Unlike in earlier use of mantissa for log tables.

The significand (also mantissa or [other names]) is part of a number in scientific notation or in floating-point representation, consisting of its significant digits. Depending on the interpretation of the exponent, the significand may represent an integer or a fraction.

Terminology

The term significand was introduced by George Forsythe and Cleve Moler in 1967 and is the word used in the IEEE standard. However, in 1946 Arthur Burks used the terms mantissa and characteristic to describe the two parts of a floating-point number (Burks et al.) and that usage remains common among computer scientists today.

Mantissa and characteristic have long described the two parts of the logarithm found on tables of common logarithms. While the two meanings of exponent are analogous, the two meanings of mantissa are not equivalent. For this reason, the use of mantissa for significand is discouraged by some including the creator of the standard, William Kahan and prominent computer programmer and author of The Art of Computer Programming, Donald E. Knuth.

The confusion is because scientific notation and floating-point representation are log-linear, not logarithmic. To multiply two numbers, given their logarithms, one just adds the characteristic (integer part) and the mantissa (fractional part). By contrast, to multiply two floating-point numbers, one adds the exponent (which is logarithmic) and multiplies the significand (which is linear).

Context

StackExchange Computer Science Q#152265, answer score: 10

Revisions (0)

No revisions yet.