magic number

magic number n.  [UNIX/C] 1. In source code, some
   non-obvious constant whose value is significant to the operation of
   a program and that is inserted inconspicuously in-line
   ({hardcoded}), rather than expanded in by a symbol set by a
   commented `#define'.  Magic numbers in this sense are bad
   style.  2. A number that encodes critical information used in an
   algorithm in some opaque way.  The classic examples of these are
   the numbers used in hash or CRC functions, or the coefficients in a
   linear congruential generator for pseudo-random numbers.  This
   sense actually predates and was ancestral to the more common sense
   1.  3. Special data located at the beginning of a binary data file
   to indicate its type to a utility.  Under UNIX, the system and
   various applications programs (especially the linker) distinguish
   between types of executable file by looking for a magic number.
   Once upon a time, these magic numbers were PDP-11 branch
   instructions that skipped over header data to the start of
   executable code; 0407, for example, was octal for `branch 16 bytes
   relative'.  Nowadays only a {wizard} knows the spells to create
   magic numbers.  How do you choose a fresh magic number of your own?
   Simple -- you pick one at random.  See?  It's magic!

   *The* magic number, on the other hand, is 7+/-2.  See
   "The magical number seven, plus or minus two: some limits on
   our capacity for processing information" by George Miller, in the
   "Psychological Review" 63:81-97 (1956).  This classic paper
   established the number of distinct items (such as numeric digits)
   that humans can hold in short-term memory.  Among other things,
   this strongly influenced the interface design of the phone system.



HTML Conversion by AG2HTML.pl V2.94618 & witbrock@cs.cmu.edu