Base 10, Base 2, and the Birth of Binary Programming
John Vincent Atanosoff was born at a very young age on the fourth of October, 1903. His potential was seen quite early. At the age of 9, Atanosoff’s father brought home a Dietzel slide rule, one of the then-current instruments of calculation, and it was this device that planted the seed of computation within the young boy’s head. His mother, a mathematics instructor, quite happily introduced her young son to the world of mathematics, teaching him about the various logarithmic functions of the slide rule, and progressing, unexpectedly, into the more advanced world of trigonometry. One can only imagine her surprise when the young child requested her help again with the textbook, A College Algebra, a book which he soon mastered approximately a decade before his peers had even begun to broach the subject. It was in this book that he was first introduced to the idea of Base Numbers, and to the idea that Base 10, the decimal system used by the entire world, is not the only means by which to recognize a number. It was this discovery that would lead him to making the greatest leap forward in electronic computing yet seen, and so far unequaled.
Due in large part to the number of digits the average person has on their hands, base 10 is the global standard by which we identify numbers. What base 10 means is that in our number system, there are ten character representing ten individual numbers: 0, 1, 2, 3, 4, 5, 6, 7, 8, and, of course, 9. Any number above that is represented as multiples of these ten numbers: 10^1, 10^2, 10^3, in much the same way that a speedometer in a car, upon reaching the number 9 in one wheel, advances the wheel next to it by 1 and begins counting again at 0. Let’s take, for instance, the number 123: This number, being higher than the ten digits for which we have individual characters, is made up of a combination of our ten digits. In this case, 123 is made up of one set of 10^2 (100), two set of 10^1 (20), and one set of 3. Add them all together and you recognize the number 123.
123
10^2, 10^1, 3
100, 10, 3
(1 x 100) + (2 x 10) + 3 = 123
This is such a simple standard that it is almost deceptive in nature. The key here is to understand the difference between the number 123 and the recognition of the number 123. We can illustrate this by showing a different base. Let us use base 4.
Base 4 means that there are only four characters representing individual numbers: 0, 1, 2, and 3. Using our previous speedometer example, the wheel, instead of reaching to 9 before turning the next wheel, would only go to 3. Numbers higher than these four characters are represented, again, as multiple of these four: 4^1, 4^2, 4^3, etc. How is a number like 123 represented in base 4? It is represented with one set of 4^3, three set of 4^2, two sets of 4^1, and one set of 3.
123
4^3, 4^2, 4^1, 3
64, 16, 4, 3
(1 x 64) + (3 x 16) + (2 x 4) + 3 = 123
So, in effect, while we have the number 123, how it is recognized in base 4 is as 1323, as these are the multiples of base 4 that were required to identify it. It might be easier to think of it as two different languages. In base 10, we say 123. If we wanted to speak in base 4, we would say 1323. The actual amount that is represented by 123 in base 10 and 1323 in base 4 remains the same, but the two different ‘words’ (123 and 1323) change, depending on the language.
If this is difficult to grasp for us humans, just imagine how we could possibly go about asking a computer to work with these numbers! Atanasoff, knowing that there had to be a way in which computing could be done using the crystalline logic of mathematics rather than the somewhat nebulous calculations humans muddle about with, devoted himself to finding a way to tell a computer exactly how it was supposed to carry out simple arithmetic functions. Working himself hard and not achieving a great deal for an extended period, he finally decided to cleanse his mind with a quick jaunt and perhaps a nightcap. One hundred miles later and three bourbons into the equation scratched into his bar napkin, Atanosoff became another one of the great proofs that, while Necessity may be the mother of Invention, alcohol is the grinning uncle who prods you along to success. What Atanosoff had achieved with the aid of a slightly damp napkin and a few pretzels representing various logarithmic scales, was to come to the conclusion that the answer lay not in getting the computer to understand base 10, but rather in getting the computer to recognize what we base 10 advocates were trying to say. He realized that rather than trying to get the computer to recognize all 10 characters we ten fingered apes insisted on, all he had to do was to get it to recognize two characters, and using those two characters, he could then translate it back into something we could understand. His knowledge of Base Numbers returned in full force, and with that, the birth of Binary Language took place. To this day, all electronic computers are programmed using binary language, base 2, as the foundation. If I may, this is quite possibly the single most understated discovery ever made, or ever likely to be made, in all of human history, and certainly one which will continue to affect our development as a civilization for millennia to come. That it is all but forgotten mere decades after its occurrence is almost criminal in nature.
Base 2, appropriately enough, has two characters: 0, 1. Numbers higher than this are expressed as multiples of the base: 21, 22, 23, etc. Thus, in base 2, the number 123 is represented as one set of 2^6, one set of 2^5, one set of 2^4, one set of 2^3, zero sets of 2^2, one set 2^1, and 1
123
2^6, 2^5, 2^4, 2^3, 2^2, 2^1, 1
64, 32, 16, 8, 4, 2, 1
(1 x 64) + (1 x 32) + (1 x 16) + (1 x 8) + (0 x 4) + (1 x 2) + 1 = 123
So, while in base 10 we say “123”, in base 2, we say “1111011”.
For the sake of clarity, I will do one more example: 321
321
2^8, 2^7, 2^6, 2^5, 2^4, 2^3, 2^2, 2^1, 1
256, 128, 64, 32, 16, 8, 4, 2, 1
(1 x 256) + (0 x 128) + (1 x 64) + (0 x 32) + (0 x 16) + (0 x 8) + (0 x 4) + (0 x 2) + 1 = 321
Thus, 321 in base 2 is 101000001
With this simple, yet beautifully elegant solution, Atanosoff did away with the multiple gradations that would otherwise have been required for the computer to be able to comprehend numbers in the way that we do, and instead gave the computers a language all their own in which they only had to understand two states, either 1 or 0, on or off, black or white, and from that, derive everything else they needed in order to perform whatever function they needed to. He gave computers the solid foundation of logic for which there are famous, perhaps notorious for, today.