[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: What is a magic number?



On Wed, Aug 26, 1998 at 07:54:24PM +0800, htyj wrote:
> I've seen the term "magic number" in many documents, I wonder what it is,
> and how to get it(calculate it?)? TIA.

Courtesy of "dict":
:  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 commonsense 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'.
:     Many other kinds of files now have magic numbers somewhere; some magic
:     numbers are, in fact, strings, like the `!<arch>' at the beginning of
:     a Unix archive file or the `%!' leading PostScript files.  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.

Sense #3 is likely to be the one you're looking for. See also file(1) and
magic(5).

HTH,
Ray
-- 
Cyberspace, a final frontier. These are the voyages of my messages, 
on a lightspeed mission to explore strange new systems and to boldly go
where no data has gone before. 


Reply to: