||This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. (July 2011)|
The significand (also mantissa or coefficient) is part of a number in scientific notation or a floating-point number, consisting of its significant digits. Depending on the interpretation of the exponent, the significand may represent an integer or a fraction. The word mantissa seems to have been introduced by Arthur Burks in 1946 writing for the Institute for Advanced Study at Princeton, although this use of the word is discouraged by the IEEE floating-point standard committee as well as some professionals such as the creator of the IEEE floating point standards William Kahan.
The number 123.45 can be represented as a decimal floating-point number with the integer 12345 as the significand and −2 as the exponent (and 10 as the base). Its value is given by the following arithmetic:
- 12345 × 10−2
This same value can also be represented in normalized form with 1.2345 as the fractional coefficient, and +2 as the exponent (and 10 as the base):
- 1.2345 × 10+2
For base 2, this 1.xxxx form is also called a normalized mantissa.
- 0.12345 × 10+3
This later 0.xxxx form is called a normed mantissa.
When working in binary, the significand is characterized by its width in binary digits (bits). Because the most significant bit is always 1 for a normalized number, this bit is not typically stored and is called the "hidden bit". Depending on the context, the hidden bit may or may not be counted towards the width of the significand. 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, not including the hidden bit. The notion of a hidden bit only applies to binary representations. IEEE 754 defines the precision, p, to be the number of digits in the significand, including any implicit leading bit (e.g. precision, p, of double precision format is 53).
Use of "mantissa"
In American English, the original word for this seems to have been mantissa (Burks et al.), and this usage remains common in computing and among computer scientists. However, this use of mantissa is discouraged by the IEEE floating-point standard committee and by some professionals such as William Kahan and Donald Knuth, because it conflicts with the pre-existing use of mantissa for the fractional part of a logarithm (see also common logarithm). For instance Knuth adopts the third representation 0.12345 × 10+3 in the example above, and calls 0.12345 the fraction part of the number; he adds: "[…] it is an abuse of terminology to call the fraction part a mantissa, since this concept has quite a different meaning in connection with logarithms […]".
The confusion is because scientific notation and floating point are log-linear representations, not logarithmic. To multiply two numbers, given their logarithms, one just adds them – adds the characteristic (integer part) and adds 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). Using "mantissa" for both terms obscures this distinction and creates a risk of confusion.
- Kahan, William (April 19, 2002), Names for Standardized Floating-Point Formats (PDF),
m is the Significand or Coefficient or (wrongly) Mantissa
- D.E. Knuth. The art of computer programming, Vol. 2, 4.2.1.A. Addison-Wesley 1969.
- Burks, Arthur W.; Goldstine, Herman H.; Von Neumann, John (1946). Preliminary discussion of the logical design of an electronic computing instrument. Technical Report, Institute for Advanced Study, Princeton, NJ. In Von Neumann, Collected Works, Vol. 5, A. H. Taub, ed., MacMillan, New York, 1963, p. 42:
- 5.3. 'Several of the digital computers being built or planned in this country and England are to contain a so-called "floating decimal point". This is a mechanism for expressing each word as a characteristic and a mantissa—e.g. 123.45 would be carried in the machine as (0.12345,03), where the 3 is the exponent of 10 associated with the number.'