# Système de numération

Un système de numération est un ensemble de règles qui régissent une, voire plusieurs numérations données. De façon plus explicite, c'est un ensemble de règles d'utilisation des signes, des mots ou des gestes permettant d'écrire, d'énoncer ou de mimer les nombres, ces derniers étant nés, sous leur forme écrite, en même temps que l'écriture, de la nécessité d'organiser les récoltes, le commerce et la datation. Le système de numération indo-arabe est aujourd’hui le plus répandu dans le monde.

## Principe de base

Le système de numération le plus ancien, dit unaire (base 1), s'avère peu pratique lorsqu'il s'agit de manier des quantités importantes. La solution découverte par de nombreuses civilisations anciennes consiste à grouper les unités par paquets chaque fois qu'est atteinte une même valeur, qu'on appelle base de numération. Puis, on regroupe ces paquets en paquets d'ordre supérieur, et ainsi de suite. Généralement, le nombre d'éléments de chaque paquet est identique et donne la base de la numération. Cependant, certains systèmes sont irréguliers, comme la numération maya, de caractère de base vigésimale, irrégulière afin d'être plus compatible avec un calendrier de 360 jours ou la numération babylonienne, initialement de caractère sexagésimal, qui se transforme tardivement en une combinaison sexagésimale et décimale. Le comptage usuel des durées est également irrégulier : soixante secondes pour une minute, soixante minutes pour une heure, vingt-quatre heures pour un jour, vingt-huit à trente-et-un jours pour un mois.
De nombreux systèmes ont été inventés et utilisés à des époques variées :
* Un système binaire (base 2) utilisé dans des langues d'Amérique du Sud et d'Océanie, et utilisé de nos jours en informatique
* Un système ternaire (base 3)
* Un système quaternaire (base 4).
* Un système quinaire (base 5) dont il reste des traces jusqu'au XXe siècle dans des langues africaines, mais aussi, partiellement, dans les notations tchouvache, suzhou, romaine et maya. Le nom des chiffres 6, 7, 8 et 9 dans de nombreuses langues témoignent de ce système quinaire: ils se disent 5+1, 5+2, 5+3 et 5+4 en wolof (langue de la famille nigéro-congolaise), en khmer (langue austro-asiatique), en nahuatl (langue uto-aztèque), et, dans de nombreuses langues austronésiennes telles qu'en lote ou en ngadha (sous forme partielle). La base quinaire apparait parfois comme base auxiliaire ou sous-base de la base décimale, comme dans le système romain, ou de la base vigésimale.
* Un système sénaire (base 6) est utilisé dans les langues Ndom et Kómnzo de Papouasie-Nouvelle-Guinée, ainsi que dans les dés. Il utilise six chiffres de 0 à 5, les comptages de doigts par "multiples de trois" bases, le plus pratique.
* Un système octal (base 8) est utilisé en langue pame du Nord, au Mexique, et en langue yuki, en Californie, ainsi qu'en informatique.
* Un système nonaire (base 9).
* Un système décimal (base 10) a été utilisé par de nombreuses civilisations, comme celles d’Égypte et de Chine (1450 av. J.-C.), et, probablement, par les Proto-indo-européens. Aujourd'hui, il est de loin le plus répandu.
* Un système duodécimal (base 12), déjà utilisé par les Sumériens et Assyro-babyloniens pour des mesures de longueur et de temps. On le retrouve dans un certain nombre de monnaies et d'unités de compte courantes en Europe au Moyen Âge, notamment dans le système impérial d'unités, et dans le commerce. Il sert encore, par exemple, pour compter les mois, les heures, les fleurs, les huîtres et les œufs.
* Un système hexadécimal (base 16), très couramment utilisé en électronique ainsi qu'en informatique$^,$RFC 4648. Son intérêt réside dans les conversions triviales avec la base 2, tout en permettant une écriture plus compacte des nombres.
* Un système vigésimal (ou vicésimal, base 20) existe au Bhoutan en langue dzongkha, et était en usage chez les Aztèques vers 1200 et, quoiqu'irrégulier, pour la numération maya. Il a des avantages en matière de divisibilité par 2, 4, 5 et 10. Certains pensent qu'il a aussi été utilisé par les Gaulois ou par les Basques mais on ignore en réalité si leur numération avait un caractère décimal ou vigésimal. Il était aussi présent en vieux français, ce qui explique l'usage du mot quatre-vingts pour le nombre 80, ou encore le nom de l'hôpital des Quinze-Vingts, qui pouvait accueillir 300 patients.
* Un système à base 32, utilisé en informatique.
* Un système à base 36, qui utilise les dix chiffres du système décimal et les vingt six lettres de l'alphabet.
* Un système sexagésimal (base 60) était utilisé pour la numération babylonienne et en Mésopotamie vers 3300 av. J.-C.$^,$, ainsi que par les Indiens et les Arabes en trigonométrie. Il sert encore actuellement dans la mesure du temps et certaines mesures des angles.
* Le système Base64 utilisé en informatique.
Certaines bases de numération sont plus particulièrement utilisées dans des domaines scientifiques, notamment en électronique numérique et en informatique. Consulter l'article Base (arithmétique) pour plus de détails.

## Systèmes d'énonciation

Certains nombres bénéficient exclusivement d'un nom simple, comme mille en français. Dans le cas contraire, plusieurs principes permettent de les composer :
* l'addition : en français dix-sept (10+7), soixante-dix (60+10); en anglais twenty two (20+2) ;
* la multiplication : quatre-vingts (4x20), deux cents (2x100) en français ; en anglais two thousand (2x1000) ;
* la soustraction : dix-huit se dit duodeviginti en latin classique (deux-de-vingt, 20-2) ;
* la division : cinquante se dit hanter-kant en breton (moitié [de] cent, 100/2) ;
* la protraction (terme introduit par Claude Hagège) : trente-cinq se disait holhu ca kal en yucatèque (cinq-dix deux vingts, 15 2×20, soit 15 vers 2×20 ou 15 à partir de la vingtaine précédant 2×20, soit 15+20). Dans l'expression de 35 (comme dans celle de trente) il convient de restituer un relateur sous-entendu (ou effacé) qui était tu (en réalité ti+u avec ti = locatif 'vers' et u = indice personnel de 3e personne 'son' qui, dans ce contexte, servait à dériver l’ordinal depuis le cardinal; si bien que l'expression de 35 doit s'analyser comme étant « 15 vers la deuxième vingtaine »$^,$.
Un système auxiliaire est parfois utilisé. Par rapport au système principal, celui-ci peut-être :
* inférieur : la numération wolof est décimale mais utilise un système quinaire auxiliaire, vingt-six se dit ñaar fukk ak juroom benn en wolof (deux dix et cinq un, 2×10+5+1) ;
* supérieur : la numération basque est décimale mais utilise un système vicésimal auxiliaire, cent cinquante-deux se dit ehunta berrogeita hamabi en basque (cent-et deux-vingts-et dix-deux, 100+2×20+10+2). De même, en français de France et en français Canadien (Québec) persistent quatre-vingt et quatre-vingt-dix (au lieu de huitante, ou anciennement, octante, utilisé dans certains cantons en Suisse, et nonante en Suisse et en Belgique), qui proviennent du système vicésimal médiéval, utilisé de façon auxiliaire au système principal décimal d'origine latine.
Enfin, certains nombres bénéficient d’une construction indépendante de la base employée. Ainsi, en breton, dix-huit se dit triwecʼh (trois-six, 3×6). Et on trouve d’autres exemples en vieux breton, dans certaines formes de nombres qui n’ont pas survécu : dou nau (deux-neuf, 2×9) pour dix-huit, pem nau (cinq neuf, 5×9) pour quarante-cinq, seidh seidh (sept sept, 7×7) pour quarante-neuf et teir trigont (trois trente, 3×30) pour quatre-vingt-dix.

## Systèmes de mime

Plusieurs peuples se servent, ou se sont servis, traditionnellement des parties de leur corps pour compter. Pour un compte décimal ou quinaire, les doigts sont généralement mis à contribution. Les Yukis, qui emploient un système octal, utilisent des espaces entre les doigts pour compter. Le peuple chepang, qui emploie un système duodécimal, se sert du pouce pour compter sur les phalanges des doigts. Bien d'autres procédés encore ont été employés.

## Systèmes de notation

Les symboles utilisés pour écrire les nombres sont les chiffres. Les règles d'utilisations de ces chiffres permettent de distinguer schématiquement trois principales familles de système de notation : les systèmes additifs, hybrides et positionnels.

### Les systèmes additifs

Ces systèmes utilisent des chiffres pour représenter les puissances de la base, et éventuellement des sous-multiples de ces puissances. Les autres nombres s'obtiennent par juxtaposition de ces symboles. Le lecteur a alors la charge d'additionner les valeurs des symboles pour connaitre le nombre. C'est le cas des systèmes de numération égyptien, grec, romain, gotique, ou plus simplement du système unaire ou de la numération forestière.
Il existe également des systèmes à la fois additifs et soustractifs. Ainsi, la numération romaine, additive, connait une variante additive et soustractive plus tardive.
Exemple de nombre romain en écriture additive : MMCCCXXVII vaut 2327=(1000+1000)+(100+100+100)+(10+10)+5+(1+1).
Exemple de nombre romain en écriture additive et soustractive: CMXCIV vaut 994 (100 ôté de 1000+10 ôté de 100+1 ôté de 5).

### Les systèmes hybrides

Ces systèmes utilisent des chiffres pour les unités et pour les puissances de la base. Les chiffres représentant une puissance de la base utilisés sont, au besoin, combinés avec un chiffre représentant une unité, et les nombres sont ainsi représentés par addition de multiples de puissances de la base. C'est le cas des systèmes de numération chinois et japonais. On peut remarquer qu'un tel système de notation comporte une forte analogie avec le système d'énonciation des nombres dans une majorité de langues. (Par exemple, en français, le nombre deux-mille-huit-cent-dix-sept, est aussi formé par addition de multiples de puissances de la base 10 : 2×10³+8×10²+1×10¹+7.)
Exemple : en numération japonaise le nombre 1975 s'écrit 千九百七十五. En effet 千 est le chiffre 1000, 百 le chiffre 100, 十 le chiffre 10, 九 le chiffre 9, 七 le chiffre 7, et 五 le chiffre 5. 千九百七十五 vaut donc : 1000+9x100+7x10+5=1975.

### Les systèmes positionnels

Ces systèmes utilisent des chiffres, dont la place dans l'écriture du nombre indique le poids qui leur est affecté (poids n$^0$=1, poids n$^1$=n, poids n$^2$… pour une base n). C'est le cas des systèmes de numération maya et babylonien, ainsi que les systèmes de numération indien et arabe à l'origine des mathématiques modernes. Ils permettent d'écrire les nombres simplement quelle qu'en soit la base, en utilisant le zéro positionnel.
Dans un tel système, une base β nécessite β chiffres pour représenter tous les entiers, et chaque entier a alors une représentation unique. La valeur généralement utilisée de ces chiffres va de 0 à β-1.
Exemples :
* Base 2: les chiffres sont 0 et 1. Le nombre 17 (en système décimal) s'écrit "10001" en base 2, soit : 1x2⁴+0x2³+0x2²+0x2+1 donc 1x16+0x8+0x4+0x2+1.
* Base 5 : les chiffres sont 0,1, 2, 3 et 4. Le nombre 17 (en système décimal) s'écrit "32" en base 5, soit : 3x5+2.
* Base 36 : les chiffres sont les chiffres du système décimal et les lettres de l'alphabet. Le nombre 17 (en système décimal) s'écrit "H" en base 36 car H est le 18e chiffre en base 36 (le premier étant 0).
Il existe aussi des types de représentations différents :
* des systèmes k-adiques, sans 0, utilisant, pour une base β, des chiffres de 1 à β (ce sont des systèmes bijectifs) ;
* des systèmes balancés utilisant, pour une base β impaire, des chiffres de -(β-1)/2 à (β-1)/2 ;
* des systèmes redondants, utilisant pour une base β un nombre de chiffres strictement supérieur à β.
Un système sera dit incomplet, s'il ne permet pas de représenter tous les nombres. C'est le cas, par exemple, des systèmes de base β utilisant un nombre de chiffres strictement inférieur à β.
Plusieurs systèmes connaissent des applications en électronique et en informatique. Ces systèmes ont la particularité de représenter les nombres sur un nombre défini de positions, et ne peuvent donc représenter les entiers que jusqu’à une certaine borne. Par exemple,
* en binaire : système négabinaire ;
* en ternaire : système ternaire équilibré ;
* en base β : système d'Avizienis.

### Autres systèmes

Il existe aussi des systèmes alternatifs de représentations des nombres, soit dérivés du système positionnel, soit indépendants du concept de base tel qu'il a été défini plus haut. En voici quelques exemples,
* en mathématiques (voir la section suivante correspondante) : le développement en fraction continue, le développement en série de Engel, le développement de Hensel, le système modulaire de représentation ;
* en électronique et en informatique : le binaire réfléchi (ou code de Gray), le complément à un, le complément à deux, le décimal codé binaire.

## Mathématiques
### Définitions

* Un système de numération est un triplet $(X,I,\phi )$, où $X$ est l'ensemble à énumérer, $I$ est un ensemble ﬁni ou dénombrable de chiffres et $\phi$ est une application injective de $X$ vers l'ensemble des suites de chiffres :$\phi$ : $X\hookrightarrow I^{\mathbb {N} }$ , et on écrit : $\phi (x)=(a_{k}(x))_{k\geqslant 0}$. L’application $\phi$ est appelée l'application de représentation, et $\phi (x)$ la représentation de $x$. Les suites admissibles sont définies comme les représentations images $\phi (x)$, pour tout $x$∈$X$. Exemple : pour la numération décimale usuelle, on choisit $I=\{0,\,1,\,2,\,3,\,4,\,5,\,6,\,7,\,8,\,9\}$, et $X=\mathbb {N}$, ensemble des entiers naturels, et on associe à tout nombre entier naturel la suite de ses chiffres décimaux. On a donc ainsi $\phi (1950)=(0,5,9,1,0,0,\dots )$, et les suites admissibles sont les suites d'entiers de 0 à 9 nulles à partir d'un certain rang.
* Aviezri S. Fraenkel donne une définition générale de système de numération et décrit des cas d'unicité et de complétude : un système de numération est complet s'il permet de représenter tous les entiers.
* L'étude systématique a été reprise dans le cadre des langages formels et de la combinatoire par Michel Rigo.
* Le problème de la propagation du report a été étudié part Valérie Berthé, Christiane Frougny, Michel Rigo et Jacques Sakarovitch.

### Exemples de systèmes de numération
#### Numérations à bases entières
##### Numération à base unique

Dans la numération en base b, entier $\geqslant 2$, tout entier naturel n non nul s'écrit de manière unique sous la forme $n=\sum _{k=0}^{N}a_{k}b^{k}=a_{0}+a_{1}b+\cdots a_{N}b^{N}$, avec les chiffres $a_{k}$ vérifiant $0\leqslant a_{k}\leqslant b-1$ et $a_{N}\not =0$. Le nombre $N=\left\lfloor {\frac {\ln(n)}{\ln(b)}}\right\rfloor +1=\left\lfloor {\log _{b}n}\right\rfloor +1$ est le nombre de chiffres de n en base b (voir Logarithme#Nombre de chiffres avant la virgule). De plus, tout réel $x$ peut s'écrire, de manière unique si son développement est propre (autrement dit ne se termine pas par une suite infinie de "$b-1$" comme 0,999... qui s'écrit aussi 1,000...), sous la forme $x=\sum _{k=-\infty }^{N}a_{k}b^{k}$ (voir Non_unicité_de_représentation_de_certains_nombres).

##### Numération à bases mixtes

La numération à bases mixtes $b_{1},b_{2},\cdots$, entiers $\geqslant 2$, généralise la précédente : tout entier naturel n non nul s'écrit de manière unique sous la forme $n=a_{0}+a_{1}b_{1}+a_{2}b_{1}b_{2}+\cdots +a_{N}b_{1}\cdots b_{N}$, où les chiffres $a_{k}$ vérifient $0\leqslant a_{k}\leqslant b_{k+1}-1$ et $a_{N}\not =0$. La représentation est dite factorielle lorsque $b_{k}=k+1$.

##### Numération de Fibonacci, ou de Zeckendorf

La numération de Fibonacci, obtenue par le théorème de Zeckendorf utilise la suite de Fibonacci définie par $F_{0}=0$, $F_{1}=1$, $F_{n+2}=F_{n+1}+F_{n}$ permettant d'écrire tout entier naturel n non nul de manière unique sous la forme $n=\sum _{k=2}^{N}\varepsilon _{k}F_{k}$, où les chiffres $\varepsilon _{k}\in \{0,1\}$ vérifient $\varepsilon _{N}\not =0$, et $\varepsilon _{k}\varepsilon _{k+1}=0$ pour $2\leqslant k\leqslant N-1$.

##### Numération de base une suite d'entiers

Georg Cantor définit ce système de numération généralisant les trois précédents par la donnée d'une suite strictement croissante d'entiers strictement positifs $(x_{k})_{k\geqslant 0}$ et pour chaque $x_{k}$, d'une valeur maximum $m_{k}$ du coefficient par lequel on s'autorise à le multiplier. Il appelle représentation d'un entier naturel $n$ toute suite nulle à partir d'un certain rang$(a_{k})_{k\geqslant 0}$ de coefficients, chaque $a_{k}$ étant un entier naturel au plus égal à $m_{k}$, telle que la somme des $a_{k}x_{k}$ soit égale à $n$ : $n=\sum _{k=0}^{\infty }a_{k}x_{k}$.
Il démontre qu'un tel système est «complet et simple », c'est-à-dire représente chaque entier naturel $n$ de façon unique, si et seulement si $x_{0}=1$ et, pour tout $k\geqslant 0$, $m_{k}+1=\left\lfloor {\frac {x_{k+1}}{x_{k}}}\right\rfloor$.
On obtient:
* le système de numération en base b en prenant $x_{k}=b^{k},m_{k}=b-1$,
* le système de numération à bases mixtes $b_{1},b_{2},\cdots$ en prenant $x_{0}=1,x_{k}=b_{1}\cdots b_{k},m_{k}=b_{k+1}-1$,
* le système de Zeckendorf en prenant $x_{k}=F_{k+2},m_{k}=1$.
Les coefficients peuvent s'obtenir par algorithme glouton ; $N$ étant défini par $x_{N}\leqslant n<x_{N+1}$, on effectue la division euclidienne de $n$ par $x_{N}$ dont le quotient fournit $a_{N}$, et on recommence avec la division du reste $r_{N-1}$ par $x_{N-1}$, ainsi de suite jusqu'à obtenir $n=\sum _{k=0}^{N}a_{k}x_{k}$.
Cantor étend les représentations d'entiers aux représentations de réels (positifs), en ajoutant aux représentations d'entiers des séries infinies de la forme : $\sum _{k=1}^{+\infty }{\frac {b_{k}}{x_{k}}},\quad b_{k}\in \{0,1,\ldots ,m_{k-1}\}.$

#### Autres systèmes

* La numération en base non entière, utilisant notamment la base d'or, la base ${\sqrt {2}}$ ou encore la base e.
* Le système binaire alternant où tout entier s'écrit de façon unique sous la forme $n=\sum _{i=1}^{k}a_{i}2^{p_{i}}$ où les $p_{i}$ sont des entiers vérifiant $p_{1}>p_{2}>\cdots >p_{k-1}>1+p_{k}$ et où les $a_{i}$ valent alternativement 1 ou -1$^,$ . Ainsi $1=1_{2-alt},2=10_{2-alt},3=101_{2-alt},4=100_{2-alt},5=8-4+1=1{\bar {1}}01_{2-alt},$
$6=8-2=10{\bar {1}}0_{2-alt},7=100{\bar {1}}_{2-alt},8=1000_{2-alt},9=1{\bar {1}}001_{2-alt},10=1{\bar {1}}010_{2-alt}.$
* La représentation en fraction continue : tout nombre réel s'écrit de manière unique sous la forme $x=a_{0}+{\cfrac {1}{a_{1}+{\cfrac {1}{a_{2}+{\frac {1}{a_{3}+\dots }}}}}}$ avec $a_{0}\in \mathbb {Z}$ et $a_{k}\in \mathbb {N} ^{*}$ pour $k\geqslant 1$, la suite des $a_{k}$ étant finie pour un nombre rationnel, infinie pour un nombre irrationnel.
* La représentation en série de Engel : tout nombre réel strictement positif s'écrit de manière unique sous la forme $x={\frac {1}{a_{1}}}+{\frac {1}{a_{1}a_{2}}}+{\frac {1}{a_{1}a_{2}a_{3}}}+\dotsb$ où les $a_{k}$ forment une suite croissante d'entiers strictement positifs, la suite étant constante à partir d'un certain rang ssi le nombre est rationnel.
* La décomposition en produit de nombres premiers est un système de numération, notamment utilisé par les calculateurs quantiques, $\forall n\in \mathbb {N} ^{*},\exists !(\alpha _{p})_{p\in {\mathcal {P}}}\in \mathbb {N} ^{({\mathcal {P}})}:n=\prod _{p\in {\mathcal {P}}}p^{\alpha _{p}}$.
* Le système modulaire de représentation (RNS) permet, à l'aide d'une base $(m_{1},m_{2},\ldots ,m_{n})$ de modules mutuellement premiers entre eux, d'énumérer tous les nombres entiers $0\leqslant a<M$, où $M=\prod _{k=1}^{n}m_{k}$ par leur suite de restes $(a\mod {m_{k}})_{1\leqslant k\leqslant n}$ en utilisant le théorème des restes chinois.

### Système de numération fibré

Les chiffres proviennent d'une transformation non injective $T:X\to X$.
* En représentation q-adique, le "chiffre des unités" est donné par $\varepsilon (n)=n\,({\text{mod}}\,q)$ et la suite des chiffres par $\varepsilon _{k}(n)=\varepsilon (T^{k}(n))$ où T est l'application $T(n)=({n-\varepsilon (n)})/q$.
* La suite des chiffres de la représentation en fractions continues provient de $\varepsilon (x)=\lfloor 1/x\rfloor$ et l'application de Gauss $T(x)=1/x-\epsilon (x)$.