Traitement numérique (microprocesseur)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Cet article est utile pour les élèves de collèges et de lycées techniques. Le microprocesseur, cerveau de l'ordinateur, effectue tous les calculs.

Système de numération[modifier | modifier le code]

Base[modifier | modifier le code]

Une base B caractérise un système de numération dans lequel tout nombre N peut s'écrire: N = mnBn + mn-1Bn-1 + M1B + m0B0 avec tous les coefficients m < B.

Exemples[modifier | modifier le code]

  • Le nombre 341(8) en base octale s'écrit: 3 × 8² + 4 × 81 + 1 × 80
  • Le nombre 3AF8(16) en base hexadécimale s'écrit: 3 × 163 + A × 162 + F × 161+8 × 160

Tableau numérique[modifier | modifier le code]

Base décimale Base binaire Base octale Base hexadécimale
0 0 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 11
18 10010 22 12
... ... ... ...

Pondération[modifier | modifier le code]

Représenter un nombre NB de n chiffres (ou symboles), dans une base B donnée, consiste en l'écriture en ligne de ces n chiffres de façon telle que: NB = (§)n-1… (§)i ... (§)5 (§)4 (§)3 (§)2 (§)1 (§)0

Avec: § : un quelconque des B chiffres ou symboles de la base, n - 1, .... i, 5, 4, 3, 2, 1, 0 indices indiquant le rang ou la position d'ordre du chiffre à partir de la droite.

La pondération permet l'attribution d'une valeur numérique ou poids à chacun des rangs. Ce poids P dépend de la base dans laquelle est représenté le nombre et a pour valeur: P=Brang

Exemple[modifier | modifier le code]

Dans le nombre décimal 425, le chiffre 5 est en position d'ordre 1 ou rang 0, le chiffre 2 en position d'ordre 2 ou rang 1 et le chiffre 4 en position d'ordre 3 ou rang 2.

4 2 5 nombre

2 1 0 rang

Pour la base 10, système décimal :

  • le premier rang ou rang 0 a pour poids 100 soit 1, c'est le rang des unités,
  • le rang suivant, rang 1 a pour poids 101 soit 10 (rang des dizaines),
  • le rang 2 a pour poids 102 soit 100 (rang des centaines),
  • le rang 3 a pour poids 103 Soit 1000 (rang des milliers), et ainsi de suite.

Note[modifier | modifier le code]

Dans le système binaire on ne parle plus d'unité, de dizaine ou de centaine mais de bit (contraction de l'anglais binary digit, qui signifie rang binaire). On distingue ainsi le bit 0, le bit 1, le bit 2, le bit 3 ... L'équivalent français de bit est élément binaire ou eb, ce terme est relativement peu employé.

Code binaire pur[modifier | modifier le code]

Le code binaire pur ou code binaire naturel est un code pondéré dans lequel les poids sont représentés par les puissances successives de deux. La valeur décimale du nombre binaire représenté s'obtient directement par addition du poids affecté à chaque bit de valeur 1.

Note[modifier | modifier le code]

Un groupe de huit bits est appelé octet (en anglais byte of 8 bits). Un groupe de quatre bits est appelé quartet (en anglais byte of 4 bits).

Exemple[modifier | modifier le code]

Le nombre binaire 110011 a pour valeur : 1 × 25 + l × 24 + 0 × 2³ + 0 × 2² + 1 × 21 + 1 × 20 Soit en décimal : 32 + 16 + 0 + 0 + 2 + 1 = 51

24 (16) 2³ (8) 2² (4) 21 (2) 20 (1) Équivalent décimal N(10)
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 2 + 1 ou 3
0 1 0 0 4
0 1 0 1 4 + 1 ou 5
0 1 1 0 4 + 2 ou 6
0 1 1 1 4 + 2 + 1 ou 7
1 0 0 0 8
1 0 0 1 8 + 1 ou 9
1 0 1 0 8 + 2 ou 10
1 0 1 1 8 + 2 + 1 ou 11
1 1 0 0 8 + 4 ou 12
1 1 0 1 8 + 4 + 1 ou 13
1 1 1 0 8 + 4 + 2 ou 14
1 1 1 1 8 + 4 + 2 + 1 ou 15
1 0 0 0 0 16
1 0 0 0 1 16 + 1 ou 17
1 0 0 1 0 16 + 2 ou 18

Code de Gray (code binaire réfléchi)[modifier | modifier le code]

Dans le code binaire pur le passage d'une combinaison à l'autre entraîne parfois le changement simultané de plusieurs bits. C'est par exemple le cas pour la transition de l'équivalent décimal 3 à l'équivalent décimal 4 pour laquelle les bits de poids 1 et 2 passent de 1 à 0 et le bit de poids 4 passe de 0 à 1. Pour éviter cet inconvénient, cause d'aléas lorsque le code sert à la représentation de grandeurs physiques à variation continue, informations de position par exemple, il est nécessaire d'imaginer des codes pour lesquels le passage d'une combinaison à la suivante n'implique que la modification d'un bit et d'un seul. De tels codes sont appelés "codes réfléchis". Parmi ceux-ci, le code de Gray est le plus employé.

Plus d'infos sur le Code de Gray sont disponibles sur Internet. Voir sur Google.

Note[modifier | modifier le code]

Un code réfléchi qui est un code non pondéré ne peut être utilisé pour les opérations arithmétiques.

Représentation hexadécimale des nombres binaires[modifier | modifier le code]

La représentation hexadécimale ou représentation à base 16 est une notation condensée des nombres binaires. En remarquant que 24 = 16, on peut représenter un octet binaire à l'aide de l'un des 16 symboles du système hexadécimal. Dans ce système les dix premiers symboles sont identiques à ceux utilisés dans le système décimal : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9, et les six derniers correspondent aux premières lettres de l'alphabet latin : A, B, C, D, E et F, lesquelles valent respectivement : 10, 11, 12, 13, 14 et 15 en base 10.

Transcodage[modifier | modifier le code]

Passage de la base 2 à la base 16[modifier | modifier le code]

Pour représenter en hexadécimal un nombre binaire, il suffit de le découper en groupe de quatre bits. Chacun des bits de ces groupes ayant une pondération s'échelonnant de 20 à 23, leur somme fournit la valeur hexadécimale de chaque groupe.

Exemple[modifier | modifier le code]

Soit le nombre binaire 1011100110101100 à convertir en hexadécimal. Le découpage en quartets de ce nombre donne : 1011 1001 1010 1100

Après pondération, la somme S, bit par bit de chaque groupe de quatre bits est :

2³ (8) 2² (4) 21 (2) 20 (1) S
1 0 1 1 11 Soit B(16)
1 0 0 1 9 Soit 9(16)
1 0 1 0 10 Soit A(16)
1 1 0 0 12 Soit C(16)

Le nombre hexadécimal correspondant au nombre binaire 1011100110101100 est : B9AC

Passage de la base 16 à la base 2[modifier | modifier le code]

Pour convertir en binaire un nombre hexadécimal, il convient de remplacer chacun des symboles hexadécimaux par son quartet binaire équivalent.

Exemple[modifier | modifier le code]

Les trois quartets binaires équivalents au nombre hexadécimal 8D6 sont :

2³ (8) 2² (4) 21 (2) 20 (1)
8 1 0 0 0
D 1 1 0 1
6 0 1 1 0

Le nombre binaire correspondant au nombre hexadécimal 8D6 est : 1000 1101 0110.

Représentation octale des nombres binaires[modifier | modifier le code]

Comme la représentation hexadécimale la représentation octale ou représentation à base 8 est une notation condensée des nombres binaires. En remarquant que 2³ = 8, on peut représenter un triplet binaire à l'aide de l'un des 8 symboles du système octal. Ces huit symboles sont identiques aux huit premiers chiffres du système décimal, soit : 0, 1, 2, 3, 4, 5, 6 et 7.

Pour représenter en octal un nombre binaire, il suffit de le découper en groupe de trois bits ou triplet. Chacun des bits de ces groupes ayant une pondération s'échelonnant de 20 à 2² leur somme fournit la valeur octale de chaque groupe.

Soit le nombre binaire 110101100 à convertir en octal. Le découpage en triplets de ce nombre donne : 110 101 100.

Après pondération, la somme S, bit par bit de chaque groupe est :

2² (4) 21 (2) 20 (1) S
1 1 0 6 Soit 6(8)
1 0 1 5 Soit 5(8)
1 0 0 4 Soit 4(8)

Le nombre octal correspondant au nombre binaire 110101100 est : 654

Représentation binaire codée décimale[modifier | modifier le code]

Article détaillé : Binary coded decimal.

Dans la représentation binaire codée décimale à chacun des éléments décimaux correspond un quartet représentatif de son équivalent binaire.

Ainsi :

  • au 0(10) correspond 0000(2) ;
  • au 1(10) correspond 0001(2) ;
  • au 9(10) correspond 1001(2).

Les valeurs possibles d'un quartet de bits supérieures à neuf 1010(2), 1011(2), 1100(2), 1101(2), 1110(2) et 1111(2), aussi représentées A(16), B(16), C(16), D(16), E(16), F(16), sont invalides et inutilisées dans la représentation binaire codée décimale.

Le code Binaire Codé Décimal (BCD) est un code pondéré. Les poids des bits représentatifs sont :

  • pour le quartet le moins significatif (le premier quartet à droite): 8.4.2.1. ;
  • pour le quartet suivant 80.40.20.10 ;
  • 800.400.200.100. pour le troisième ;
  • et ainsi de suite jusqu'au quartet le plus significatif (le dernier quartet à gauche).

Exemple[modifier | modifier le code]

Le nombre décimal 2001(10) devient en BCD : 0010 0000 0000 0001. Inversement, le nombre BCD 1001 0101 0001 0111 devient en décimal 9517.

Récapitulations[modifier | modifier le code]

Tableau récapitulatif de conversion des systèmes[modifier | modifier le code]

Base décimale Base binaire Base octale Base hexadécimale
0 0 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 11
18 10010 22 12
... ... ... ...

Récapitualtif des méthodes de conversion[modifier | modifier le code]

Conversion binaire - décimal[modifier | modifier le code]

La méthode consiste à décomposer le nombre en puissances décroissantes de 2 en partant du rang le plus haut, soit :

  • 1010(2) = 1 × 2³ + 0 × 2² + 1 × 21 + 0 × 20
  • 1010(2) = 8 + 0 + 2 + 0
  • 1010(2) = 10(10)

Conversion décimal - binaire[modifier | modifier le code]

On effectue des divisions successives par 2 (voir plus en haut).

Conversion hexadécimal - décimal[modifier | modifier le code]

La méthode consiste à décomposer le nombre en puissances décroissantes de 16 en partant du rang le plus haut, soit :

  • BA8(16) = B × 16² + A × 161 + 8 × 160
  • BA8(16) = 11 × 16² + 10 × 161 + 8 × 160
  • BA8(16) = 2816 + 160 + 8
  • BA8(16) = 2984(10)

Conversion décimal - hexadécimal[modifier | modifier le code]

On effectue des divisions successives par 16 (voir plus en haut).

Conversion octal - décimal[modifier | modifier le code]

La méthode consiste à décomposer le nombre en puissances décroissantes de 8 en partant du rang le plus haut, soit :

  • 777(8) = 7 × 8² + 7 × 81 + 7 × 80
  • 777(8) = 448 + 56 + 7
  • 777(8) = 511(10)

Conversion décimal - octal[modifier | modifier le code]

On effectue des divisions successives par 8 (voir plus en haut).

Opérations arithmétiques en base 2[modifier | modifier le code]

Les opérations les plus fréquentes en base 2 sont l'addition et la soustraction. Ces opérations s'effectuent de la même manière que les opérations décimales en utilisant des tables d'addition et de soustraction plus simples.

Addition binaire[modifier | modifier le code]

L'addition est l'opération qui consiste à effectuer, dans un premier temps, la somme Si de deux chiffres binaires de même rang tels que Ai et Bi par exemple, puis, dans un second temps, une deuxième somme entre le résultat précédemment obtenu et la valeur du report ou retenue Ri-1, issu de l’addition aval de rang i - 1.

Exemple[modifier | modifier le code]

Effectuer l'addition de deux nombres binaires A et B tels que :

  • A = 110 (6 en décimal)
  • B = 011 (3 en décimal)

Décomposition de la procédure :

  • au premier rang (20), la retenue en aval est forcément nulle et le total de A et B est bien égal à 1,
  • au rang suivant (21), la retenue en aval est également nulle, le total de A1 et B1, est égal à 0 mais génère un report R1,
  • au troisième rang (2²) au total de A2 et B2 égal à 1 il faut rajouter le report R1 ce qui donne un total définitif de 0 avec un report R2 qui affecte le rang quatre.

Résultat final[modifier | modifier le code]

Le résultat définitif est donc : 1001 soit 9 en décimal (6 + 3 = 9).

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Aucun lien externe pour le moment.