Significand Explained

The significand (also coefficient, sometimes argument, or more ambiguously mantissa, fraction, or characteristic) is the first (left) part of a number in scientific notation or related concepts in floating-point representation, consisting of its significant digits. Depending on the interpretation of the exponent, the significand may represent an integer or a fractional number.

Example

The number 123.45 can be represented as a decimal floating-point number with the integer 12345 as the significand and a 10−2 power term, also called characteristics, where −2 is the exponent (and 10 is the base). Its value is given by the following arithmetic:

123.45 = 12345 × 10−2.

The same value can also be represented in scientific notation with the significand 1.2345 as a fractional coefficient, and +2 as the exponent (and 10 as the base):

123.45 = 1.2345 × 10+2.

Schmid, however, called this representation with a significand ranging between 1.0 and 10 a modified normalized form.

For base 2, this 1.xxxx form is also called a normalized significand.

Finally, the value can be represented in the format given by the Language Independent Arithmetic standard and several programming language standards, including Ada, C, Fortran and Modula-2, as

123.45 = 0.12345 × 10+3.

Schmid called this representation with a significand ranging between 0.1 and 1.0 the true normalized form.

The hidden bit in floating point

For a normalized number, the most significant digit is always non-zero. When working in binary, this constraint uniquely determines this digit to always be 1. As such, it is not explicitly stored, being called the hidden bit.

The significand is characterized by its width in (binary) digits, and depending on the context, the hidden bit may or may not be counted toward the width. For example, the same IEEE 754 double-precision format is commonly described as having either a 53-bit significand, including the hidden bit, or a 52-bit significand, excluding the hidden bit. IEEE 754 defines the precision p to be the number of digits in the significand, including any implicit leading bit (e.g., p = 53 for the double-precision format), thus in a way independent from the encoding, and the term to express what is encoded (that is, the significand without its leading bit) is trailing significand field.

Floating-point mantissa

In 1946, Arthur Burks used the terms mantissa and characteristic to describe the two parts of a floating-point number (Burks et al.) by analogy with the then-prevalent common logarithm tables: the characteristic is the integer part of the logarithm (i.e. the exponent), and the mantissa is the fractional part. The usage remains common among computer scientists today.

The term significand was introduced by George Forsythe and Cleve Moler in 1967 and is the word used in the IEEE standard as the coefficient in front of a scientific notation number discussed above. The fractional part is called the fraction.

To understand both terms, notice that in binary, 1 + mantissa ≈ significand, and the correspondence is exact when storing a power of two. This fact allows for a fast approximation of the base-2 logarithm, leading to algorithms e.g. for computing the fast square-root and fast inverse-square-root. The implicit leading 1 is nothing but the hidden bit in IEEE 754 floating point, and the bitfield storing the remainder is thus the mantissa.

However, whether or not the implicit 1 is included is a major point of confusion with both terms—and especially so with mantissa. In keeping with the original usage in the context of log tables, it should not be present.

For those contexts where 1 is considered included, William Kahan, lead creator of IEEE 754, and Donald E. Knuth, prominent computer programmer and author of The Art of Computer Programming, condemn the use of mantissa. This has led to declining use of the term mantissa in all contexts. In particular, the current IEEE 754 standard does not mention it.

See also