Chapitre I Systèmes de Numération Et Codes

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 9

ch

Chapitre I Système de numération et codes.


Z.HALICHE 1

Chapitre I : Systèmes de Numération et codes


I -- Systèmes de Numération ....................................................................................................................................... 3
I.1 -- Système décimal ............................................................................................................................................. 3
I.2 -- Système Octal ............................................................................................................................................. 3
I.3 -- Système Hexadécimal ............................................................................................................................... 3
I.4 -- Système Binaire Naturel........................................................................................................................... 3
I.5 -- Changement de base .................................................................................................................................. 4
I.5.1 -- Décimal → Binaire................................................................................................................................... 4
I.5.2 -- Décimal → Octal ..................................................................................................................................... 4
I.5.3 -- Décimal → Hexadécimal ........................................................................................................................ 5
I.5.4 -- Octal  binaire ....................................................................................................................................... 5
I.5.5 -- Hexadécimal  binaire ........................................................................................................................ 5
I.6 -- Opérations dans le système Binaire naturel ......................................................................................... 6
I.6.1 -- Représentation des nombres négatifs ............................................................................................... 6
I.6.2 -- La multiplication ...................................................................................................................................... 7
II -- NOTIONS SUR les CODES ................................................................................................................................ 8
II.1 -- Codes décimaux ........................................................................................................................................... 8
II.2 -- Codes réfléchis ........................................................................................................................................... 9
II.2.1 -- Code de Gray .......................................................................................................................................... 9
ch
Chapitre I Système de numération et codes.
Z.HALICHE 2

I -- SYSTEMES DE NUMERATION

I.1 -- Système décimal

Le système décimal est le système à base 10. Pour écrire un nombre dans ce système, on a besoin de 10
symboles qu'on a l'habitude d'appeler chiffres. L'écriture implique l'application d'un principe de position,
tout chiffre placé à gauche d'un autre représente des unités 10 fois plus fortes que cet autre, cette unité
est dite le poids du chiffre. Le poids du dernier chiffre à droite avant la virgule est 100=1, c'est le chiffre
des unités. A droite de la virgule, le poids est divisé par 10 chaque fois qu'on avance d'un chiffre vers la
droite.

5289.76 = 5.103 + 2.102 + 8.101 + 9.100 + 7.10-1 + 6.10-2 +

I.2 -- Système Octal

C'est le système de base 8. L'écriture d'un nombre dans ce système nécessite 8 chiffres, on utilise les
chiffres de 0 à 7. Dans cette base les poids sont :

... 32768 4096 512 64 8 1


... 85 84 83 82 81 80

2358 = 5.80 + 3.81 + 2.82 = 15710


27438 = 3.80 + 4.81 + 7.82 + 2.83= 150710

Voici quelques opérations dans le système Octal :


5 7 1535 2743 235
+4 +6 +2627 +5326 x3
11 15 4364 10271 723

I.3 -- Système Hexadécimal

C'est le système de base 16. L'écriture d'un nombre dans ce système nécessite 16 chiffres, on utilise
les chiffres de 0 à 9 plus les lettres A, B, C, D, E et F.

Hexadécimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
Décimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

6EA16 = (10.160 + 14.161 + 6.162 )10 = 177010

A4B9
+3FE6
E49F
I.4 -- Système Binaire Naturel

C'est le système à base 2. Il utilise deux chiffres 0 et 1.

32 16 8 4 2 1
25 24 23 22 21 20
1 0 1 1 0 1 = (32+8+4+1)10 = 4510
Ce système est très utilisé car facilement matérialisable. Les deux chiffres 0 et 1 peuvent être mis en
évidence techniquement par plusieurs façons :
ch
Chapitre I Système de numération et codes.
Z.HALICHE 3
- Passage ou non d'un courant électrique dans un composant.
- Etat d'un commutateur (transistor ou autre) ouvert ou fermé.
- Valeur d'une tension à la sortie d'un composant, ex: +5V = "1" et 0V = "0"

1001112 = (1+2+4+32)10 = 3910.


111112 = (1+2+4+8+16)10 = 3110.

I.5 -- Changement de base

I.5.1 -- Décimal → Binaire


17510 = ?2
On cherche la plus grande puissance de 2 contenues dans 175, c'est 128=27.
175 = 128(27) + 47, On refait la même chose avec 47
47 = 32(25) + 15 , de la même façon on obtient
15 = 8 + 4 + 2 + 1 , Donc
17510 = 27 + 25 + 23 + 22 + 21 + 20 = 101011112
Cette conversion peut se faire d'une façon systématique à l'aide d'une division successive par. Le
résultat en binaire est constitué par les restes successifs des divisions.
175 2
10101111 1 87 2
1 43 2
1 21 2
1 10 2
0 5 2
1 2 2
0 1 2
1 0
34610 = 1010110102
23310 = 111010012
8410 = 10101002
4210 = 1010102

Pour les chiffres à droite de la virgule, on procède d'une façon similaire, sachant que les poids à droite
de la virgule sont 0.5, 0.25, 0.125 … La division en échelle se transforme en une multiplication en échelle qui
s'arrête quand le résultat est nul. IL arrive qu'on ne tombe jamais sur un résultat nul et la multiplication ne
s'arrête jamais. Dans ce cas on est libre d'arrêter dès qu'on juge que le nombre de chiffres après la virgule
est suffisant.
Exemple : (175.34)10 = (? )2
(175)10 = (10101111)2
0.34*2 = 0.68, 0.68*2 = 1.36, 0.36*2 = 0.72, 0.72*2 = 1.44, 0.44*2 = 0.88
0.34 = 0.01010
((175)10 = (10101111. 01010)2

I.5.2 -- Décimal → Octal


31810 = ?
• On cherche la plus grande puissance de 8 (le plus grand poids) contenue dans 318. C'est 64.
On aura donc 31810 = cba8 t.q. 318 = a.1 + b.8 + c.64
318 64
62
4
• On cherche combien de fois 318 contient de 64 :
On a donc 318 = 4 * 64 + 62 (c=4)
• On refait la même opération avec 62 en considérant successivement tous les poids inférieurs au poids
max. (64 pour cet exemple). Le poids juste inférieur est 8, On obtient 62 = 7 * 8 + 6 (b=7)
ch
Chapitre I Système de numération et codes.
Z.HALICHE 4
• Le poids inférieur est 1. On a donc 6 = 6 * 1 + 0 (a=6).
On s’arrête car le reste est 0.
31810 = 4768

122310 = ?8
1223 = 2 * 512 + 199
199 = 3 * 64 + 7
7 = 0 * 8 +7
7=7*1+0
1223 8
42
122310 = 23078 152 8
23 72
7 19 8
Une deuxième méthode pour convertir un nombre décimal vers une base 0
3 2 8
quelconque B consiste à faire une division successive par B autant de fois
2
que cela est nécessaire jusqu'à obtenir un quotient nul. On écrit alors les 0
restes où ils ont été obtenus dans l'ordre inverse
I.5.3 -- Décimal → Hexadécimal

1661710 = 40E916 500010 = 138816

16617 16 5000 16
9 1038 16 8 312 16
14 64 16 8 19 16
0 4 16 3 1 16
4 1
0 0

I.5.4 -- Octal  binaire

Octal → binaire : On écrit chaque chiffre octal est écrit sur 3 bits
2358 = 010 011 1012
7538 = 111 101 0112

Binaire → octal : Le nombre binaire est découpé en tronçon de 3 bits en commençant de la droite (LSB),
et chaque 3bits seront écrit en octal.
11001111011002 = 1 100 111 101 1002 = 147548

I.5.5 -- Hexadécimal  binaire

Hexadécimal → binaire : On écrit chaque chiffre hexadécimal sur 4 bits


23516 = 0010 0011 01012
75316 = 0111 0101 00112
897516 = 1000 1001 0111 01012
8E97A16 = 1000 1110 1001 0111 10102

Binaire → hexadécimal : Le nombre binaire est découpé en tronçon de 4 bits en commençant de la droite
(LSB), et chaque 4 bits seront écrits en hexadécimal.
11001111011002 = 1 1001 1110 11002 = 19EC16
111101111100110112 = 1 1110 1111 1001 10112 = 1EF9B16
ch
Chapitre I Système de numération et codes.
Z.HALICHE 5
I.6 -- Opérations dans le système Binaire naturel

Les choses se passent exactement comme on a l'habitude de le faire en base 10, seulement ici nous
n'avons que 2 chiffres 0 et 1:
0+0=0
0+1=1
1 + 1 = 0 et on retient 1
1 + 1 + 1 = 1 et on retient 1
101 111
+ 11 +101
1000 1100
Une contrainte très importante va intervenir dès qu'il s'agit de faire des opérations par des machines
car celles-ci travaillent avec des registres de tailles fixes donc traitent des nombres qui ont toujours le
même nombre de bits. Prenons l'exemple d'une machine qui travaille sur 4 bits, elle peut représenter
16=24 nombres différents. Deux possibilités s'offrent à nous :
• Les 16 nombres seront considérés comme des entiers non signés. On aura donc 16 nombres positifs
allant de 0 à 15
• Les 16 nombres seront considérés comme des nombres signés. On aura donc 8 nombres positifs (moitié)
allant de 0 à 7 et 8 nombres négatifs allant de -8 à -1.

Machine n bits  2n Nombres différents

Nombres non signés Nombres signés


2n Nombres 2n / 2 Négatifs 2n / 2 Positifs
0 → 2n - 1 -1 → - 2n / 2 0 → 2n/2 - 1
Remarquons au passage que 2n/2 = 2n-1

I.6.1 -- Représentation des nombres négatifs

Reprenons l'exemple d'une machine 4 bits, si on ajoute deux nombres et le résultat est supérieur à 15, il
écrit normalement sur 5 bits est la machine n'a que 4 bits donc le 5 ième sera perdu, et le résultat sera
diminué de 1610=100002
0101 (5) 0111 (7)
+ 0011 (3) +1101 (13)
1000 (8) 0100 (4)
On s'aperçoit finalement qu'une machine 4 bits travaille modulo 16=2 4, c'est à dire que pour cette
machine, on a 16 = 0. Donc pour cette machine l'opposé d'un nombre N est -N tel que N + (-N) = 0 = 16 soit
-N = 16 -N.
On peut écrire -N = 15+1 -N = 15-N +1.
L'Opération 15-N s'appelle le complément à 1 du nombre N car elle revient à complémenter (par rapport à
1) un par un tous les bits du nombre N.
Nombre 0101 (5) 1111 (15)
Son complément à 1 1010 (10=15-5) 0000 (15-15=0)
Finalement pour obtenir l'opposé d'un nombre N, il suffit de complémenter tous ses bits puis de rajouter 1,
cette opération s'appelle le complément à 2 de N.
Si on note N le complément à 1 de N on a : -N = N +1
-7 = 7 + 1 = 1001 7 0111
7 1000
+ 1
ch
Chapitre I Système de numération et codes.
Z.HALICHE 6
1001
Une machine 4 bits peut donc représenter les nombres suivants

Négatifs Positifs

-1 1111 0 0000
-2 1110 1 0001
-3 1101 2 0010
-4 1100 3 0011
-5 1011 4 0100
-6 1010 5 0101
-7 1001 6 0110
-8 1000 7 0111
Remarquons que pour les nombres positifs, le MSB est égal à 0 et pour les nombres négatifs le MSB est
égal à 1. C'est ainsi qu'on peut tester si le résultat d'une opération est juste. La règle est simple :
- la somme de 2 nombres positifs doit donner un nombre positif
- la somme de 2 nombres négatifs doit donner un nombre négatif
L'erreur se produit quand il y a débordement, c.a.d quand le résultat dépasse le nombre maximum que la
machine peut représenter soit +7 pour les nombres positifs ou -8 pour les nombres négatifs. Une erreur
peut se produire quand on ajoute des nombres de même signe. Il y a erreur quand le signe du résultat est
différent de celui des deux opérandes

0011 (3) 0101 (5) 0010 (2) 1110 (-2) 1011 (-5)
+0100 (4) +0110 (6) + 1001 (-7) +1101 (-3) + 1100 (-4)
0111 (7) erreur 1011 (-5) 1011 (-5) erreur

I.6.2 -- La multiplication

Regardons d'abord comment on fait une multiplication en base 2 sur un aspect mathématique pur sans
limitation sur le nombre de bits. Remarquons au passage qu'ici on considère que tous les nombres sont
positifs car le concept de représentation des nombres négatifs par le complément à 2 n'est valable que si
on travaille avec un nombre de bit fixe.
1011 (11)
*1101 (13)
1011
1011•
1011 .
10001111 (143)

Regardons maintenant comment on doit procéder si on travaille avec des nombres signés sur un nombre
de bit fixe :
On commence à procéder de la même façon sauf que l'addition doit se faire sur 4 bits seulement, les
bits de gauches seront ignorés.
On vérifiera que le résultat est juste en vérifiant les règles suivantes :
• Le produit de deux nombres de même signe doit être positif
• Le produit de deux nombres de signes différents doit être négatif
ch
Chapitre I Système de numération et codes.
Z.HALICHE 7
1110 (-2)
0010 (2) * 1101 (-3) 0010 (2)
*0011 (3) 1110 1110 (-2) *0101 (5)
0010 11 10 *0100 (4) 0010
0 010 111 0 00 10
1110
0110 (6) 0110 (6) 1000 (-8) 1010 (-6:erreur)

II --NOTIONS SUR LES CODES

Les systèmes utilisés précédemment constituent des systèmes naturels ou codes naturels ou encore codes
pondérés. Ils sont caractérisés par le fait que le poids du chiffre de rang i est B fois celui du rang i-1, B
étant la base du système.
Il existe d'autres codes qui possèdent des avantages particuliers pour des utilisations particulières, on
peut citer :
- L'utilisation d'un code particulier peut rendre le traitement d'un message plus au moins économique du
point de vue temps de traitement ou encombrement en mémoire ou encore en nombre de composant
nécessaire pour effectuer le traitement.
- Dans de nombreux cas on peut améliorer l'efficacité d'un système de communication en utilisant des
codes détecteurs d'erreurs ou encore des codes correcteurs d'erreurs ...

II.1 -- Codes décimaux

Dans la vie courante le système de numération le plus fréquent étant le décimal, il est souvent utile de
garder d'un nombre une représentation décimale, tout en travaillant en binaire. On réalise ce tour de force
simplement en convertissant chaque chiffre de la représentation décimale en un des nombreux codes
binaires. Les chiffres utilisés varient de 0 à 9, nous auront besoin d'au moins quatre bits par chiffre. Voici
quelques exemples de codes décimaux résumés dans le tableau suivant:

BCD Exces 3 Aiken Johnson Biquinaire 2 parmi 5


0 0000 0011 0000 00000 01 00001 11000
1 0001 0100 0001 00001 01 00010 00011
2 0010 0101 0010 00011 01 00100 00101
3 0011 0110 0011 00111 01 01000 00110
4 0100 0111 0100 01111 01 10000 01001
5 0101 1000 1011 11111 10 00001 01010
6 0110 1001 1100 11110 10 00010 01100
7 0111 1010 1101 11100 10 00100 10001
8 1000 1011 1110 11000 10 01000 10010
9 1001 1100 1111 10000 10 10000 10100

Le plus courant est le code DCB (Décimal codé en binaire), en anglais BCD (Binary Coded decimal), chaque
chiffre du système décimal est codé en binaire naturel sur 4 bits.

Décimal Binaire (naturel) BCD


7956 1111100010100 0111 1001 0101 0110
9801 10011001001001 1001 1000 0000 0001
ch
Chapitre I Système de numération et codes.
Z.HALICHE 8
Ce système est très utilisé pour les systèmes d'affichage sur afficheurs 7 segments. Pour afficher le
nombre 9801 par exemple, au lieu d'utiliser son code binaire naturel, on utilise le code BCD et chaque
afficheur reçoit les 4 bits correspondant à un chiffre

1001 1000 0000 0001


fig. : affiche à du code BCD
Le code Exces 3 ou excédent 3 est obtenu en décalant le binaire naturel Décimal Ternaire
Ternaire
refléchi
de 3 lignes vers le haut. Ce code est intéressant pour effectuer des 0 000 0 0 0
soustractions car le complément à 9 d'un chiffre s'obtient en inversant 1 001 0 0 1
2 002 0 0 2
chaque bit. On ramène la soustraction à une addition. (Je trouve que ce 3 010 0 1 2
code est inutilement compliqué, alors que la soustraction à l'aide de la 4 011 0 1 1
5 012 0 1 0
représentation des nombres négatifs par le complément à deux est bien 6 020 0 2 0
plus simple) 7 021 0 2 1
8 022 0 2 2
9 100 1 2 2
II.2 -- Codes réfléchis 10 101 1 2 1
On dit qu'un code est continu au sens large si dans la table de vérité qui 11 102 1 2 0
12 110 1 1 0
le définit, les états successifs sont adjacents, c’est à dire que quand on 13 111 1 1 1
passe de l'un à l'autre, il y a un seul chiffre qui change. 14 112 1 1 2
15 120 1 0 2
Un code est continu au sens strict si en plus le premier et le dernier 16 121 1 0 1
état sont adjacents. 17 122 1 0 0
Un code réfléchi est un code naturel dont on a renversé le sens de 18 200 2 0 0
19 201 2 0 1
variation par endroits afin de le rendre continu. On renverse une période 20 202 2 0 2
sur deux en commençant par la deuxième. Le tableau ci-dessous illustre le 21 210 2 1 2
22 211 2 1 1
code ternaire (base 3) réfléchi. 23 212 2 1 0
24 220 2 2 0
II.2.1 -- Code de Gray 25 221 2 2 1
26 222 2 2 2

Binaire Cod Gray


decim naturel Le code de Gray est le code binaire réfléchi, c'est un cas très important
de
dcba D C B A des codes continu. Il est très fréquemment utilisé notamment sur les tables
0 0000 0 0 0 0 de Karnaugh pour simplifier les fonctions logiques. Remarquons que le code
1 0001 0 0 0 1
de Gray est continu au sens stricte, 0 est adjacent avec 15
2 0010 0 0 1 1
3 0011 0 0 1 0 Comme on le voit sur la figure, la table de Karnaugh est une table de
4 0100 0 1 1 0 vérité représentée d'une façon particulière. Les adresses des cases sont
5 0101 0 1 1 1 représentées en code de Gray de sorte à ce que toutes les cases qui ont un
6 0110 0 1 0 1
7 0111 0 1 0 0 coté commun soient adjacentes. Les cases sur les extrémités opposées sont
8 1000 1 1 0 0 aussi adjacentes, on peut vérifier les adjacentes suivantes : 0-3, 7-4, 8-11,
9 1001 1 1 0 1 15-12, 0-15, 1-14, 2-13, 3-12. BA
10 1010 1 1 1 1
DC 00 01 11 10
11 1011 1 1 1 0
12 1100 1 0 1 0 La table de Karnaugh peut être 0 1 2 3
13 1101 1 0 1 1 utilisée pour fabriquer des codes
00
14 1110 1 0 0 1 continus au sens large ou au sens 01 7 6 5 4
15 1111 1 0 0 0
strict.
11 8 9 10 11

10 15 14 13 12
ch
Chapitre I Système de numération et codes.
Z.HALICHE 9

BA
DC 00 01 11 10
0 1 2 3 A 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0
00
7 6 5 4
B 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0
C 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1
01

11 8 9 10 11 D 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0
10 15 14 13 12
BA
DC 00 01 11 10
0 1 2 3
00
7 6 5 4 A 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1
01
B 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0
11 8 9 10 11 C 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1
10 15 14 13 12 D 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1

Vous aimerez peut-être aussi