En arithmétique, une base est un nombre non nul dont les puissances successives interviennent dans l'écriture de nombres dans la numération positionnelle utilisant ces puissances. Ce système de numération est alors désigné comme « de base », les puissances de définissant l'ordre de grandeur, aussi appelé le « poids », de chacune des positions occupées par les chiffres composant le nombre représenté. Les bases les plus utilisées sont celles où est un entier naturel. Il existe également des systèmes utilisant des bases non entières.

On utilise généralement, pour les bases entières à partir de deux, un nombre de chiffres égal à la baseLes principales raisons de ce choix sont expliquées plus loin dans l'article..

En base , un nombre s'écrit usuellement , l'indice étant facultatif pour la base dix.

Bases entières en numération naturelle

Définition mathématique

Pour tout entier naturel non nul appelé base, tout nombre entier naturel peut se décomposer sous la forme , où est un entier naturel, une suite finie d'entiers naturels. Pour définir la numération naturelle de base , on impose aux coefficients et à leur utilisation les conditions suivantes qui permettent d'assurer que cette décomposition est uniqueSi on admettait que puisse être nul, alors tout nombre aurait une infinité de décompositions : par exemple en base 10 on pourrait décomposer le nombre 20 en , mais aussi en . Et si on acceptait, toujours en base 10, qu'un chiffre vaille par exemple 10, et en notant ce chiffre A, le nombre 20 pourrait se décomposer en , mais aussi en .Ces conditions sont suffisantes mais pas nécessaires pour assurer l'unicité de représentation. Les systèmes k-adiques sont également à base entière et ont cette propriété d'unicité avec des hypothèses différentes sur les chiffres et leur usage.:

et .

Les coefficients sont alors appelés des chiffres.

Notations usuelles La représentation du nombre dans une base est la suite de chiffres . Il est indispensable de préciser la façon d'écrire cette représentation pour éviter toute confusion.

La convention usuelle de notation mathématique est d'ordonner cette suite par poids, ou puissance de , croissant de droite à gauche. Cette notation est dite positionnelle : les chiffres indiquent une valeur dépendant de leur position. Ainsi : pour , pour , pour , et ainsi de suite jusqu'à pour .

Le nombre est alors représenté par la suite ordonnée (), et pas par (), ni par aucune autre permutation de cette suite.

Pour bien indiquer dans quelle base cette représentation est exprimée, on la note , , ou . Les parenthèses, les points-virgules et le surlignage peuvent être omis s'il n'y a aucun risque de confusion. En base dix, la plus utilisée, il est admis de noter simplement cette représentation : .

Chiffres utilisés dans une base Pour pouvoir représenter de façon unique tous les entiers naturels, un système en base b utilise b chiffres.

Pour les bases usuelles jusqu'à dix inclus, on utilise généralement les chiffres 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.

Pour les bases b avec , on utilise ces mêmes 10 chiffres et les chiffres suivants sont les lettres de l'alphabet en capitales dans l'ordre de A à ZUn chiffre n'est pas un nombre : c'est le symbole ou, autrement dit, la représentation graphique d'un nombre. Pour illustrer la différence entre chiffre et nombre, il suffit par exemple de comparer comment le nombre cinq s'écrit en chiffres romains (V), en chiffres indo-arabes (5) et en chiffres chinois (五). Une lettre peut donc être choisie pour être un chiffre..

Par exemple, pour la base 16, les chiffres utilisés sont : 0, 1, 2, 3... 8, 9, A, B, C, D, E, F. Pour la base 36, on utilise les chiffres : 0,1, 2, 3...8, 9, A, B, C...X,Y, Z.

Pour les bases b avec , on peut utiliser les 10 chiffres de 0 à 9, les lettres capitales, puis les lettres minuscules. Par exemple, pour la base 62, on peut utiliser les chiffres : 0,1, 2, 3...8, 9, A, B, C...X,Y, Z, a, b, c,...x, y, z.

Pour n'importe quelle base, on peut utiliser une notation sans lettres. Par exemple, en base soixante, on peut utiliser les chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,..., 59. Dans ce cas on écrira par exemple : .

L'usage du zéro positionnel est une convention pratique et élégante, mais non nécessaire pour représenter les entiers naturels, comme l'illustre le système décimal sans zéro. Il est, par contre, indispensable pour généraliser l'écriture positionnelle aux nombres fractionnaires.

Autres notations La notation mathématique est , où k désigne un réel quelconque et b en indice est la valeur de la base. Par exemple 100111 pour le nombre dont le développement en base 2 est 100111, ou encore 172 pour le nombre dont le développement en base 8 est 172.

Il existe d'autres notations, notamment employées en informatique :

Base 8 : on peut indiquer le nombre avec un zéro au début. Par exemple 0157 pour 157. Base 16 : on peut indiquer de diverses manières qu'un nombre est en hexadécimal (voir tableau ci-dessous). Une autre écriture courante est l'ajout du suffixe « h » à la fin du nombre, ce qui avec notre exemple donne AE4Fh.

Préfixe Exemple Langages 0x 0xAE4F C, C++, Java $ $AE4F Pascal &h &hAE4F Basic # #AE4F HTML

Bases entières d'usage courant De nombreux systèmes de numération à bases entières ont été utilisés par différents peuples et à différentes époques.

Certaines bases sont encore couramment employées de nos jours : la base deux (système binaire), en électronique numérique et informatique ; la base huit (système octal), en informatique ; la base dix (système décimal), la plus commune, aujourd'hui la référence dans le domaine des sciences et enseignée dès les premières années d'école ; la base douze (système duodécimal) pour le compte en heures et mois ; la base seize (système hexadécimal), en informatique ; la base soixante (système sexagésimal), dans la mesure du temps Une heure vaut 60 minutes et 1 minute vaut 60 secondes.et des angles ; la base soixante-quatre, utilisée en informatique par l'encodage Base64.

Pour des applications spécifiques, les scientifiques, mathématiciens ou informaticiens peuvent décider d'utiliser des bases : par exemple, en informatique, pour un entier représenté par une chaîne d'octets, on peut considérer un octet comme un chiffre en base 256 et on peut également voir un identificateur comme un nombre en base 40.

Conversion d'une base à une autre Un nombre s'écrit, dans une base donnée , comme une suite de chiffres telle que la suite vérifie l'égalité mathématique: .

Ainsi, un nombre exprimé en base b par les quatre chiffres 1101 vaut : , qui donne, selon la base : Valeur de bExpression en base bForme développéeExpression en base dixb = 10 b = 8 b = 2

La signification d'une même représentation, comme 10, 100 ou 1000, dépend complètement de la base utilisée : par exemple, l'écriture « 10 » est égale à dix en base dix, mais à deux en base deux ou à trois en base trois.

Lorsqu'on veut passer d'une base à une autre, on peut utiliser deux méthodes (algorithmes), suivant que l'on sait calculer dans la base de départ ou dans la base d'arrivée. Méthode des divisions successives par la base Si l'on sait calculer dans la base de départ, des divisions euclidiennes successives par la base donnent en restes les chiffres du résultat, en commençant par les unités. Plus précisément :

(le nombre à convertir) ;

tant que faire

les sont les chiffres du nombre converti, en partant des unités.

Exemple : en base 7

On effectue une suite de divisions euclidiennes par 7 jusqu'à ce que le quotient soit égal à 0 :

.

Chaque reste est un chiffre donc = . On a = = , on retombe bien sur le même nombre en base dix.

Algorithme en JavaScript :function convert (n, b_d, b_a) { // La fonction prend en argument le nombre n à convertir, b_d la base de ce nombre, et b_a la base dans laquelle on veut le convertir var symbol = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'], // Cette liste a pour rôle de stocker les chiffres des bases par ordre croissant. res = ''; // Le nombre à renvoyer, sous forme de chaîne de caractère

n = parseInt(String(n), b_d); // On convertit le nombre en base décimale. Au-delà il ne pourrait être divisé.

while (n) { // Tant qu'il y a un reste non nul res = symbol[n % b_a] + res; // On incrémente le nombre à renvoyer, par le reste du nombre et de la base n = Math.floor(n / b_a); // Le nombre est arrondi

return res; // Le résultat est renvoyé }

Remarque : ce programme peut fonctionner jusqu'à la base 36, au-delà, la fonction parseInt ne fonctionne plus.

Méthode des divisions successives par les puissances de la base (algorithme glouton) Si l'on sait calculer dans la base de départ, des divisions euclidiennes successives par la plus grande puissance de la base possible donnent en quotients cette fois les chiffres du résultat, en commençant par celui de gauche. Plus précisément :

; (le nombre à convertir) ;

tant que faire

les sont les chiffres du nombre converti.

Exemple : en base 7

( est la plus grande puissance de 7 inférieure ou égale à 128). On effectue les divisions euclidiennes par les puissances de 7 :

.

Chaque quotient est un chiffre donc = .

Méthode de Horner Si l'on sait calculer dans la base d'arrivée, on évalue le polynôme (en représentant les coefficients et la base de départ dans la base d'arrivée). La méthode de Horner est généralement utilisée :

pour à faire ;

est le nombre dans la base d'arrivée.

Exemple d'algorithme en Python : def convert_horner(num, base=16): sym = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'] r = 0 for n in num: r = r * base + sym.index(n) return r Si on ne sait calculer ni dans la base de départ ni dans celle d'arrivée, on passe par une base intermédiaire où l'on sait calculer.

Si la base d'arrivée est une puissance r-ième de la base de départ (exemple : de la base deux à la base seize), on peut convertir chaque groupe de r chiffres en un chiffre, localement et directement.

Bases entières dans d'autres numérations L'utilisation de bases entières en numération peut être étendue à partir de la numération naturelle en modifiant les hypothèses relatives aux chiffres, aux puissances de la base, au signe de la base, ou même au nombre de bases entières utilisées.

Systèmes sans zéro ou b-adiques Il est possible de définir un système de numération de base entière non nulle en interdisant l'utilisation du chiffre valant zéro. On peut démontrer que tout nombre entier naturel non nul peut être décomposé de façon unique sous la forme : , où les sont des entiers naturels tels que : .

Les symboles représentant les valeurs que peuvent prendre les sont appelés des chiffres, et le système de numération de base b ainsi défini est appelé b-adique, ou bijectif de base b ou encore de base b sans zéro.

Le nombre est représenté, dans ce système, par la suite ordonnée de chiffres . Et le nombre zéro est, par convention, représenté par {} ou par un symbole très différent de ceux utilisés pour les chiffres.

Les chiffres utilisés en b-adique sont usuellement les mêmes que ceux du système naturel de base b, avec deux différences : le chiffre représentant le nombre zéro n'est pas utilisé, et un chiffre supplémentaire est utilisé pour représenter le nombre b. Ainsi, en base 10-adique, on utilise les chiffres (1, 2, 3, 4, 5, 6, 7, 8, 9, A), la lettre A étant le chiffre représentant le nombre dix.

La principale différence entre la numération de base b naturelle et la numération b-adique est l'absence de zéro dans cette dernière. Ceci a des conséquences sur la représentation des nombres dans ces deux systèmes, comme illustré dans le tableau ci-dessous pour le système de base dix naturel et le système 10-adique.