Chapter 1 · From tally marks to zero and binary
Numbers and place value
Scratches that count
Picture a piece of bone in your hand, scratched with neat rows of short lines. The Ishango bone, found in 1950 in what is now the Democratic Republic of the Congo, is about 20 000 years old. Its notches come in groups, and many scholars think they were a way of counting or keeping a record, though nobody can be sure what the marks meant. The idea is simple: one mark for each thing. That is a tally. Five goats make five strokes, and twelve goats make two fives and two more. A tally is honest, but it grows very long very fast. Imagine writing 2 026 marks.
Adding up symbols
Next came signs for bigger groups. Egyptian writing from about 3000 BC used a stroke for 1, a heel-bone sign for 10 and a coil of rope for 100. The number 241 was two coils, four heels and one stroke: 100 + 100 + 10 + 10 + 10 + 10 + 1. Roman numerals follow the same plan with I = 1, V = 5, X = 10, L = 50, C = 100, D = 500 and M = 1000. So MMXXVI is 1000 + 1000 + 10 + 10 + 5 + 1 = 2026. A small sign before a bigger one is taken away: IV is 5 − 1 = 4. Adding is easy, but multiplying MMXXVI by XIV is a headache.
Where a digit stands
Here is the big idea of our writing: the place of a digit decides its worth. In 3 333 the digit 3 appears four times, yet it stands for 3000, 300, 30 and 3. Each step to the left makes the worth ten times bigger, which is why we call it base ten. Think of a car's odometer. When 0999 rolls on, the last wheel passes 9, drops to 0 and nudges its neighbour, which nudges the next one, until 1000 appears. Watch the wheels turn in the drawing. In symbols, 2026 = 2 × 1000 + 0 × 100 + 2 × 10 + 6 × 1.
Try the columns yourself
Now open the sandbox under the picture. Slide the number anywhere from 0 to 9999 and watch the columns light up. Each column belongs to a power of ten: ones, tens, hundreds, thousands. Choose 4 071. The thousands column holds 4, the hundreds column holds 0, the tens column holds 7 and the ones column holds 1, so the 7 is worth 70, not 7. That empty hundreds column matters. Without a sign for 'nothing here', 4 071 would shrink to 471. This is the first job of zero: to keep the other digits in their proper places.
Zero becomes a number
Babylonian scribes used a mark for an empty place, but treating zero as a number you can calculate with came later. In AD 628 the Indian mathematician Brahmagupta wrote down rules for it: a number plus zero stays the same, a number minus itself is zero, and a number times zero is zero. Dividing by zero he could not tame, and in modern maths it is simply not allowed. The Hindu-Arabic numerals 0 to 9 travelled west through Arab scholars. In 1202 Leonardo of Pisa, called Fibonacci, explained them in his Liber Abaci, and slowly European traders gave up Roman numerals for sums.
Binary: only two digits
Ten is not sacred. Any number can be the base. A computer's switch is either off or on, so computers count in base two, binary, using only the digits 0 and 1. The columns are now worth 1, 2, 4, 8, 16 and so on, doubling at each step. Take 1101. It means 1 × 8 + 1 × 4 + 0 × 2 + 1 × 1 = 13. Eight such switches, called bits, make a byte, which holds 2⁸ = 256 different values, from 0 to 255. Base sixteen is a handy shorthand: its digits run 0 to 9 and then A to F, where F means 15. Set the base selector in the sandbox to 2 and check 13.
Sixty in Babylon
The Babylonians, around 2000 BC, wrote numbers in base sixty. Sixty divides neatly by 2, 3, 4, 5, 6, 10, 12, 15, 20 and 30, so halves, thirds and quarters came out whole. We still carry their habit: an hour has 60 minutes and a minute has 60 seconds. Take 3725 seconds. Divide by 3600 to get 1 hour, with 125 seconds left, which is 2 minutes and 5 seconds. So 3725 s is 1 h 2 min 5 s, written 1 : 2 : 5 in base sixty. The 360 degrees of a circle are probably linked to the same habit, although historians are not certain.
In numbers
- ≈ 20 000
- years: the age of the notched Ishango bone
- AD 628
- Brahmagupta writes the rules for zero
- 1101₂ = 13
- binary: 8 + 4 + 0 + 1