Systèmes de Numération & Codage
Objectif :
L’électronicien est amené à manipuler des valeurs exprimées dans différentes bases (notamment avec les systèmes
informatiques). Il est essentiel de posséder quelques notions sur les systèmes de numération en général et sur les systèmes
binaire et hexadécimal en particulier.
1/ Quelques définitions :
DIGIT : Contraction de « digital unit » unité digitale. Un digit est un élément d’information numérique de base quelconque.
ex : Les nombres 1644 (base 10) et A84F (base 16) sont constitués chacun de 4 digits.
POIDS D’UN DIGIT : La valeur de chaque digit dépend de sa position. A chaque rang (position), est affecté un poids. Les positions des digits d’un nombre écrit en base B ont pour poids des puissances de B. (voir § suivant)
BIT : Contraction de « binary digit » digit binaire. Un bit ne peut prendre que deux états 0 ou 1.
ex : le nombre binaire 10100101 est constitué de 8 bits.
MSD : C’est le digit le plus significatif, de poids le plus fort (Most Significant Digit).
ex : pour le nombre A4F5, le MSB est un
LSD : C’est le digit le moins significatif, de poids le plus faible (Least Significant Digit).
ex : pour le nombre A4F5, le LSB est un
MOT : Un MOT est l’association (concaténation) de plusieurs digits ou bits (peut être aussi appelé courant un « nombre ») -> un mot de 4 bits s’appelle un quartet; ex : 1010 -> un mot de 8 bits s’appelle un octet; ex : 1011 0110
BASE : Un nombre est écrit en base B, chacun de ses digits peut être écrit avec B symboles différents :
Valeurs en base 10 [10 symboles]: 0 1 2 3 4 5 6 7 8 9
Symboles en base 16 [16 symboles]: 0 1 2 3 4 5 6 7 8 9 A B C D E F
CAPACITE DE COMPTAGE : Avec N digits écrits en base B, on peut compter de 0 à BN-1, soit BN nombres différents.
ex1 : avec un nombre de 3 digits en base 10, on peut compter de 0 à 9 9 9 (= 103 – 1 ), soit 103 nombres différents.
ex2: avec un nombre de 4 digits en base 2, on peut compter de 0 à 15 (= 24 – 1 ). soit 103 nombres différents. 2/ Expression générale d’un nombre entier positif N (décomposition) :
De nombreux systèmes de numération sont utilisés en électronique numérique. Les plus courants sont les systèmes de numération suivants :
– Binaire (Base 2) – Décimal ( Base 10) – Hexadécimal (Base 16)
Systèmes de Numération & Codage – page 1 M. BERNARD – édité le 03/09/2008
– Octal (Base 8)
2.1/ Le système de numération « Décimal »
Le système de numération que nous employons couramment utilise 10 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
On l’appelle pour cela « système décimal » ou système à base 10.
Dans ce système, un nombre peut être décomposé en puissance de 10.
Par exemple décomposons le nombre 546 :
546 = 5 x 100 + 4 x 10 + 6 x 1
– Le digit « 6 », situé au premier rang à partir de la droite a une valeur de 6
– Le digit « 4 », situé au deuxième rang a une valeur de 40.
– Le digit « 5 », situé au troisième rang a une valeur de 500.
Ainsi, chaque digit a un « poids » différent selon son rang :
– au premier rang (rang de niveau 0) : le poids est de 1 (ou 100),
– au deuxième rang (rang de niveau 1) : le poids est de 10 (ou 101),
– et au troisième rang (rang de niveau 2) le poids est de 100 (ou 102).
Le poids est la puissance nième de 10 ( 10n ) si on numérote les rangs de droite à gauche et en commençant par le rang n° 0.
Exercice : Décomposer les nombres suivants sous forme de puissance de 10 :
28 = 2x 101 + 8×100
4509 = 4x 103 + 5×102+ 0x101+ 9×100
60123 = 6x 104 + 0x103+ 1×102+ 2×101+ 3×100
2.2/ Généralisation : Décomposition d’un nombre
Les nombres tels que nous les utilisons sont, en réalité, une convention d’écriture. Tout nombre entier positif peut s’écrire sous la forme d’un polynôme arithmétique.
N = an x Bn + an-1 x Bn-1 + …….+ a1 x B1 + ao x B0
où B est la base, a est le chiffre de rang n et n représente le poids.
Dans la base B, on a besoin de B symboles pour écrire tous les nombres.
2.3/ Les autres bases de numération utilisées
A la place du décimal, nous pouvons utiliser la numération binaire, octale ou l’hexadécimale :
- La base 2 (binaire) est employée pour traduire les états d’un système logique [0 ou 1, tout ou rien, juste ou faux…]
- La base 8 (octal) autrefois très utilisée, elle tend aujourd’hui à disparaître au profit de la base 16 suite à l’évolution technologique des composants (16 bits et +)
- La base 16 (hexadécimal) est apparue avec la logique microprogrammée et les microprocesseurs. Elle
Systèmes de Numération & Codage – page 2 M. BERNARD – édité le 03/09/2008
permet de traduire plus facilement un nombre binaire et autorise une représentation plus conviviale des grands nombres.
- La base 10 (décimal) est universellement employée par l’homme depuis qu’il sait compter sur ses doigts (10 doigts…)
Récapitulatif des bases :
Base Système Nbre de
Symboles utilisés symboles
2 Binaire 2 0 1
8 Octal 8 0 1 2 3 4 5 6 7
10 Décimal 10 0 1 2 3 4 5 6 7 8 9
16 Hexadécimal 16 0 1 2 3 4 5 6 7 8 9 A B C D E
F
Il est important de savoir convertir un nombre exprimé dans une base vers une autre.
Tableau de correspondance entre les différentes bases pour les premières valeurs :
Base 2 Base 8 Base 16 Base 10
0000 0000 0000 00 0
0000 0001 0001 01 1
0000 0010 0002 02 2
0000 0011 0003 03 3
0000 0100 0004 04 4
0000 0101 0005 05 5
0000 0110 0006 06 6
0000 0111 0007 07 7
0000 1000 0010 08 8
0000 1001 0011 09 9
0000 1010 0012 A 10
0000 1011 0013 B 11
0000 1100 0014 C 12
0000 1101 0015 D 13
0000 1110 0016 E 14
0000 1111 0017 F 15
0001 0000 0020 10 16
0001 0001 0021 11 17
0001 0010 0022 12 18
0001 0011 0023 13 19
0001 0100 0024 14 20
Systèmes de Numération & Codage – page 3 M. BERNARD – édité le 03/09/2008
3/ Conversion d’une base dans une autre (transcodage)
3.1/ Conversion d’un nombre en décimal vers son équivalent en binaire [(N)10 -> (N)2]
La méthode consiste à répéter la division par 2 du nombre décimal à convertir et au report des restes jusqu’à ce que le quotient soit 0. Le nombre binaire résultant s’obtient en écrivant le premier reste à la position du bit de poids le plus faible (LSB = Least Significant Bit) et le dernier à la position du bit de poids le plus fort (MSB = Most Significant Bit).
Exemple : conversion du nombre décimal 19 en binaire
(19)10 = (………)2 ?
LSB 19 2
1 9 2
1 4 2
0 2 2
0 1 2
1 0 => on arrête !
MSB
D’où (19)10 = (10011)2
Exercice : Quel est le code binaire correspondant à (65)10 et (41)10 ?
(65)10 = ( 100 0001 )2
(41)10 = ( 10 1001 )2
Systèmes de Numération & Codage – page 4 M. BERNARD – édité le 03/09/2008
3.2/ Conversion d’un nombre en binaire vers son équivalent en décimal [(N)2 -> (N)10]
Il s’agit ici d’appliquer la formule donné au paragraphe 2.2 en prenant B= 2.
(1101)2= 1x23 + 1x22 + 0x21 + 1x20
= 1x8 + 1x4 + 0x2 + 1x1 = (13)10
Table des puissances
Puissance de 2
Puissance de 8
Puissance de 10
Puissance de 10
Puissance de 16
Puissance de 16
Puissance de 16
Exercice : Quel est le code décimal correspondant à (1 1001 1000)2 et (1010 1010)2 ?
(1 1001 1000)2 = ( 408 )10
(1010 1010)2 = ( 170 )10
3.3/ Conversion d’un nombre en décimal vers son équivalent en octal ou hexadécimal [(N)10 -> (N)8 ou (N)16]
Il s’agit ici d’appliquer la même méthode que pour le passage du décimal vers le binaire ( § 3.1) en divisant successivement le nombre décimal par 8 (conversion en octal) ou par 16 (conversion en hexadécimal).
Exercice : Convertir les nombres suivants :
(1028)10 = ( 2004 )8
(61)10 = ( 3D )16
(4095)10 = ( 7777 )8
(2748)10 = ( FFF )16
20 = 1 21 = 2 22 = 4 23 = 8 24 = 16 25 = 32 26 = 64 27 = 128 28 = 256 29 = 512 210 = 1024 211= 2048 212 = 4096
80 = 1 81 = 8 82 = 64 83 = 512 84 = 4096 85 = 32768
100 = 1 101 = 10 102 = 100 103 = 1000 104 = 10000
100 = 1 101 = 10 102 = 100 103 = 1000 104 = 10000
160 = 1 161 = 16 162 = 256 163 = 4096 164 = 65536
160 = 1 161 = 16 162 = 256 163 = 4096 164 = 65536
160 = 1 161 = 16 162 = 256 163 = 4096 164 = 65536
Systèmes de Numération & Codage – page 5 M. BERNARD – édité le 03/09/2008
3.4/ Conversion d’un nombre en octal ou hexadécimal vers son équivalent en décimal [(N)8 -> (N)10 ou (N)16 -> (N)10]
Il s’agit ici d’appliquer la même méthode que celle pour le passage d’un nombre binaire en décimal ( § 3.2), avec dans la formule du § 2.2 respectivement B=8 ou B=16.
Exercice : Convertir les nombres suivants :
(1027)8 = ( 535 )10
(61F)16 = ( 1567 )10
3.5/ Récapitulatif méthode à employer pour le transcodage
Base de départ
Base d’arrivée Méthode de transcodage
3.6/ Conversions directes binaire <=> hexadécimal
La conversion de la base 2 à la base 16 (et inversement) se fait aisément, la base 16 étant un multiple entier de la base 2. Elle permet de représenter sous une forme réduite un nombre binaire.
24 = 16 => un groupe binaire de 4 bits est transcodable directement en un digit hexadécimal.
Méthode : 0n divise le nombre binaire en tranches de 4 bits (à partir du LSB). Chacun des quartets est ensuite converti en un digit hexadécimal par simple sommation pondérée.
Exemple 1 :
23 22 21 20 23 22 21 20 23 22 21 20 (111000110101)2 = 1 1 1 0 0 0 1 1 0 1 0 1
(1110 0011 0101)2 = ( E 3 5 )16
Exemple 2 : (D4C7)16 = D 4 C 7
1101 0100 1100 0111 = (1101 0100 1100 0111)2
3.7 / Conversion Décimal <=> code BCD (Décimal Codé Binaire)
Le code BCD est utilisé pour les afficheurs lumineux, son principe repose sur le codage de chaque digit décimal (chiffre) en son équivalent en binaire sur 4 bits (et inversement).
Exemple :
(1 2 7)10 = ( 0001 0010 0111)BCD
Décimal
Binaire Méthode de la division par 2 du nombre
Octal Méthode de la division par 8 du nombre
Hexadécimal Méthode de la division par 16 du nombre
Binaire (N)10= an x Bn + an-1 x Bn-1 + …….+ a1 x B1 + ao x B0 avec B=2
Octal Décimal
(N)10= an x Bn + an-1 x Bn-1 + …….+ a1 x B1 + ao x B0 avec B=8
Hexadécimal (N)10= an x Bn + an-1 x Bn-1 + …….+ a1 x B1 + ao x B0 avec B=16
Systèmes de Numération & Codage – page 6 M. BERNARD – édité le 03/09/2008
Exercice : Effectuer les transcodages suivants :
( 5 7 6)10 = ( 0101 0111 0110 )BCD
( 9 9 )10 = ( 1001 1001 )BCD
( 1000 0011 0110)BCD = ( 8 3 6 )10
Exercice : Combien faut-il de bits pour représenter un nombre décimal de 5 chiffres dans le code BCD ?
Il faut 5 x 4 bits soit 20 bits.
- / Le code de GRAY
Le « code à distance unité » ou code de Gray, également appelé code reflex ou code binaire réfléchi, est un code non pondéré, c’est à dire que les positions binaires ne sont affectées d’aucun poids.
Le code GRAY est aussi utilisé dans l’écriture des tableaux de Karnaugh (c’est pour plus tard…)
Principe d’obtention du code GRAY : Si l’on dispose d’un ensemble de 2N mots réalisant un code de Gray , il est facile d’obtenir un ensemble de 2 (N + 1) mots respectant le même code.
Ce nouvel ensemble est constitué : – d’une part des mots-code du code initial , précédés de « 0 »’ – d’autre part des mots-code du même code initial , présentés dans l’ordre inverse et précédés de « 1 »
Décimal Binaire Code Gray
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
8 1000 1100
9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000
16 17 18 19
Systèmes de Numération & Codage – page 7 M. BERNARD – édité le 03/09/2008
- / Les autres codes.
5.1/ Le code ASCII
Il tire son appellation de l’abréviation américaine : American Standard Code Interchange Information.
C’est un code qui permet la représentation des caractères alphanumériques d’un micro-ordinateur, chaque caractère étant codé par un mot de 8 bits appelé octet .
Ce code est très répandu dans le milieu de la micro-informatique.
Table des caractères ASCII
- 2/ Le Code Barre
Ce principe de codage, apparu dans les années 80, est largement utilisé sur les produits de grande consommation, car il facilite la gestion des produits.
Le marquage comporte un certain nombre de barres verticales ainsi que 13 chiffres :
– Le 1er chiffre désigne le pays d’origine : 3 = France, 4 = Allemagne, 0 = U.S.A, Canada etc … – Les cinq suivants sont ceux du code « fabricant », – Les six autres sont ceux du code de l’article, – Le dernier étant une clé de contrôle
Les barres représentent le codage de ces chiffres sur 7 bits , à chaque chiffre est attribué un ensemble de 7 espace blancs ou noirs.
REMARQUE : D’autres codes moins utilisés existent comme le code Aïken, le code EXCESS 3 etc…
Systèmes de Numération & Codage – page 8 M. BERNARD – édité le 03/09/2008
- / Représentation des nombres signés en binaire
Pour le moment, nous n’avons parlé que de nombres positifs. Il peut s’avérer indispensable de traiter également des nombres négatifs. Le langage binaire ne connaît pas le signe – (!)
Il existe 3 conventions pour exprimer les nombres signés dans le système binaire : – Représentation de la valeur et du signe indépendamment (binaire signé), – Représentation en complément à 1, – Représentation en complément à 2.
6.1/ Le binaire signé
L’une des méthodes est de réserver un bit pour indiquer le signe du nombre, d’où l’appellation de binaire signé. Le bit réservé au signe est toujours le bit le plus à gauche. (attention : Il ne correspond plus au MSB !) Pour le bit de signe et par convention, le 0 représente le + et le 1 le –.
Exemple : (-23)10 = (1 0010111) ; (+23)10 = (0 0010111)
6.2/ Complément à 1 d’un nombre binaire
Pour calculer le complément à 1(CA1) d’un nombre binaire, il suffit de complémenter chaque bit de ce nombre c’est-à-dire remplacer les 1 par des 0 et les 0 par des 1. Attention : En notation signé, le bit de signe reste inchangé (ne pas le complémenter)
Exemple :
(-23)10 = s’écrit (1 0010111) en binaire signé (ci-dessus) et son complément à 1 est (1 1101000), le bit de signe étant inchangé.
6.2/ Complément à 2 d’un nombre binaire
Pour calculer le CA2 d’un nombre binaire N, on ajoute la valeur 1 au CA1 de N. (CA2 = CA1 + 1)
Exemple 1 :
Nombre binaire N (non signé) : N = 0101 Complément à 1 de N : (N)CA1= 1010 Complément à 2 de N : (N)CA2 = 1011
Exemple 2 :
(-23)10 = s’écrit (1 0010111) en binaire signé, son complément à 1 est (1 1101000), son complément à 2 est (1 1101001).
- / Calcul arithmétiques
7.1 Addition binaire
L’addition de 2 nombres binaires est parfaitement analogue à l’addition de 2 nombres décimaux. Il faut commencer par le bit de poids le plus faible en utilisant l’algorithme suivant :
0 + 0 = 0 1 + 0 = 1
1 + 1 = 10 (= 0 + report de 1 sur la gauche) 1 + 1 + 1 = 11 (= 1 + report de 1 sur la gauche)
Systèmes de Numération & Codage – page 9 M. BERNARD – édité le 03/09/2008
Exercice :
Faire les additions suivantes en binaire
5 0101 15 1111 + 3 + 0011 + 11 + 1011 = 8 = 1000 = 26 = 11010
7.2 Soustraction binaire
Dans le cas de la soustraction de deux nombres binaires non signés on peut utiliser l’algorithme suivant :
0 – 0 = 0 0 – 1 = 1 (avec un report de 1 à retrancher au chiffre supérieur)
1 – 0 = 1 1- 1 = 0
Exemple : opération 7 – 2
0111 – 0010 = 0101 (= 5 !)
Une autre méthode consiste faire une addition de deux nombres de signes contraires
DEUX CAS PEUVENT SE PRESENTER :
1er cas : La grandeur du nombre positif est supérieure à celle du nombre négatif
Par exemple (+17)10 = (0 10001)2 signé et (-12)10 = (1 01100)2 signé (-12)10 étant négatif il faut le remplacer par son complément à 2
Calcul du complément à 2 de (-12)10 :
Complément à 1 de (-12) = ( 1 10011 )CA1 Complément à 2 de (-12) = ( 1 10100 )CA2
Il reste à faire l’addition avec le complémentant à 2 du nombre à soustraire, sans oublier son bit de signe.
1er nombre : 0 1 0 0 0 1 (+17)2 signé 2eme nombre : + 1 1 0 1 0 0 (-12)CA2
1 0 0 0 1 0 1 Bit de signe
Débordement à éliminer
Remarque : nous avons additionné les bits de signe et la retenue ; cela peut entraîner un débordement comme dans le cas ci-dessus, un débordement qui est toujours rejeté.
2ème cas : La grandeur du nombre positif est inférieure à celle du nombre négatif
Par exemple (-17)10 = (1 10001)2 signé et (+12)10 = (0 01100)2 signé comme dans le cas précédent calculons le complément à 2 de (-17)10
Complément à 1 de (-17) = ( 1 01110 )CA1 Complément à 2 de (-17) = ( 1 01111 )CA2
Il reste à faire l’addition avec le complémentant à 2 du nombre à soustraire, sans oublier son bit de signe.
Systèmes de Numération & Codage – page 10 M. BERNARD – édité le 03/09/2008
1er nombre : 1 0 1 1 1 1 (-17)CA2 2eme nombre : + 0 0 1 1 0 0 (+12)2 signé
1 1 1 0 1 1
bit de signe
Le résultat de l’addition est négatif (bit de signe = 1) [c’est d’ailleurs ce qui le différencie du 1er cas]. Ce résultat est écrit sous la forme du complément à 2.
Pour passer du complément à 2 au binaire signé il faut utiliser la méthode suivante :
– Soustraire 1 au nombre binaire (passage du complément à 2 au complément à 1), – Complémenter chaque bit un à un sauf le bit de signe (passage au binaire signé).
Dans l’exemple précédent le résultat donne :
Résultat : ( 1 1 1 0 1 1 )CA2 -> ( 1 1 1 0 1 0 )CA1 -> ( 1 0 0 1 0 1 )2 signé = ( – 5 )10 (CQFD !)
Systèmes de Numération & Codage – page 11 M. BERNARD – édité le 03/09/2008
télécharger gratuitement cours de Systèmes de Numération & Codage