Back in the Sixties, DEC invented the minicomputer as a challenger to the massive and expensive mainframes pioneered by IBM. (The age of minicomputers is long past, and DEC itself is history.) To ensure that no software could possibly be moved from an IBM mainframe to a DEC minicomputer, DEC designed its machines to understand only numbers expressed in base 8.
Let's think about that for a moment, given our experience with the Martians. In base 8, there must be eight digits. DEC was considerate enough not to invent its own digit symbols, so what it used were the traditional Earthly digits from 0 to 7. There is no digit 8 in base 8! That always takes a little getting used to, but it's part of the definition of a number base. DEC gave a name to its base 8 system: octal.
A columnar number in octal follows the rule we encountered in thinking about the Martian system: each column has a value base times that of the column to its right. (The rightmost column is units.) In the case of octal, each column has a value eight times that of the next column to the right.
Who Stole Eight and Nine?
This shows better than it tells. Counting in octal starts out in a very familiar fashion: 1, 2, 3, 4, 5, 6, 7 … 10.
This is where the trouble starts. In octal, 10 comes after seven. What happened to eight and nine? Did the Grinch steal them? (Or the Martians?) Hardly. They're still there—but they have different names. In octal, when you say "10" you mean "8." Worse, when you say "11" you mean "9."
Unfortunately, what DEC did not do was invent clever names for the column values. The first column is, of course, the units column. The next column to the left of the units column is the tens column, just as it is in our own decimal system—but there's the rub, and the reason I dragged Mars into this: Octal's "tens" column actually has a value of 8. * A counting table will help. Table 2-3 counts up to 30 octal, which has a value of 24 decimal. I dislike the use of the terms eleven, twelve, and so on in bases other than 10, but the convention in octal has always been to pronounce the numbers as we would in decimal, only with the word octal after them. Don't forget to say octal—otherwise, people get really confused! Table 2-3: Counting in Octal, Base 8 | | Assembly Language Step-by-Step: Programming with Linux, Third Edition | By Jeff Duntemann, Copyright Jeff Duntemann © 2009, Publisher: John Wiley & Sons (US) | | OCTAL NUMERALS | OCTAL PRONUNCIATION | DECIMAL EQUIVALENT | 0 | Zero | 0 | 1 | One | 1 | 2 | Two | 2 | 3 | Three | 3 | 4 | Four | 4 | 5 | Five | 5 | 6 | Six | 6 | 7 | Seven | 7 | 10 | Ten | 8 | 11 | Eleven | 9 | 12 | Twelve | 10 | 13 | Thirteen | 11 | 14 | Fourteen | 12 | 15 | Fifteen | 13 | 16 | Sixteen | 14 | 17 | Seventeen | 15 | 20 | Twenty | 16 | 21 | Twenty-one | 17 | 22 | Twenty-two | 18 | 23 | Twenty-three | 19 | 24 | Twenty-four | 20 | 25 | Twenty-five | 21 | 26 | Twenty-six | 22 | 27 | Twenty-seven | 23 | 30 | Thirty | 24 | Table 2-3: Counting in Octal, Base 8
Open table as spreadsheet | OCTAL NUMERALS | OCTAL PRONUNCIATION | DECIMAL EQUIVALENT | 0 | Zero | 0 | 1 | One | 1 | 2 | Two | 2 | 3 | Three | 3 | 4 | Four | 4 | 5 | Five | 5 | 6 | Six | 6 | 7 | Seven | 7 | 10 | Ten | 8 | 11 | Eleven | 9 | 12 | Twelve | 10 | 13 | Thirteen | 11 | 14 | Fourteen | 12 | 15 | Fifteen | 13 | 16 | Sixteen | 14 | 17 | Seventeen | 15 | 20 | Twenty | 16 | 21 | Twenty-one | 17 | 22 | Twenty-two | 18 | 23 | Twenty-three | 19 | 24 | Twenty-four | 20 | 25 | Twenty-five | 21 | 26 | Twenty-six | 22 | 27 | Twenty-seven | 23 | 30 | Thirty | 24 | * Remember, each column in a given number base has a value base times the column to its right, so the "tens" column in octal is actually the eights column. (They call it the tens column because it is written 10, and pronounced "ten.") * Similarly, the column to the