Numeral system



A numeral system is a writing system for expressing numbers; that is, a mathematical notation for representing numbers of a given set, using digits or other symbols in a consistent manner.

The same sequence of symbols may represent different numbers in different numeral systems. For example, "11" represents the number eleven in the decimal numeral system (today, the most common system globally), the number three in the binary numeral system (used in modern computers), and the number two in the unary numeral system (used in tallying scores).

The number the numeral represents is called its value. Not all number systems can represent the same set of numbers; for example, Roman numerals cannot represent the number zero.

Ideally, a numeral system will:
 * Represent a useful set of numbers (e.g. all integers, or rational numbers)
 * Give every number represented a unique representation (or at least a standard representation)
 * Reflect the algebraic and arithmetic structure of the numbers.

For example, the usual decimal representation gives every nonzero natural number a unique representation as a finite sequence of digits, beginning with a non-zero digit.

Numeral systems are sometimes called number systems, but that name is ambiguous, as it could refer to different systems of numbers, such as the system of real numbers, the system of complex numbers, the system of p-adic numbers, etc. Such systems are, however, not the topic of this article.

Main numeral systems
The most commonly used system of numerals is decimal. Indian mathematicians are credited with developing the integer version, the Hindu–Arabic numeral system. Aryabhata of Kusumapura developed the place-value notation in the 5th century and a century later Brahmagupta introduced the symbol for zero. The system slowly spread to other surrounding regions like Arabia due to their commercial and military activities with India. Middle-Eastern mathematicians extended the system to include negative powers of 10 (fractions), as recorded in a treatise by Syrian mathematician Abu'l-Hasan al-Uqlidisi in 952–953, and the decimal point notation was introduced by Sind ibn Ali, who also wrote the earliest treatise on Arabic numerals. The Hindu–Arabic numeral system then spread to Europe due to merchants trading, and the digits used in Europe are called Arabic numerals, as they learned them from the Arabs.

The simplest numeral system is the unary numeral system, in which every natural number is represented by a corresponding number of symbols. If the symbol / is chosen, for example, then the number seven would be represented by ///////. Tally marks represent one such system still in common use. The unary system is only useful for small numbers, although it plays an important role in theoretical computer science. Elias gamma coding, which is commonly used in data compression, expresses arbitrary-sized numbers by using unary to indicate the length of a binary numeral.

The unary notation can be abbreviated by introducing different symbols for certain new values. Very commonly, these values are powers of 10; so for instance, if / stands for one, − for ten and + for 100, then the number 304 can be compactly represented as +++ //// and the number 123 as + − − /// without any need for zero. This is called sign-value notation. The ancient Egyptian numeral system was of this type, and the Roman numeral system was a modification of this idea.

More useful still are systems which employ special abbreviations for repetitions of symbols; for example, using the first nine letters of the alphabet for these abbreviations, with A standing for "one occurrence", B "two occurrences", and so on, one could then write C+ D/ for the number 304. This system is used when writing Chinese numerals and other East Asian numerals based on Chinese. The number system of the English language is of this type ("three hundred [and] four"), as are those of other spoken languages, regardless of what written systems they have adopted. However, many languages use mixtures of bases, and other features, for instance 79 in French is soixante dix-neuf (60 + 10 + 9) and in Welsh is pedwar ar bymtheg a thrigain (4 + (5 + 10) + (3 × 20)) or (somewhat archaic) pedwar ugain namyn un (4 × 20 − 1). In English, one could say "four score less one", as in the famous Gettysburg Address representing "87 years ago" as "four score and seven years ago".

More elegant is a positional system, also known as place-value notation. Again working in base 10, ten different digits 0, ..., 9 are used and the position of a digit is used to signify the power of ten that the digit is to be multiplied with, as in or more precisely 3×102 + 0×101 + 4×100. Zero, which is not needed in the other systems, is of crucial importance here, in order to be able to "skip" a power. The Hindu–Arabic numeral system, which originated in India and is now used throughout the world, is a positional base 10 system.

Arithmetic is much easier in positional systems than in the earlier additive ones; furthermore, additive systems need a large number of different symbols for the different powers of 10; a positional system needs only ten different symbols (assuming that it uses base 10).

The positional decimal system is presently universally used in human writing. The base 1000 is also used (albeit not universally), by grouping the digits and considering a sequence of three decimal digits as a single digit. This is the meaning of the common notation 1,000,234,567 used for very large numbers.

In computers, the main numeral systems are based on the positional system in base 2 (binary numeral system), with two binary digits, 0 and 1. Positional systems obtained by grouping binary digits by three (octal numeral system) or four (hexadecimal numeral system) are commonly used. For very large integers, bases 232 or 264 (grouping binary digits by 32 or 64, the length of the machine word) are used, as, for example, in GMP.

In certain biological systems, the unary coding system is employed. Unary numerals used in the neural circuits responsible for birdsong production. The nucleus in the brain of the songbirds that plays a part in both the learning and the production of bird song is the HVC (high vocal center). The command signals for different notes in the birdsong emanate from different points in the HVC. This coding works as space coding which is an efficient strategy for biological circuits due to its inherent simplicity and robustness.

The numerals used when writing numbers with digits or symbols can be divided into two types that might be called the arithmetic numerals (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) and the geometric numerals (1, 10, 100, 1000, 10000 ...), respectively. The sign-value systems use only the geometric numerals and the positional systems use only the arithmetic numerals. A sign-value system does not need arithmetic numerals because they are made by repetition (except for the Ionic system), and a positional system does not need geometric numerals because they are made by position. However, the spoken language uses both arithmetic and geometric numerals.

In some areas of computer science, a modified base k positional system is used, called bijective numeration, with digits 1, 2, ..., k (k ≥ 1), and zero being represented by an empty string. This establishes a bijection between the set of all such digit-strings and the set of non-negative integers, avoiding the non-uniqueness caused by leading zeros. Bijective base-k numeration is also called k-adic notation, not to be confused with p-adic numbers. Bijective base 1 is the same as unary.

Positional systems in detail
In a positional base b numeral system (with b a natural number greater than 1 known as the radix), b basic symbols (or digits) corresponding to the first b natural numbers including zero are used. To generate the rest of the numerals, the position of the symbol in the figure is used. The symbol in the last position has its own value, and as it moves to the left its value is multiplied by b.

For example, in the decimal system (base 10), the numeral 4327 means $(4×10^{3}) + (3×10^{2}) + (2×10^{1}) + (7×10^{0})$, noting that $10^{0} = 1$.

In general, if b is the base, one writes a number in the numeral system of base b by expressing it in the form $a_{n}b^{n} + a_{n − 1}b^{n − 1} + a_{n − 2}b^{n − 2} + ... + a_{0}b^{0}$ and writing the enumerated digits $a_{n}a_{n − 1}a_{n − 2} ... a_{0}$ in descending order. The digits are natural numbers between 0 and $b − 1$, inclusive.

If a text (such as this one) discusses multiple bases, and if ambiguity exists, the base (itself represented in base 10) is added in subscript to the right of the number, like this: numberbase. Unless specified by context, numbers without subscript are considered to be decimal.

By using a dot to divide the digits into two groups, one can also write fractions in the positional system. For example, the base 2 numeral 10.11 denotes $1×2^{1} + 0×2^{0} + 1×2^{−1} + 1×2^{−2} = 2.75$.

In general, numbers in the base b system are of the form:



(a_na_{n-1}\cdots a_1a_0.c_1 c_2 c_3\cdots)_b = \sum_{k=0}^n a_kb^k + \sum_{k=1}^\infty c_kb^{-k}. $$

The numbers bk and b−k are the weights of the corresponding digits. The position k is the logarithm of the corresponding weight w, that is $$k = \log_b w = \log_b b^k$$. The highest used position is close to the order of magnitude of the number.

The number of tally marks required in the unary numeral system for describing the weight would have been w. In the positional system, the number of digits required to describe it is only $$k + 1 = \log_{b} w + 1$$, for k ≥ 0. For example, to describe the weight 1000 then four digits are needed because $$\log_{10} 1000 + 1 = 3 + 1$$. The number of digits required to describe the position is $$\log_b k + 1 = \log_b \log_b w + 1$$ (in positions 1, 10, 100,... only for simplicity in the decimal example).


 * $$\begin{array}{l|rrrrrrr}

\text{Position} & 3 & 2 & 1 & 0 & -1 & -2 & \cdots \\ \hline \text{Weight} & b^3 & b^2 & b^1 & b^0 & b^{-1} & b^{-2} & \cdots \\ \text{Digit} & a_3 & a_2 & a_1 & a_0 & c_1 & c_2 & \cdots \\ \hline \text{Decimal example weight} & 1000 & 100 & 10 & 1 & 0.1 & 0.01 & \cdots \\ \text{Decimal example digit} & 4 & 3 & 2 & 7 & 0 & 0 & \cdots \end{array} $$

A number has a terminating or repeating expansion if and only if it is rational; this does not depend on the base. A number that terminates in one base may repeat in another (thus $0.3_{10} = 0.0100110011001..._{2}$). An irrational number stays aperiodic (with an infinite number of non-repeating digits) in all integral bases. Thus, for example in base 2, $\pi = 3.1415926..._{10}$ can be written as the aperiodic 11.001001000011111...2.

Putting overscores, $\overline{n}$, or dots, ṅ, above the common digits is a convention used to represent repeating rational expansions. Thus:
 * 14/11 = 1.272727272727... = 1.$\overline{27}$  or   321.3217878787878... = 321.321$\overline{78}$.

If b = p is a prime number, one can define base-p numerals whose expansion to the left never stops; these are called the p-adic numbers.

It is also possible to define a variation of base b in which digits may be positive or negative; this is called a signed-digit representation.

Generalized variable-length integers
More general is using a mixed radix notation (here written little-endian) like $$a_0 a_1 a_2$$ for $$a_0 + a_1 b_1 + a_2 b_1 b_2$$, etc.

This is used in Punycode, one aspect of which is the representation of a sequence of non-negative integers of arbitrary size in the form of a sequence without delimiters, of "digits" from a collection of 36: a–z and 0–9, representing 0–25 and 26–35 respectively. There are also so-called threshold values ($$t_0, t_1, \ldots$$) which are fixed for every position in the number. A digit $$a_i$$ (in a given position in the number) that is lower than its corresponding threshold value $$t_i$$ means that it is the most-significant digit, hence in the string this is the end of the number, and the next symbol (if present) is the least-significant digit of the next number.

For example, if the threshold value for the first digit is b (i.e. 1) then a (i.e. 0) marks the end of the number (it has just one digit), so in numbers of more than one digit, first-digit range is only b–9 (i.e. 1–35), therefore the weight b1 is 35 instead of 36. More generally, if tn is the threshold for the n-th digit, it is easy to show that $$b_{n+1}=36-t_n$$. Suppose the threshold values for the second and third digits are c (i.e. 2), then the second-digit range is a–b (i.e. 0–1) with the second digit being most significant, while the range is c–9 (i.e. 2–35) in the presence of a third digit. Generally, for any n, the weight of the (n + 1)-th digit is the weight of the previous one times (36 − threshold of the n-th digit). So the weight of the second symbol is $$36 - t_0 = 35$$. And the weight of the third symbol is $$35(36 - t_1) = 35\cdot34 = 1190$$.

So we have the following sequence of the numbers with at most 3 digits:

a (0), ba (1), ca (2), ..., 9a (35), bb (36), cb (37), ..., 9b (70), bca (71), ..., 99a (1260), bcb (1261), ..., 99b (2450).

Unlike a regular n-based numeral system, there are numbers like 9b where 9 and b each represent 35; yet the representation is unique because ac and aca are not allowed – the first a would terminate each of these numbers.

The flexibility in choosing threshold values allows optimization for number of digits depending on the frequency of occurrence of numbers of various sizes.

The case with all threshold values equal to 1 corresponds to bijective numeration, where the zeros correspond to separators of numbers with digits which are non-zero.