Informatique Industrielle : Système de Numeration
Télécharger PDFIntroduction aux Systèmes de Numération et au Codage
La création de la numération est un des faits les plus marquants de l'histoire de l'humanité. Si la plupart des civilisations ont adopté le système décimal, c'est qu'il a toujours été naturel de compter sur ses doigts.
I. Systèmes de Numération
Les systèmes de numération permettent de compter et de représenter des objets par des nombres. Trois notions fondamentales définissent un système :
- la base B, un nombre entier quelconque
- les digits, des caractères distincts représentant chaque élément de la base (il y en a B)
- le poids de chaque digit selon son rang
L'écriture d'un nombre A dans la base B se fait sous la forme : (A)B = a3a2a1a0 (4 chiffres), où ai < B pour tout i.
1. Système décimal
Dans la base 10, il y a dix digits : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9, appelés chiffres. Par exemple, le nombre 1234 en base 10 se calcule comme suit :
(1234)10 = 4 × 100 + 3 × 101 + 2 × 102 + 1 × 103.
Les poids des digits sont :
- le premier digit : 100 = 1 (unité)
- le deuxième digit : 101 = 10 (dizaine)
- le troisième digit : 102 = 100 (centaine)
- le quatrième digit : 103 = 1000 (millier)
2. Système binaire
Dans ce système, la base B vaut 2, et il y a donc 2 digits : 0 et 1, appelés bits (binary digit). Par exemple, le nombre 1011 en binaire signifie :
(1011)2 = 1 × 20 + 0 × 21 + 1 × 22 + 1 × 23 = 1 + 2 + 8 = (11)10.
3. Système octal
Ce système utilise une base de 8, avec 8 digits : 0, 1, 2, 3, 4, 5, 6 et 7. Il n'y a pas de chiffres 8 et 9. Par exemple, le nombre 275 en octal se calcule ainsi :
(275)8 = 5 × 80 + 7 × 81 + 2 × 82 = 5 + 56 + 128 = (189)10.
4. Système hexadécimal
Ce système a une base de 16, avec 16 digits : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F. Les dix premiers digits (0 à 9) sont les chiffres du système décimal, et les autres (A à F) sont les premières lettres majuscules de l'alphabet.
Par exemple, le nombre BAC en hexadécimal se calcule comme suit :
(BAC)16 = C × 160 + A × 161 + B × 162 = 12 + 160 + 2816 = (2988)10.
5. Changement de base
a. Conversion octal ↔ binaire
On remarque que 8 = 23. Chaque digit octal correspond donc à un ensemble de 3 bits en binaire.
Exemple : (763)8 = (111)(110)(011) = (111110011)2.
La conversion inverse se fait en regroupant les bits par ensembles de 3, à partir de la droite.
Exemple : (10111011101)2 = (2735)8.
b. Conversion hexadécimal ↔ binaire
On observe que 16 = 24. Chaque digit hexadécimal correspond donc à un ensemble de 4 bits en binaire.
Exemple : (A28)16 = (101000101000)2.
La conversion inverse se fait en regroupant les bits par ensembles de 4, à partir de la droite.
Exemple : (101110011101001)2 = (5CE9)16.
L'expression hexadécimale d'un nombre binaire est couramment utilisée pour interpréter des résultats fournis par un microprocesseur.
c. Conversion décimal → binaire, octal ou hexadécimal
Pour convertir un nombre décimal en binaire, octal ou hexadécimal, on utilise des divisions successives par la base (2, 8 ou 16). Les restes des divisions, lus à l'envers, forment le nombre dans la nouvelle base.
Exemple : conversion de (229)10 en binaire.
229 ÷ 2 = 114 reste 1
114 ÷ 2 = 57 reste 0
57 ÷ 2 = 28 reste 1
28 ÷ 2 = 14 reste 0
14 ÷ 2 = 7 reste 0
7 ÷ 2 = 3 reste 1
3 ÷ 2 = 1 reste 1
1 ÷ 2 = 0 reste 1
Le nombre binaire est donc (11100101)2.
La même méthode s'applique pour les conversions décimal → octal et décimal → hexadécimal.
d. Conversion d'une base X vers une base Y
Si X = Bm et Y = Bn, on convertit d'abord de la base X vers la base B, puis de la base B vers la base Y.
Sinon, on convertit d'abord de la base X vers la base 10, puis de la base 10 vers la base Y.
II. Codage
On distingue deux catégories de codes : les codes numériques, qui permettent de coder uniquement des nombres, et les codes alphanumériques, qui permettent de coder toute information (lettres, chiffres, symboles).
1. Codes numériques
a. Code binaire naturel
Le code binaire naturel exprime un nombre selon le système binaire. Quelques notions :
- un quartet : mot de 4 bits (0 à 15)
- un octet : mot de 8 bits (0 à 255)
- un kilo : unité de capacité de traitement numérique (1024 bits : 0 à 1023)
Inconvénients :
- nécessite une grande quantité de bits pour exprimer un nombre
- peut introduire des erreurs lors du codage de grandeurs variant de façon ordonnée
b. Code binaire réfléchi (Code Gray)
Dans ce code, un seul bit change entre deux codages successifs. Il est construit en inversant chaque fois les combinaisons existantes lors de l'ajout d'un bit à gauche.
Exemple de conversion entre code binaire naturel et code binaire réfléchi sur 3 bits :
| Code binaire naturel | Code binaire réfléchi |
|---|---|
| 000 | 000 |
| 001 | 001 |
| 010 | 011 |
| 011 | 010 |
| 100 | 110 |
| 101 | 111 |
| 110 | 101 |
| 111 | 100 |
c. Code décimal (BCD)
Chaque chiffre (0 à 9) est codé en binaire sur 4 bits. Ce code est appelé DCB (Décimal Codé en Binaire) ou BCD (Binary Coded Decimal).
Exemple : (1297)10 = (0001 0010 1001 0111)BCD.
d. Complément à 2
Le complément à 2 permet de représenter des nombres négatifs en binaire. Pour obtenir le complément à 2 d'un nombre binaire A à n bits :
- on inverse tous les bits (complément à 1)
- on ajoute 1 au résultat
Exemple de conversion en complément à 2 sur 4 bits :
| Positif | Négatif | |
|---|---|---|
| 0 | 0000 | |
| 1 | 0001 | 1111 |
| 2 | 0010 | 1110 |
| 3 | 0011 | 1101 |
| 4 | 0100 | 1100 |
| 5 | 0101 | 1011 |
| 6 | 0110 | 1010 |
| 7 | 0111 | 1001 |
| 8 | 1000 | 0110 (pas de 8 en complément à 2 sur 4 bits) |
e. Nombres fractionnaires
Pour convertir un nombre fractionnaire en binaire, on multiplie la partie fractionnaire par la base (2) jusqu'à ce qu'elle soit nulle ou que la précision souhaitée soit atteinte.
Exemple : conversion de (54,25)10 en base 2.
- Partie entière : (54)10 = (110110)2 (par divisions successives)
- Partie fractionnaire : 0,25 × 2 = 0,50 → a-1 = 0
- 0,50 × 2 = 1,00 → a-2 = 1
- 0,00 × 2 = 0,00 → a-3 = 0
Résultat : (54,25)10 = (110110,01)2.
f. Représentation des nombres réels
Le codage en complément à deux sur n bits permet de représenter un intervalle de 2n valeurs. Pour élargir cet intervalle, on utilise la représentation à virgule flottante.
Exemple de structure pour 32 bits (norme IEEE 754) :
- 1 bit pour le signe
- 8 bits pour la fraction
- 23 bits pour l'exposant
La valeur d'un nombre est donnée par : (-1)S × 1,f × 2E, où S est le signe, E l'exposant et f la fraction.
2. Codes alphanumériques
Les codes alphanumériques permettent de transmettre des informations quelconques, incluant au moins 36 caractères (10 chiffres + 26 lettres). Ils nécessitent donc au moins 6 bits et sont souvent à 8 bits.
a. Codes ASCII
Le code ASCII (American Standard Code for Information Interchange) utilise 7 bits pour les informations et 1 bit de parité. Il est employé pour l'échange d'informations entre une unité centrale et des périphériques (clavier, imprimante, etc.).
Exemples de caractères ASCII :
- A : 01000001
- B : 01000010
- C : 01000100
- 0 : 00110000
- 1 : 00110001
Points importants :
- Les codes de 0 à 31 ne représentent pas de caractères affichables (caractères de contrôle)
- Les lettres sont classées par ordre alphabétique (65 à 90 pour les majuscules, 97 à 122 pour les minuscules)
- Le passage des majuscules aux minuscules se fait en ajoutant 32 (25) au code ASCII
- Les chiffres sont rangés de 48 à 57 et leurs 4 bits de poids faibles définissent leur valeur binaire
FAQ
Quelle est la base du système décimal ?
La base du système décimal est 10.
Comment convertir un nombre octal en binaire ?
On convertit chaque digit octal en un ensemble de 3 bits binaires.
Quelle est la méthode pour obtenir le complément à 2 d'un nombre binaire ?
On inverse tous les bits du nombre, puis on ajoute 1 au résultat.