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 + 8x100
4509 = 4x 103 + 5x102+ 0x101+ 9x100
60123 = 6x 104 + 0x103+ 1x102+ 2x101+ 3x100
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
2
8
Binaire
Octal
2
8
Symboles utilisés
0
1
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
Publicité
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
0000 0001
0000 0010
0001
0002
0000 0011
0003
0000 0100
0004
0000 0101
0000 0110
0000 0111
0000 1000
0005
0006
0007
0010
0000 1001
0011
0000 1010
0012
0000 1011
0000 1100
0000 1101
0000 1110
0013
0014
0015
0016
0000 1111
0017
0001 0000
0020
0001 0001
0001 0010
0021
0022
0001 0011
0023
0001 0100
0024
00
01
02
03
04
05
06
07
08
09
A
B
C
D
E
F
10
11
12
13
14
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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).
Publicité
Exemple : conversion du nombre décimal 19 en binaire
(19)10 = (………)2 ?
LSB
19
2
1
9
1
2
4
0
MSB
D’où (19)10 = (10011)2
2
2
0
2
1
1
2
0 => on arrête !
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 16
80 = 1
81 = 8
82 = 64
83 = 512
84 = 4096
85 = 32768
100 = 1
101 = 10
102 = 100
103 = 1000
104 = 10000
160 = 1
161 = 16
162 = 256
163 = 4096
164 = 65536
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
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
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
Binaire
Méthode de la division par 2 du nombre
Décimal
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
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.
Publicité
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
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.
4. / 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
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Systèmes de Numération & Codage - page 7
M. BERNARD - édité le 03/09/2008
5. / 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
5. 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
6. / 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 - (!)
Publicité
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).
7. / 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
3
8
+
=
0101
0011
1000
+
=
15
11
26
+
=
1111
1011
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 - 1 = 1 (avec un report de 1 à retrancher au chiffre supérieur)
1- 1 = 0
0 - 0 = 0
1 - 0 = 1
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
2eme nombre : + 1 1 0 1 0 0
1 0 0 0 1 0 1
(+17)2 signé
(-12)CA2
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
2eme nombre : + 0 0 1 1 0 0
1 1 1 0 1 1
(-17)CA2
(+12)2 signé
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