Understanding why Decimal isn’t any cooler than Binary, Octal, etc

We all live in a world of ten.

Ten.

Because we evolved into creatures with ten fingers and toes.

So, we built a numbering system (quite naturally) based on how many things we could count using the digits we could see in front of our face. Even the word ‘five’ has it’s roots in the word ‘fist’.

But does this:

00000
00000

really represent the number ten?

Does it? Well, for us sure. But why? And, does it have to?

Why can’t this be ten:

0000
0000

Well, that’s the trick see.
We have been on a decimal (ten) base numbering system ever since we were kids and learned to count. So we have trouble thinking that other systems are just as valid. For a long time I felt that a creature that used another numbering system must feel a strange nagging sensation that there was something strange about how his numbers never really came up to nice round numbers like us lucky humans.

Let’s think about some aliens for a sec (which I always think is fun). Imagine that some alien civilization evolved with eight fingers. Imagine what sort of conversation you might have with one of them if you met up in some celestial bar while changing flights between Alpha Centuri and Wolf 359 for your vacation. And say your discussion turned to the number ten. Maybe because you’re doing shots and talking about who can put down more Romulan Ale. This might be tricky for you because to you this:

00000
00000

would be ten shots for you and this:

0000
0000

Would be ten shots for your new-found friend. Why?

Well, let’s think about the number ten for a second. We think of ten as a nice round number because, well, it’s the combination of the digits 1 and 0 (and it is the number of fingers most of us have – making it our roll-over number). And naturally we would have a tendency to think of anything that doesn’t look like this:

00000
00000

to be something other than ten. And if you’re the surly sort you might even get into a heated exchange with your octal-ten-base-shot-shooting companion. The reality is that you are both right, they are both ten, he just has a different placeholder for that particular number.

You see, to him – the numbers 8 and 9 don’t even exist. But wait, you’re probably thinking I mean the numbers 9 and ten don’t exist. That for him to count your shots he would say 1,2,3,4,5,6,7,8,10,11 – right? Well, you see, that’s where a lot of the confusion comes from. For him, the counting would actually go like this:

1,2,3,4,5,6,7,10,11,12 – like you he rolls over to 10 on his last finger.

So he figures you’re doing 12 shots whereas he is doing 10. To you, this lightweight is cheating and only doing 8 shots while you’re putting down ten. So again, to him… the numbers eight and nine have no meaning to him. A “round” number to him is still ten, and 100, and 1,000. Just like you. He just have different placeholders. So if you looked at his numbering system it would look like this:

1,2,3,4,5,6,7,10
11,12,13,14,15,16,17,20
21,22,23,24,25,26,27,30
31,32,33,34,35,36,37,40
41,42,43,44,45,46,47,50
and so on until:
91,92,93,94,95,96,97,100

So if he grew up in a world where everyone had eight fingers, this would feel completely natural – as natural to him as you feel about your round numbers. And all you have to do is some simple conversions to keep the conflict to a minimum. Either you do 8 shots at a time or he does 12. Or you could just order a nice Makers, neat – or a Glenlivet – single malt is always going to be 1 malt no matter what numbering system you use.

But what if there’s a fish sitting beside you guys. Apart from the seriously challenging prospect of actually DRINKING against a FISH, there’s going to be some challenges there as well number-wise. Fish obviously don’t have any fingers so (in case you weren’t aware of this little known fact) fish count with their fins. This might sound a little weird but again – not weird to them. They find it perfectly natural. This is binary – and in reality it is the simplest numbering system around (you can’t have any less than two digits and make anything happen). Any REAL communication we might ever have with true aliens will be likely to start with the universal language of math – and it will likely be a binary communication system until more complex systems can be established.

So we start with 1. And that’s where we roll, direct to 10. So for him:
1,10,11,100

Though while binary is simple, as you can see – it gets pretty long pretty fast. It’s wicked easy to add though. But to continue:
1,10,11,100,101,110,111,1000,1001,1010

So as a boost to your morale, in his numbering system you are doing one thousand and ten shots. Might seem strange to you but again… this is just a placeholder for the same thing:

You:
00000
00000

Octo-boy:
0000
0000

Fish:
00

As it counts, notice that each time it is simply one and then ten. One and then ten. Your octopus fingered friend is 7 and rolls to ten. You are 9 and roll to ten. He just rolls to ten after using up one.

Where this gets a bit more challenging is trying to decide how many shots to order if the bartender is a fish. You know you want 10 shots but if you order that and only get 2 you’re going to be disappointed. But I will cover conversions in another post – once you have the basics I can teach you some pretty simple (and easy to remember tricks) to converting between the various numbering systems.

But for now it doesn’t matter because the bartender is a fish – and as everyone knows fish are notoriously bad at serving drinks so you would not likely get what you ordered anyway.

What does matter is why I picked octo-boy and a fish as your drinking companions.

Computers operate from a basic technology based on, and evolved substantially from, old-style relays (little electromagnet switches). Switches are either on or off. String a few relays together and you can build the basic functionality of what a transistor does – and if you string a few million transistors together you’ll have a processor, the brain of a computer. String the relays together a little differently and you get what’s called a flip/flop, which became the basic building blocks for how memory (RAM) works… But everything breaks down to tiny little switches turning on and off as electricity (which is either on or off) flows through them. This is why computers are said to speak binary. Because their entire make-up breaks down to a series of mechanisms that are either on or off and any given time (represented by us as 1, on, or 0, off).

So how do you communicate with a device that only knows how to count in 1’s and 0’s (on’s and off’s)?

Just create a map between our language (letters) and something that fits into its capabilities. In order to do that you have to take a look at our language, and put yourself in the minds of the people building the first computers. They didn’t have millions of tiny transistors that could fit on your fingernail – they had relays, logic gates, vacuum tubes and the like. They had limited resources and therefore needed to find ways to do things without adding complexity.

Thus, the question. What is the least complicated way to build a map between our language and the language of a fish (binary)?

The answer is take every character you need (numbers, letters, punctuation, etc.) and map them to numbers in binary, which as you saw grow in length pretty fast. The longer the number, the more switches you need in order to process all the on’s and off’s.
So how many do you need? Well, first – let’s explore what options we have.
One binary digit gives you two possibilities (0 & 1) which I suppose you could match to A & B or 1 & 2. Two binary characters (as you saw before) have four possible combinations (00,01,10,11). You could match this to A,B,C, & D or 1,2,3, & 4. This is obviously not enough to get very far so let’s take a deeper look at what combinations we have available. The column on the left is how many binary digits we’ll use and the column on the right is how many combinations you can get from them:

1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1,024

If you have been working with computers for any length of time these numbers may look familiar to you. Memory, hard drive sizes, color depth on monitors and video cards, speeds, etc. If you’ve been working with computers for a really long time like I have the number 256 is probably the one you’ve seen the most. This is no coincidence. And it turns out – that is the answer (bet you already guessed because octo-boy sort of gave it away). With 8 binary digits (bits) you get 256 combinations. With 256 combinations you can map enough characters to our language to be able to do something useful with a bunch of little tiny switches. Including case, punctuation, numbers, etc. Here is a sample of what it looks like:

01100001 a
01100010 b
01100011 c
01100100 d
01100101 e
01100110 f
01100111 g
01101000 h
01101001 i
01101010 j

This is an actual example of mapping from binary to our language. This may be something of a simplification, we didn’t cover HEX (hexadecimal) machine language or the like. But basically what you have is eight bits, which is what a byte is. A byte of EIGHT bits is simply what we picked to use to represent our language because the people building computers back in the day had limited resources. The needed a way to build the bridge as simply as possible. It would have been human nature to go ahead and build a ten bit byte – giving you 1,024 different slots to fill up with human numbers, letters, and symbols.

But at the time that was just unnecessary in their minds. They knew that there was no reason to go with ten just because we have ten fingers. They understood that an eight base was just as valid as a ten base system.

Leave a Reply