GREGORY TROLLIET
Blog
Supports
Projets
Me contacter
Les systèmes de numération en
informatique
Article publié le 6 mai 2020 8 minutes de lecture
Informatique
Numération • Binaire • Hexadécimal
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.
Wikipedia - Système de numération
Cette définition est bien jolie, mais elle est très technique quand même… Pour simplifier,
nous utilisons un système de numération de base dix employant une notation positionnelle et
dix chiffres. Voyons ensemble ce que cela veut dire.
#La numération indo-arabe
C’est donc celle que nous utilisons. Dans la description, il y a trois composantes à analyser:
la base dix ;
la notation positionnelle ;
les chiffres.
#Système décimal
Actuellement, il nous semble parfaitement normal de compter en base dix. D’ailleurs, on nous
explique rarement que nous l’utilisons, tellement son usage est répandu.
Le système décimal implique de regrouper les valeurs par puissance de dix. Par exemple, pour
écrire 431, on décrit :
Nous dirons que 431 contient quatre centaines, trois dizaines et une unité. Mais, si nous
changeons de base et passons dans un système quinaire, en base cinq, le même nombre 431 se
décrit comme :
Si on l’écrit en décimal, on obtient 116.
Il est possible de choisir la base que nous voulons, en prenant en compte qu’il faut
suffisamment de symboles, cinq en système quinaire, dix en décimal, vingt en vicésimal.
D’ailleurs, nous utilisons régulièrement des autres systèmes que le décimal :
système sexagésimal, base soixante, pour les heures et les degrés (ressortez vos cours
de géométrie) ;
système vicésimal, base vingt, pour certains nombres, comme quatre-vingts (sauf si
vous êtes logiques et dites huitante) ;
système duodécimal, base douze, pour certains mots comme la douzaine, pour les
heures et les mois.
D’autres systèmes sont ou ont été utilisés dans l’histoire de l’humanité.
#La notation positionnelle
La notation positionnelle consiste à utiliser des symboles différents pour dénombrer des
quantités différentes et utiliser la position pour spécifier la valeur. Le chiffre le plus à droite,
avant la virgule, sera l’unité, et ensuite à chaque déplacement vers la gauche la valeur
augmente d’une puissance.
valeur 1000 100 10 1
chiffres 3 1 4 7
-------------
nombre 3147
En opposition, la notation additive consiste à utiliser des symboles différents pour spécifier la
valeur et répéter les symboles pour dénombrer la quantité. Comme exemple, 203 en décimal
s’écrit, en hiéroglyphes :
ou
La position n’étant pas importante, les symboles peuvent être mis dans l’ordre que vous
voulez. Il serait même possible de les mélanger. Également, si une valeur n’est pas
représentée, par exemple les dizaines, aucun symbole le sera utilisé.
#Les chiffres
Les chiffres sont les symboles utilisés pour écrire des nombres. La majorité de l’humanité
s’est accordée pour utiliser les chiffres indo-arabes, de 0 à 9. Une fois assemblés ensemble,
ces symboles permettent, en connaissant la base et le système de notation choisi, d’écrire des
quantités.
#La numération binaire
En informatique, nous utilisons le niveau de courant électrique pour définir une valeur. Le
plus simple est d’utiliser uniquement les deux cas les plus simples :
s’il n’y a pas de courant ;
s’il y a du courant.
En général, la valeur associée à l’absence de courant sera 0 ou faux alors que sa présence sera
notée 1 ou vrai. C’est ce qu’on appelle le bit .
Nous avons donc un système avec deux symboles ce qui implique une base deux. Chaque
chiffre, en partant de la droite, vaut une puissance de deux supplémentaire. Le premier chiffre
vaut donc 1, le deuxième 2, le troisième 4, et ainsi de suite.
Si nous voulons compter, cela se fait comme en base décimale mais avec uniquement avec
deux chiffres. Voici une liste des premiers nombres positifs :
Binaire Décimal
0000 0
Binaire Décimal
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
Un petit exemple de conversion, la base est indiquée en indice après le nombre, ça nous
permettra de bien la préciser par la suite.
Et un exemple moins mathématique :
valeur 8 4 2 1
chiffres 1 1 0 1
--------
nombre 13
Bien évidemment, comme en système décimal, nous pouvons utiliser autant de colonnes que
nécessaire. En vrai, c’est en général limité par les capacités de votre processeur c’est pourquoi
il y a eu beaucoup de discussions il y a quelques années entre les processeurs 32 bits et ceux
64 bits, le second permettant de représenter des nombres plus grands. (C’est une
simplification, la réalité est bien plus complexe mais pas pertinente ici.)
#La numération hexadécimale
En hexadécimal, base seize, il y a un problème, nous n’avons pas seize chiffres différents.
C’est pourquoi il a été décidé de rajouter des lettres. Les symboles utilisés sont donc les
chiffres de 0 à 9 et les lettres de A à F, majuscules ou minuscules, cela n’est pas important.
Une des raisons pour laquelle nous utilisons la numération hexadécimale est sa simplicité de
conversion avec la numération binaire. Contrairement au système décimal, chaque chiffre
hexadécimal peut être complètement converti en binaire. En construisant un nombre binaire
avec quatre chiffres, il est possible de faire seize combinaisons, comme un nombre
hexadécimal avec un chiffre.
Hexadécimal Binaire Décimal
04 0000 0100 4
0C 0000 1100 12
0F 0000 1111 15
10 0001 0000 16
6F 0110 1111 111
3F7 0011 1111 0111 879
Nous utilisons la notation hexadécimale pour simplifier la visualisation de la notation binaire,
le nombre de chiffres utilisé étant divisé par quatre.
#La numération quaternaire
Sans m’attarder sur la question, car cette numération est très peu utilisée, Jacques Rouxel a
fait un très bon épisode de sa super série Les Shadoks sur la numération quaternaire, utilisée
par ces derniers. La méthode décrite est facilement généralisable à n’importe quelle base et
permet donc de bien visualiser ce que j’ai expliqué dans ce billet. Je vous laisse visionner ce
super épisode de moins de 3 minutes.
#La conversion entre les différentes
numérations
#Vers la base dix
Pour convertir vers la base dix, il faut décomposer le nombre comme une somme des chiffres
multipliés par un poids correspondant aux puissances successives de la base d’origine. Par
exemple, pour convertir un nombre de base sept à base dix :
#Depuis la base dix
Pour convertir depuis la base dix, on utilise une succession de divisions entières.
#Division euclidienne
La division euclidienne, ou entière, consiste à associer deux entiers naturels (positifs), le
dividende et le diviseur, avec deux autres entiers naturels, le quotient et le reste.
Cet exemple montre la division euclidienne 65 / 9.
#Conversion
Pour faire la conversion, il faut suivre les étapes suivantes :
1. faire la division euclidienne avec :
1. le dividende ayant pour valeur notre nombre initial, en base dix,
2. le diviseur valant la base de destination ;
2. récupérer le reste, il sera utilisé comme premier chiffre de notre nouveau nombre ;
3. le quotient remplace le nombre initial ;
4. répéter les trois premières étapes jusqu’à ce que le quotient soit nul.
#Exemple
Pour convertir 148010 en base 7 :
1. 1480 = 7 × 211 + 3 ;
2. j’écris mon reste, 3, comme premier chiffre de mon nouveau nombre ;
3. 211 = 7 × 30 + 1 ;
4. je rajoute mon reste, 1, au nombre précédent, 13 ;
5. 30 = 7 × 4 + 2 ;
6. je rajoute mon reste, 2, au nombre précédent, 213 ;
7. 4 = 7 × 0 + 4 ;
8. je rajoute mon reste, 4, au nombre précédent, 4213. Le quotient étant nul, je peux
m’arrêter.
147310 est donc égal à 42137.
#Binaire, hexadécimal et octal
Les numérations binaire, hexadécimale et octale ont l’avantage de se convertir entre elles très
facilement. Un chiffre hexadécimal étant égal à quatre chiffres binaires et un chiffre octal
étant égal à trois chiffres binaires. Il est évidemment autorisé de rajouter des zéros en début de
nombre pour avoir un nombre de chiffre multiple de trois ou quatre. Il faut donc séparer le
nombre binaire par groupe de trois ou quatre bits, en partant de la droite, et convertir chacun
de ces groupes en leurs valeurs octale ou hexadécimale.
binaire 0100 0110 0101 1101 1011
hexadécimal 4 6 5 D B
binaire 001 000 110 010 111 011 011
octal 1 0 6 2 7 3 3
Donc, 10001100101110110112 vaut 465DB16 et 10627338 (et pour information, 288 21910).
#Conclusion
En vrai, il faut retenir quelques choses quand on parle de numération.
Que lorsque nous communiquons un nombre, par exemple 173 (pourquoi pas), il est établi
que nous parlons en base dix. C’est en général le cas mais ça pourrait être de la base huit ou
plus.
Les ordinateurs fonctionnent uniquement en binaire mais les informaticiens, contrairement à
ce que la légende raconte, n’aiment pas écrire du binaire. D’où l’intérêt d’utiliser
l’hexadécimal, beaucoup plus simple à écrire mais également très simple à convertir en
binaire.
En dehors des numérations binaire ⇔ octale et binaire ⇔ hexadécimale, les conversions sont
faisables mais un poil plus délicates, rien d’insurmontable mais en général il faudra sortir du
papier et un crayon.
Revenir en haut de page
Article précédent: Robustesse d'un mot de passe Article suivant: Le chiffrement