The earliest signs of counting have been found in ancient hunting artifacts. Notches in animal bones from 30,000 B.C. may have been a tallying system. Tallies were used to keep track of things. A sheepherder would put a pebble in a pile each time a sheep was let out to graze. When the sheep returned at night, the owner would remove the pebble. Any pebbles that remained represented missing sheep. But such tallying was not true counting. It merely compared two sets of objects.
Egypt was one of the first civilizations to adopt a real number system. Beginning in about 3000 B.C., Egyptians expressed numbers with pictographs, or symbols to represent numbers. Thus, the numbers from one to nine were combinations of vertical strokes. Ten was an inverted U, 100 was a coiled rope, and 1000 was a lotus flower.
Different cultures used different base numbers for their counting systems. Many, such as the Egyptians, used a base 10, a reflection of the numbers of fingers on both hands. Others, like the Babylonians, used a base 60. But that system was awkward because it required either separate symbols for each number up to 60 or clusters of 10 numbers. But the base of 60 survives today in geometry (60 seconds and minutes of angular measurement, 360 degrees in a circle, and 180 degrees in a rectangle) and in time-keeping (60 seconds in a minute and 60 minutes in an hour).
The first great advance in numbering was the place-value concept. Invented by the Babylonians, place values were needed to show the value of each digit in a numeric notation. For example, without place values,the number 236 was complicated to write in most systems, as it required multiple symbols and strokes. But with a value assigned to each place (In a system based on 10), we know that the digit 6 represents 6 ones, the digit 3 represents 3 tens, and the digit 2 represents 2 hundreds.
For place value to accurately reflect a number, a "zero" was needed to eliminate any confusion over, for example, whether the digits 236 were intended to represent 236 or 2360 or 2036 or 2306. The zero or "empty" place value was originally indicated by leaving a gap between numbers, as in 23_6 to mean 2306. Eventually, a special symbol was designed to show zero, the "O" digit that we use today. That symbol was invented for the Arabic counting system and was in common use by about 650 A.D.
For zero and place values to be useful in mathematics, it was necessary to invent a symbol for each number up to the base figure. Thus, different symbols for one through nine were adopted, with the zero added after each symbol to reflect another 10 (10, 20, 30, 40, and so on). And multiple zeros were added to represent even larger numbers (100, 1000, and 10,000).
Arabic numerals ultimately replaced the Roman numerals that had dominated Western European history until the seventeenth century. Those are the numerals used in most of the world today. Early forms of Arabic numbers appeared in India by 200 B.C. Indian mathematicians found that a place-value system that included a symbol for zero allowed them to perform mathematical operations by writing down and manipulating numerals. That was faster than the abacus, a mechanical device that had been the principal means of counting. Using writter numerals to calculate did not become known outside India until the ninth century, when an Arab mathematician, Al-Khwarizmi, wrote a treatise about numbers. But his work was not translated into Latin until the twelfth century and thus did not become known in Europe until then. An Italian, Leonardo Fibonacci, popularized the Arabic numbering system ( called "algorism") by writing books about it that were read by bookkeepers and merchants. They started to use the system in their commercial transactions.
For a few hundred years after Fibonacci,scholars and merchants debated the merits of algorism versus the abacus. With the invention of printing, books about algorism became widely known, leading to its becoming the accepted method from about 1500 and after. By about 16OO, Roman numerals had been supplanted by Arabic numerals for performing most computations.