__NUMBERING SYSTEMS AND COMPUTERS __

We humans use a decimal, or base-10, numbering system, presumably because people have 10 fingers. if we had three fingers and a thumb all each hand, as does the Extra Terrestrial (E,T,) from the popular movie. then in all probability we would be using the octal numbering system. which has a base of 8.

Early computers were designed around the decimal numbering system. This approach made the creation of computer logic capabilities unnecessarily complex and did not make efficient use of resources, (For example, ten vacuum tubes were needed to represent one decimal digit.) In 1945, as computer pioneers were struggling to improve this cumbersome approach, John von Neumann suggested that the numbering system used by computers should take advantage of the physical characteristics of electronic circuitry. To deal with the basic electronic states of on and off, von Neumann suggested using the binary numbering system. His insight has vastly simplified The way computers handle data.

Computers operate in binary and communicate to us in decimal. A special program translates decimal into binary on input, and binary into decimal on output. Under normal circumstances, a programmer would see only decimal input and output. On occasion, though, he or she must deal with long and confusing strings of 1s and 0s in the form of a memory dump. A memory dump is like a snapshot of the contents of primary storage (on-bits and off-bits ) at a given moment in time. To reduce at least part of the confusion of seeing only 1s and 0s on the output, the hexadecimal (base-16) numbering system is used as a shorthand to display the binary contents of both primary and secondary storage (see Figure 2).

The decimal equivalents for binary, decimal, and hexadecimal numbers are shown in Figure 3, we know that in decimal, any number greater than 9 is represented by a sequence of digits. When you count in decimal, you "carry" to the next position in groups of 10. As you examine Figure 3, notice that you carry in groups of 2 in binary and in groups of 16 in hexadecimal. Also note that any combination of four binary digits can be represented by one "hex" digit. The hexadecimal numbering system is used only for the convenience of the programmer when reading and reviewing the binary output of a dump (see Figure 2) or the binary representation of an instruction or error message. Computers do not operate or process in hex.

The Appendix, "Working with Numbering Systems," presents the principles of numbering systems, discusses numbering-system arithmetic, and illustrates how to convert a value in one numbering system into its equivalent in another.