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.