Significand

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

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[1] 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 standard William Kahan.[2]

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,[1][3][4] where −2 is the exponent (and 10 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

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

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:

0.12345 × 10+3

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

This later 0.xxxx form is called a normed significand.

Significands and the hidden bit

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[1] 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[2] 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:[5] "[...] 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 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). Using "mantissa" for both terms obscures this distinction.

See also

References

  1. 1.0 1.1 1.2 Lua error in package.lua at line 80: module 'strict' not found.
  2. 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
  3. 3.0 3.1 3.2 Lua error in package.lua at line 80: module 'strict' not found.
  4. 4.0 4.1 4.2 Lua error in package.lua at line 80: module 'strict' not found. (NB. At least some batches of this reprint edition were misprints with defective pages 115–146.)
  5. Lua error in package.lua at line 80: module 'strict' not found.