## Why a Base-10 Number System?

Posted on 8th July 2008 by Ryan Somma in Ionian Enchantment

In Olaf Stapledon’s 1935 science fiction novel “Odd John,” an evolutionary leap of a human child wonders why we built our number system on units of ten. After all, the number twelve has six factors, meaning it is divisible by six numbers, {1, 2, 3, 4, 6, 12}, while ten only has four factors, {1, 2, 5, 10}. Wouldn’t a base-12 number system be more practical?

In our decimal (base-10) number system, the number dial flips every ten units. After the number nine, we go back to zero and put a one in front of it in the tenths place (10). When the tenths place reaches nine and the one’s place reaches nine for 99 units, we flip them both to zero and add a one in front of them at the hundredth’s place (100).

Having a duodecimal (base-12) number system would mean flipping back to zero every 12 units. So after “9,” we would have “A” (or some other symbol representing 10), and “B” (or some other symbol for 11). So 8.. 9… A… B… 10, where the “1″ is the twelve’s place (known as the “dozen” place), so a duodecimal “10″ is our decimal 12. Similarly, 12X12, or 124 is represented by “100.” So counting up: B8… B9… BA… BB… 100.

 Duodecimal Multiplication Table Credit: RodrigoSampaioPrimo

Does this seem otherworldly? Then consider this, days and nights are measured in 12-hour blocks, with hours subdivided into 60 minutes and minutes in to 60 seconds, all divisible by 12. We use a duodecimal number system to measure time; although we annotate it in decimal.

In the digital universe that exists inside of our computers, everything must begin with the bit, enough room to store a single unit of data. This means computers must use a base-2 number system, also known as binary. Counting up, after the number one, we flip to zero with a “1″ in the second place (known as the “pair”), so the number 2 is represented by “10,” three by “11,” four by “100,” five by “101,” six by “110″, seven by “111,” and eight by “1000.” Every one or zero in the digital ecosystem taking up one bit of space.

It’s difficult for humans to work with the long strings of ones and zeros in binary number systems, and binary’s powers, {1, 2, 4, 8, 16, 32, 64…} do not divide, and therefore translate, well into our decimal system {1, 2, 5, 10}. For this reason, many computer programmers rely on a hexadecimal (base-16) number system, which counts up as 8… 9… A… B… C… D… E… F… 10. With “10″ representing decimal’s 16.

This way, a single hexadecimal symbol can represent up to four binary symbols. Hexadecimal’s “F” represents decimal’s 15 and binary’s “1111.” The World Wide Web uses hexadecimal triplets to define Red, Green, and Blue (R,G,B) values for colors on web pages. For example (0,0,0) or “#000000″ translates to zero Red, zero Green, zero Blue, which is black, and (FF,FF,FF) or “#FFFFFF” translates to 256 Red, 256 Green, and 256 Blue, which is white. “#00FF00″ is Green, and “#008800″ is light green. Setting any of these values between zero and FF will give you 24-bit color, nearly all of the colors in the visible spectrum.

So we’ve played with powers of one, powers of 10, powers of 12, and powers of 16, but there are many more. There is quinary (base-5) and vigesimal (base-20). The ancient Sumerians used a sexagesimal (base-60) number system, which was adopted by the Babylonians. If this sounds extremely out there, consider that we still have the remnant’s of this system in our modern measurements of time (60 minutes, 60 seconds), angles and geographic coordinates (360 degrees).

With so many options available to us, why do we use a decimal number system?

Because it’s the number of fingers we have on our hands!

• Computer Scientist Guy Steele, Jr. makes an interesting argument for a base-8 number system because 8 is a power of two, which makes it more compatible with binary:
• If I could change one thing—this is going to sound stupid—but if I could go back in time and change one thing, I might try to interest some early preliterate people in not ! using their thumbs when they count It could have been the Standard, and it would have made a whole lot of things easier in the modem era. On the other hand, we have learned a lot from the struggle with the incompatibility of base-ten with powers of two.

• Howtoons has a great comic poster on how to count in base-2 on your hands.

1. I was gonna say! :) This stuff always fascinated me as a kid. I hope you’ve heard the song “Little Twelvetoes” from Schoolhouse Rock (though the updated cover version on the “Schoolhouse Rock Rocks!” tribute album is better).

Comment by ClintJCL — July 8, 2008 @ 5:58 pm

2. And.. I use to write base 60 numbers for fun.

Comment by ClintJCL — July 8, 2008 @ 5:59 pm

3. Thanks for the Schoolhouse Rock Tip! I’m gonna run that for tomorrow’s links. I’d never seen/heard it before. Very cool!

Comment by ideonexus — July 8, 2008 @ 9:29 pm

4. Ryan,

Is this an error? “Similarly, 12X12, or 124 is represented by “100.”” Shouldn’t that be 144 = 100?

-BMF

Comment by BMF — July 9, 2008 @ 8:29 am

Comment by Matt — July 19, 2008 @ 2:21 am

6. But why do we have the teens?

Why can’t we have
tenty
tenty-one
tenty-two

tenty-nine
twenty

Comment by Me — October 2, 2008 @ 1:49 pm

7. Other cultures such as Japanese do have the ten one making 11 For example Ju is the word for 10 and ichi is one so 11 is ju-ichi
If we want twenty one it would be ni-ju-ichi which is two-ten-one or think of it as 2 tens and one

It makes it so much easier to count.

Comment by Tira — January 23, 2009 @ 4:22 pm

8. Very neat! Actually, one of the conceptual problems we have in programming is whether to start counting at 0 or 1 for arrays and lists (in programming, you start counting at 0, but in real life we start with 1, so programming errors translating between the computer and the human using it are common). This cultural difference you’ve pointed out is very interesting!

Comment by ideonexus — January 24, 2009 @ 12:36 pm

9. That why I was taught to never use 0 (when possible), and to save it as a swap space should you need to swap the values between array[5] and array[8] for example:

\$array[0] = \$array[5]
\$array[5] = \$array[8]
\$array[8] = \$array[0]

Comment by ClintJCL — January 24, 2009 @ 2:01 pm

10. That’s a good idea, and useful if your programs will only ever be by maintained by you. However, the moment you start collaborating with others, or the code may in the future be maintained by somebody else, it’s best to stick with the standard.

Comment by chriggy — January 24, 2009 @ 3:20 pm

11. Chriggy:
Which is? :)

Comment by ClintJCL — January 24, 2009 @ 5:27 pm

12. Depends on the language/tool. Each has their own convention.

But it’s especially important in languages like c/c++(the convention is that arrays start at 0), that don’t do things like checking for the bounds of an array. Unlike in a alot if languages that have some sort of protection, in C/C++, going past the end of an array is most likely going to cause a nasty and difficult to track down crash.

Of course, having well documented code helps, but …

Comment by chriggy — January 24, 2009 @ 7:29 pm

13. I think Onety sounds better for 10 because it is saying that it is 1 in front of 0. It is just like saying Twenty is 2 in front of 0, Thirty is 3 in front of 0, Fourty (Forty) is 4 in front of 0, Fifty is 5 in front of 0, Sixty is 6 in front of 0, Seventy is 7 in front of 0, Eighty is 8 in front of 0, and Ninety is 9 in front of 0. But then I would say that Tenty is 10 in front of 0 (100), Eleventy is 11 in front of 0 (110), and Twelvety is 12 in front of 0 (120). Note: The suffix -ty is meaning 0 behind another number. The suffix -teen was usually meaning 1 in front of 3-9 for Thirteen to Nineteen. Thanks!

Comment by Craig Lungren — January 30, 2009 @ 3:46 pm

14. I thought of funny names like Zeroty (00),
Zeroty-One (01), Zeroty-Two (02), Zeroty-Three (03), Zeroty-Four (04), Zeroty-Five (05), Zeroty-Six (06),
Zeroty-Seven (07), Zeroty-Eight (08), and
Zeroty-Nine (09). I also began to think of
Zero Hundred (000), Zero Thousand (0,000),
Zeroty Thousand (00,000), Zero Hundred Thousand (000,000)…and so on. The Bonus names for the hundreds ending in 2 Zeros are: Zero Hundred Zero (000), One Hundred Zero (100), Two Hundred Zero (200), Three Hundred Zero (300), Four Hundred Zero (400), Five Hundred Zero (500), Six Hundred Zero (600), Seven Hundred Zero (700), Eight Hundred Zero (800), Nine Hundred Zero (900), Ten Hundred Zero/
One Thousand Zero (1000/1,000)…and so on. Just remember this whole thing is my own Numeral System Version of Counting, Dividing/Subtracting, Adding/Multiplying, Writing and Spelling in my own way. So don’t tell me that they are NOT real numbers.

Comment by Craig Lungren — January 30, 2009 @ 4:37 pm

15. [...] This is like waking up one morning and noticing there’s another room in your house that you just didn’t know was there before. This functionality is fairly frakin’ sweet. It’s got Hexadecimal, Octal, and Binary modes, Logarithms and Boolean Algebra functions. All sorts of stuff I’ll have very little use for, except for fun and games, but this could have enhanced some of my previous blog posts, like Why Base-10? [...]

Pingback by Windows Calculator, Say What? | ideonexus.com — February 19, 2009 @ 11:47 pm

16. I think that since the U.S. is never ever ever going to go metric, we should just go the whole 9 yards and push for a whole new number system of base twelve. Math would be sooo much easier. Niether 1/2, 1/3, or 1/4 would be repeating duodecimals and multiplication/division would have so many more recognizable patters… sigh. I kind of hate convention when the only reason for it is tradition and laziness.

Comment by John M — September 24, 2009 @ 10:04 pm

17. I have a school project about numbers. I thought this site would give me long explanation why we have base 10 system. Instead, this explained more than I need…
Thanks… :)

Comment by Echka — February 22, 2011 @ 9:57 am

18. [...] in everything we apply them too? i would say it is something we invented its a base 10 system Why a Base-10 Number System? this is an interesting read Reply With Quote   + Reply to [...]

Pingback by Every Number is Infinite. — July 30, 2011 @ 3:11 pm

19. Fantastic post. Just a quick correction: “#008800? is a DARK green. (At least darker than “#00FF00? Green). Still, thanks for the fascinating post.

Comment by Gerson Goulart — April 13, 2012 @ 1:16 pm

20. It’s not my first time to go to see this website, i am browsing this web site dailly and obtain fastidious facts from here every day.

Comment by binary code converter — April 6, 2013 @ 2:24 pm