Aller au contenu

Base (arithmétique)

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 3 août 2022 à 14:32 et modifiée en dernier par Mctir9 (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

En arithmétique, une base est la valeur dont les puissances successives interviennent dans l'écriture des nombres dans la numération positionnelle N-adique, ces puissances définissant l'ordre de grandeur de chacune des positions occupées par les chiffres composant tout nombre. Par commodité, on utilise usuellement, pour les bases entières à partir de deux, un nombre de chiffres égal à la base. En effet, l'écriture d'un nombre en base N > 1 à l'aide de N chiffres allant de 0 à N – 1 correspond à son développement en base N.

On peut reformuler ainsi : En base N, on a donc besoin de N chiffres, de 0 à N – 1. Par exemple, en base dix, on a besoin de dix chiffres, de 0 à 9, en base trois, on a besoin des trois chiffres de 0 à 2, etc.

Un nombre N en base b s'écrit , l'indice et le suslignage étant facultatif pour la base dix.

Pour les bases strictement supérieures à dix, on a besoin de l'adjonction de nouveaux chiffres, généralement les lettres de A à Z pour N 36. Un second système consiste à considérer les nombres qui ont plus d'un chiffre en base dix, c'est-à-dire 10, 11, 12... comme de nouveaux chiffres. Ainsi, on a (on sépare par des points-virgules pour indiquer qu'il s'agit de chiffres).

Bases courantes

Certaines bases sont couramment employées :

De nombreuses bases sont, et ont été, aussi utilisées par différents peuples ; consulter « Numération » pour plus de détails.

Bien que peu utilisée, la base trente a l'intérêt d'exprimer simplement le résultat de la majorité des petites fractions (à dénominateurs de la forme 2p.3q.5r) et factorielles. De plus, à la différence de la base soixante, elle peut être représentée à l'aide des dix chiffres usuels et des vingt premières lettres de l'alphabet.

Pour des applications spécifiques, l'informatique peut utiliser des bases ad hoc : pour un entier représenté par une chaîne d'octets, on peut considérer un octet comme un chiffre en base 256 ; on peut voir un identificateur comme un nombre en base 40 ; pour des applications décimales, on peut avoir avantage à utiliser une base 1000.

Chiffres utilisés dans une base et symboles

Une base b utilise b chiffres.

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

Pour les bases N avec , on utilise les 10 chiffres puis les lettres (capitales). Par exemple, pour la base 16, les symboles utilisés sont 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Pour la base 36, on utilise les symboles 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

Pour n'importe quelle base, et spécifiquement celles de N > 36, on utilise une notation plus conventionnelle avec N chiffres. Par exemple, en base soixante, on utilise les chiffres {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,..., 59}. Par exemple, car 1 × 60 + 25 × 60 + 12 ; ce nombre est composé de trois chiffres : 1, 25 et 12.

Les systèmes de numération étant positionnels, dans un nombre k = en base b (où sont les chiffres permettant de l'écrire), les chiffres ont une valeur selon leur position pour pour pour et pour .

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.

Notations courantes

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 1001112 pour le nombre dont le développement en base 2 est 100111, ou encore 1728 pour le nombre dont le développement en base 8 est 172.

En plus de cette notation, il en existe d'autres, notamment employées en informatique.

  • Base 8 : on peut indiquer le nombre avec un zéro au début. Par exemple 0157 pour 1578.
  • 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

Conversion d'une base à une autre

Un nombre dans une base donnée s'écrit sous la forme d'additions des puissances successives de cette base.

La puissance correspond au rang du chiffre moins un. Un entier k en base b possède n chiffres . représente le chiffre des unités (soit ), le chiffre des b-aines, ...)

  • Le nombre en base , constitué des chiffres , ..., , , , peut aussi s'écrire sous la forme .

Ainsi, un nombre exprimé en base b par les quatre chiffres 1101 se développe de cette façon :

, qui donne, selon la base :

Valeur de b Expression en base b Forme développée Expression en base dix
b = 10
b = 8
b = 2

On remarque que la signification des représentations 10, 100, 1000, etc., dépend de la base utilisée : 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 utilisera 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

Si l'on sait calculer dans la base de départ, des divisions entières successives par la base donneront 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 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.

Systèmes balancés

Un système numérique de base 2N ou 2N + 1 peut également être doté des 2N + 1 chiffres signés N,..., 2, 1, 0, 1, 2,..., N. On parle alors de système balancé ou symétrique.

Bases non standard

On peut également employer des bases :

Quelques propriétés

  • Zéro s'écrit 0 dans toutes les bases.
  • De la même manière, le nombre un s'écrit 1 dans toutes les bases, puisque quelle que soit la base, base0 égale 1.
  • L'égalité «  » est vraie dans toutes les bases naturelles strictement supérieures à 2.
  • En base dix, un nombre est pair s'il se termine par un multiple de 2, c'est-à-dire 0, 2, 4, 6 ou 8 ; en base 2, il est pair s'il se termine par 0. Inversement, en base dix, un nombre est impair s'il se termine par un chiffre impair, soit 1, 3, 5, 7 ou 9, et en base deux s'il se termine par 1. Cette propriété peut s'étendre à toutes les bases paires.
  • L'alternance des chiffres 0 et 1 en binaire se fait avec les chiffres 5 ou A en hexadécimal.
55516 = 0101010101012
AAA16 = 1010101010102.
  • Pour plusieurs nombres s'écrivant de la même façon dans des bases naturelles différentes, le plus grand est celui dans la plus grande base, à condition que cette écriture ait plusieurs chiffres.
5716 (=8710) > 5710 > 578 (=4710)
710 = 78.
  • De même, un grand nombre aura besoin de moins de chiffres pour s'écrire dans une grande base naturelle que dans une petite.
F424016 (5 chiffres) = 1 000 00010 (7 chiffres) = 1111 0100 0010 0100 00002 (20 chiffres).
  • 10n < 1 si la base n appartient à l'intervalle ]0, 1[, 101 = 1, et 10n > 1 si la base n appartient à l'intervalle ]1, +∞[[2].
  • La base s'écrit dans toutes les bases. 102 = 2, 1016 = 16, 1060 = 60.
  • En base N, un nombre est divisible par N – 1 (resp. par un diviseur d de N – 1) si la somme de ses chiffres est divisible par N – 1 (resp. par d) (exemple connu : la divisibilité par 3 ou par 9 en base dix).

Culture

  • Boby Lapointe avait imaginé un usage comique du système hexadécimal, qu'il avait baptisé Système Bibi-binaire. Ce système présentait l'avantage de rendre les nombres binaires faciles à prononcer et à mémoriser.
  • La RFC 1924[3] propose la base 85 pour la notation des adresses IPv6, mais ce n'est qu'un poisson d'avril.
  • Dans le jeu vidéo Portal, lors du combat final, GLaDOS annonce que 2 + 2 font 10, avant de se rattraper en complétant par « … en base 4 ! tout va bien. »
  • Les Shadoks comptent en quaternaire.

Notes et références

  1. Ahmed Djebbar, L'algèbre arabe : genèse d'un art, Vuibert, , p. 21.
  2. En effet 10n = n .
  3. RFC 1924.