"But let your communication be, Yea, yea; nay, nay: for whatsoever is more than these cometh of evil." Matthew 5:37
There is nothing in computer science as basic as the binary number system. In fact, the word binary is often used to refer to something that's too simple, as in, "He's a binary thinker," meaning he can't see shades of gray. (Or the digits 2 through 9.)
All of the software and all of the data in conventional (digital) computers, from PDAs to supercomputers, are built up from strings of zeroes and ones. If you knew where to look, that picture you took with your digital camera, the recent presentation to your board and all the complex logic in your company's supply chain system would appear as endless streams of binary digits (bits), like this: 01100100100010110101101010...
It's hard to believe today, but in the 1940s, the earliest computer technicians actually worked at the bit level. If a computer made a mistake and the technician determined it wasn't from a burned-out vacuum tube, he might have replaced a 0 with a 1 somewhere and tried again.
In day-to-day life, most humans use the decimal, or base-10, system. But if humans had eight fingers, no doubt our numbering system would be a base-8 system, with numerals from 0 through 7. And if we had 16 fingers, we might use a base-16 system. In fact, IBM invented just such a system in the early 1960s, using the "numerals" 0 through 9 and A through F. "Hexadecimal" became the base notation for the IBM System/360 mainframes. Why? A programmer could remember and work with a 16-bit instruction much more easily when it was represented by four hex characters, such as 58F0 (a "load" instruction), than if it were 0101 1000 1111 0000.
Way before that, in 1949, Grace Hopper programmed the Binac (Binary Automatic Computer) at the Eckert-Mauchly Computer using octal code. She taught herself base-8 math, and she once admitted she couldn't balance her checkbook because she tended to lapse into octal subtraction.
Still, at their lowest levels, the Binac and System/360s stored and operated on binary numbers, just as today's computers do, with the octal and hex numbers that were entered by programmers converted to binary.
Yea or nay
So why was binary chosen in the first place? Why weren't computers built from Day One to work directly, at their lowest levels, on decimal numbers? (Actually, one early computer, ENIAC, was built to handle decimal numbers in its base hardware. It used 10 binary "flip-flops" to hold a single decimal digit -- a very inefficient scheme.)
It turns out that the "binary" concept -- something is either on or off, period -- has some nice properties. Almost a century before Hopper programmed the Binac, a British mathematician named Charles Boole published a system of logic that would later form the foundation of both computer hardware and software. Its basic operations, AND, OR and NOT, could form simple statements with a binary property -- they were either true or false -- and they could be combined and stacked into the most complex of logical constructs.
The AND, OR and NOT operations can be easily implemented in hardware in the form of "gates." A NOT gate (called an inverter), for example, takes as input a 1 (or 0) and produces the opposite output 0 (or 1). Similarly, an OR gate outputs a 1 if either or both of two inputs is 1, and it outputs a 0 if neither input is 1.
Then, multiple gates can be combined in various ways to make arithmetic units that add, subtract, multiply and divide. Combine enough gates, and voila -- you have a computer. Boolean gates were implemented in the earliest computers with electromechanical relays -- switches that were on or off -- and in modern machines with transistors, which are tiny switches that also have a binary, on/off property.
If Boole got the binary ball rolling, Claude Shannon kicked it into the net in his 1937 master's thesis at MIT. "In what has been described as one of the most important master's theses ever written, he showed how Boolean logic, in which problems can be solved by manipulating just two symbols, 1 and 0, could be carried out automatically with electrical switching circuits," said The New York Times in Shannon's 2001 obituary. In 1948, Shannon, who became known as the father of information theory, showed that all information could be represented by zeroes and ones, a startlingly innovative concept at the time.
Yea, nay or ...
It might seem that nothing is more immutable in digital electronics than the binary device, but thanks to the emerging science of "spintronics", the humble electron may one day be able to express those shades of gray. That's because electrons not only flow -- they are either present or absent at a given point -- they also spin and point like tiny bar magnets.
David Awschalom, a physics professor and spintronics researcher at the University of California, Santa Barbara, says, "In contrast to zeroes and ones, with spintronics, we might go to a system with an arbitrarily large number of states. The electron is either off or it's present with the spin pointing in one of many different directions. Each direction is a 'bit,' so that you would increase the density of information by many orders of magnitude."