systèmes de numération - conversion binaire - décimal - hexadécimal - octale - calcul binaire
Les bases de numération
Cours systemes de numérations : niveau débutant
Vous remarquerez qu’en informatique tout fonctionne avec des puissances de 2.
Par exemple, on peut mettre quatre (22) unités de disque sur un bus IDE, on peut brancher jusqu’à 128 (27) périphériques sur un bus USB, on peut utiliser des barrettes de 256 Mo (28 Mo) ou de 512 Mo (29 Mo), etc. Les exemples ne manquent pas. Et c’est normal, puisque l’ordinateur travaille en binaire (base 2). Mais comme nous, les êtres humains, nous travaillons en décimal (base 10), on est souvent amené à jongler entre les différentes bases de numération.
Objectif
À la fin de cette séquence, vous maîtriserez les bases de numération utiles en informatique (binaire et hexadécimal). Vous saurez faire des calculs élémentaires dans chaque base et vous saurez faire des conversions entre le binaire, l’hexadécimal et le décimal.
Contenu
1. Principes de fonctionnement d’une base de numérotation
1A. La base décimale (base 10)
1B. Une base b quelconque
2. Le système binaire (base 2)
2A. Compter
2B. Vocabulaire
2C. Arithmétique élémentaire
3. L’hexadécimal (base 16)
4. Les conversions de base
4A. Conversion en binaire
4B. Conversion en hexadécimal
QCM d’auto-évaluation
1. Principes de fonctionnement d’une base de numération
2
Dans cette partie, nous allons traiter des bases de numération utilisées en informatique (binaire et hexadécimal). Elles sont peu utilisées par l’être humain, qui préfère la base décimale (question de morphologie !). Toutefois, il est impératif de les connaître (il faut savoir parler le même langage que l’ordinateur).
Une base de numération est une sorte de langage mathématique. Elle définit un alphabet (chiffres) et une syntaxe de constitution des mots (nombres). Nous allons partir de la base décimale pour en déduire les principes d’une base de numération quelconque.
1A. La base décimale (base 10)
En base 10, l’alphabet est composé de 10 symboles {0, 1, …, 9}.
Dans un nombre, un poids est associé à chaque chiffre. Ce poids est le coefficient par lequel il faudra multiplier le chiffre pour obtenir sa valeur réelle. Ce coefficient est constitué de la base à la puissance du rang du chiffre dans le nombre.
Exemple : on peut décomposer le nombre 425 exprimé en base décimale de la façon suivante :
Tableau 1
Pour compter, on utilise le même principe :
Tableau 2
Jusqu’ici, c’est très simple. Mais, en général, dès que l’on passe à la base 2, ça se complique un petit peu, alors que toutes les bases de numération fonctionnent sur un principe identique.
La seule différence réside dans l’alphabet qui est plus ou moins développé suivant la base. On peut donc généraliser ce que nous venons de dire à une base b quelconque.
1B. Une base b quelconque
Par la suite, nous utiliserons la notation (N)b pour signifier un nombre N exprimé dans la base b.
Dans une base b, l’alphabet est composé de b chiffres : le plus petit chiffre de la base est égal à 0, le plus grand chiffre de la base est égal à b-1. De façon plus formelle : pour un symbole a quelconque de l’alphabet, a ∈ {0, 1, …, b-1}.
Les mots sont des nombres. On peut les décomposer sous la forme suivante :
(N)b = aibi + ai-1bi-1+ … + a2b2 + a1b1 + a0b0 où a est un symbole de l’alphabet, b la base et i le rang.
2. Le système binaire (base 2)
En binaire, l’alphabet est le plus simple qui puisse s’imaginer : {0,1}
2A. Compter
Reprenons le tableau vu avec la base 10 et adaptons-le à la base 2 :
Tableau 3
2B. Vocabulaire
Chaque 0 ou 1 d’un nombre binaire s’appelle un bit (acronyme de Binary digIT en anglais).
Pour faciliter le traitement, l’ordinateur travaille souvent sur des groupes de bits dont la taille est :
8 bits = 1 octet
16 bits = 2 octets = 1 mot
32 bits = 4 octets = 1 double mot
Veuillez bien noter ceci, car c’est une source d’erreurs :
Ne pas confondre byte en anglais qui signifie octet en français (et non bit !)
Représentons sur un octet le nombre :
Observation
On a comblé à gauche par des 0. Ceux-ci sont non significatifs, mais l’ordinateur comme l’être humain, a horreur du vide. Ainsi, un bit qui n’est pas explicitement fixé à 1 est fixé à 0.
Il est indispensable que vous connaissiez de tête :
• les premières puissances de 2 (de 20 à 27) soit 1, 2, 4, 8, 16, 32, 64, 128 ;
• 28 et 216 soit 256 et 65 536 ;
• 224 et 232 (approximativement) soit 16,7 millions et 4 milliards.
2C. Arithmétique élémentaire
Toute base de numération permet de faire des calculs. Nous ne voyons ici que l’addition et la soustraction mais ce n’est pas limitatif, tout calcul est possible.
2C1. L’addition
L’addition de deux bits se déroule de la façon suivante :
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0 et une retenue de 1.
Dans certains cas, lorsque la retenue se propage, on peut être amené à calculer :
1 + 1 + 1 = 1 et une retenue de 1.
On souhaite effectuer l’opération suivante : (1101)2 + (110)2
2C2. La soustraction
La soustraction de deux bits se déroule de la façon suivante :
0 – 0 = 0
0 – 1 = 1 et une retenue de -1.
1 – 0 = 1
1 – 1 = 0
On souhaite effectuer l’opération suivante : (1101)2 - (110)2
Nous en avons fini avec la base 2. Passons maintenant à la base 16.
3. L’hexadécimal (base 16)
La particularité de la base 16, comparé à la base 10 et à la base 2, est d’avoir un alphabet plus étendu (16 symboles) :
Tableau 4 : correspondances base 16, base 10, base 2
Oui, la curiosité de cette base est d’introduire des lettres pour les chiffres dépassant le 9.
C’est assez troublant, surtout lorsque l’on fait des calculs. Mais, je vous assure que c’est une pure histoire de convention.
L’hexadécimal est très souvent utilisé en informatique pour visualiser une série d’informations numériques (vidages mémoires). En effet, elle est plus condensée que le binaire.
Pour visualiser un octet, il suffit toujours de deux symboles hexadécimaux (contre huit symboles en binaire).
Par exemple :
Valeur remarquable à connaître : (FF)16 = (1111 1111)2 = (255)10
4. Les conversions de base
L’être humain et la machine ne raisonnent pas dans la même base de numération, nous serons donc souvent amenés à faire des conversions.
4A. Conversion en binaire
4A1. Du décimal au binaire
Prenons un exemple. Pour convertir (25)10 en binaire, on fait des divisions entières successives par la base :
Lorsque l’on ne peut plus diviser, on s’arrête. Le résultat est constitué des restes des divisions lus de droite à gauche. Ici, on obtient : (25)10 = (1 1001)2
4A2. Du binaire au décimal
Pour convertir (10 1001)2 en décimal, on décompose le nombre en puissances de deux :
Tableau 5
Donc, (10 1001)2 = (41)10
4B. Conversion en hexadécimal
4B1. Du décimal à l’hexadécimal
Pour convertir (200)10 en hexadécimal, on fait des divisions entières successives par la base :
Comme pour le binaire, on lit le résultat de droite à gauche, soit (12 8)16. Mais attention, le « chiffre » 12 n’existe pas en hexadécimal, on doit indiquer le chiffre « C ». Le résultat est donc (C8)16.
Donc, (200)10 = (C8)16.
4B2. De l’hexadécimal au décimal
Pour convertir (1B 2C)16 en décimal, on décompose le nombre en puissances de seize :
Donc, (1B 2C)16 = (6 956)10
4B3. De l’hexadécimal au binaire et réciproquement
Chaque symbole hexadécimal correspond à des paquets de 4 bits. Par exemple, pour le nombre (ABCD)16 :
Donc, (ABCD)16 = (1010 1011 1100 1101)2
À retenir
Vous devez être capable de convertir des nombres exprimés dans l’une des trois bases de numération que nous venons d’étudier vers n’importe laquelle de ces bases.
Exercices Corrigés Systèmes de numération - TP et Solution Système de numération
Article plus récent Article plus ancien