FORMATION CONTINUE A DISTANCE Aymen EL AMRAOUI AU: 2014/2015 Module: Systèmes Logiques
Ch1 : SyStèmeS de numération et codage de l’information ........................................... 1
I. Système de numération ................................................................................................................... 1
I.1. Système décimal (Base 10) ........................................................................................................... 1
I.2. Système binaire (base 2) ............................................................................................................... 1
I.3. Système octal (Base 8) .................................................................................................................. 1
I.4. Système hexadécimal (Base 16) ................................................................................................... 1
I.5. Cas général (Base B) ..................................................................................................................... 1
I.6. Conversion de base ....................................................................................................................... 2
II. Arithmétique binaire ........................................................................................................................ 3
II.1. Addition ....................................................................................................................................... 3
II.2. Soustraction ................................................................................................................................. 3
II.3. Multiplication .............................................................................................................................. 3
II.4. Division........................................................................................................................................ 3
III. Notion de codage ......................................................................................................................... 4
III.1. Définitions .................................................................................................................................. 4
III.2. Représentation des entiers signés ............................................................................................... 4
III.3 Soustraction avec complément à 2 .............................................................................................. 5
III.4. Représentation des nombres réels en base 2 .............................................................................. 6
III.5. Autres codes ............................................................................................................................... 8
1
Ch1 : Systèmes de numération et
codage de l’information
I. Système de numération L’ensemble des outils informatiques sont basés sur les mêmes principes de calcul (loi de
tout ou rien). Les calculs habituels sont effectués dans le système de numération décimal, par
contre le calculateur électronique ne peut pas utiliser ce système car le circuit électronique ne
permet pas de distinguer 10 états. Le système de numération binaire ne comportera que 2 états
0 et 1.
I.1. Système décimal (Base 10)
Alphabet={0,1,2,3,4,5,6,7,8,9}
Exemples:
9817 = 9.103 + 8.10
2 + 1.10
1 + 7.10
0
297,45 = 2.102 + 9.10
1 + 7.10
0 + 4.10
-1 + 5.10
-2
I.2. Système binaire (base 2)
Alphabet = {0,1}
Exemple:
111001(2) = 1.25 + 1.2
4 + 1.2
3 +0.2
2 +0 .2
1+1.2
0=57(10)
I.3. Système octal (Base 8)
Alphabet = {0,1,2,3,4,5,6,7}
Exemple:
476(8) = 4.82+7.8
1+6.8
0 = 256+56+6 = 318(10)
I.4. Système hexadécimal (Base 16)
Alphabet={0,1,2,3,4,5,6,7,8,9, A,B,C,D,E ,F }
Exemple:
4CA2(16) = 4.163+12.16
2+10.16
1+2.16
0 = 16384+3072+160+2 = 19618(10)
I.5. Cas général (Base B)
Alphabet={0,1,2,3,..B-1}
2
Un nombre de n chiffres dans une base B s’écrit sous la forme suivante :
Cn-1… C0(B)= Cn-1.Bn-1
+ Cn-2.Bn-2
+… + C0.B0 (10)
I.6. Conversion de base
Conversion d’une base quelconque vers la base 10
(Voir la sous-section I.5)
Conversion de la base 10 vers la base 2
On doit réaliser des divisions entières du nombre décimal par 2 jusqu’à ce qu’on trouve un
quotient nul. Puis on prend les différents restes dans le sens du bas en haut.
12(10)= 1100(2)
17(10)= ? (2)
Conversion de la base 10 vers la base 8
On doit réaliser des divisions entières du nombre décimal par 8 jusqu’à ce qu’on trouve un
quotient nul. Puis on prend les différents restes dans le sens du bas en haut.
17(10)= 21(8)
24(10)= ?(8)
Autrement : passage par la base 2
34(10)= 100010(2) puis en prend des groupes de trois chiffres du nombre binaire de la
droite vers la gauche (du bit du poids le plus faible vers le bit du poids le plus fort).
Chaque groupe sera convertit directement en Octal.
100 010 = 42(8)
4 2
Conversion de la base 10 vers la base 16
On doit réaliser des divisions entières du nombre décimal par 16 jusqu’à ce qu’on
trouve un quotient nul. Puis on prend les différents restes dans le sens du bas en haut.
18(10)= 12(16)
44(10)= ?(16)
Autrement : passage par la base 2
54(10)= 110110(2) puis en prend des groupes de quatre chiffres de la droite vers la gauche
( du bit du poids le plus faible vers le bit du poids le plus fort). Chaque groupe sera
converti directement en Hexadécimal.
0011 0110 donc 54(10)= 36(16)
3 6
12 2
60 2
30 2
11 201
3
II. Arithmétique binaire
II.1. Addition
L’addition en binaire est aussi simple que l’addition en décimal. La seule différence tient
dans le fait que ce ne sont que des 0 et des 1 qui sont utilisés. On commence par le bit du
poids le plus faible en utilisant la table suivante :
a b a + b Retenue
(Carry)
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
II.2. Soustraction
Dans le cas ou le nombre à soustraire (b) est plus petit que le nombre initial(a), on peut
procéder comme pour la soustraction décimale en se servant de la table suivante.
a b a - b Retenue
(Carry)
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0
II.3. Multiplication
Le principe est le même qu’en décimal en respectant les règles suivantes :
a b a * b
0 0 0
0 1 0
1 0 0
1 1 1
1 0 1
5 * 3= 15 en décimal et en binaire on aura x 1 1
+ 1 0 1
1 0 1
1111 n’est autre que 15
II.4. Division
Soit deux nombre binaires A et B. Q représente le quotient de la division de A par B et
R les restes partiels. Le principe général de la division binaire peut se mettre sous la forme
suivante:
1 1 1 1
4
Si R>B Alors Q=1 et R-B
Sinon Q=0 et R 1 1 1 1 1 1
Exemple : 15 /3 = 5
III. Notion de codage
III.1. Définitions
a. Mot
Un mot est une séquence de symboles représentant un message.
Exemple: livre, 164885,
b. Mot binaire
Un mot binaire est une séquence de symboles dans laquelle on ne retrouve que deux
Symboles, généralement 0 et 1, qu'on désigne par chiffres binaires, ou bits.
Exemple: 0110 1001, 1000 1111 1001.
c. Code
Un code est un ensemble de mots auxquels on confère une signification pour
représenter une catégorie de messages: des personnes, des objets, des nombres, des angles,
des coordonnées et autres concepts.
d. Code binaire
Un code est binaire s'il ne contient que des mots binaires
III.2. Représentation des entiers signés
L'introduction d'un signe en binaire n'est pas une chose simple, en effet, la notion de +
ou de – est difficilement compréhensible par un composant électronique. Le fait même
d'inclure un signe à fait l'objet de nombreuses analyses. On définit ainsi 3 méthodes que nous
allons analyser :
a. Signe / valeur absolue :
Cette méthode consiste à ajouter un bit au début du nombre binaire, ce bit étant à 0 si
le nombre est positif et à 1 s'il est négatif. Cette méthode n'est pas exploitable
mathématiquement pour 2 raisons :
- Il y a 2 représentations pour 0 (par exemple pour un nombre de 4 bits avec un
signe en 5ème bit : 10000 et 00000).
- On ne peut pas effectuer les opérations mathématiques classiques directement.
5
Par exemple la représentation d'un nombre sur 4 bits (par exemple 12) se code en
positif 01100 (+12 codé sur 5 bits) et en négatif 11100 (-12 codé sur 5 bits). Or la somme de
+12 et de –12 donne 01000 (toujours sur 5 bits) ou 101000 si l'on code sur 6 bits. Ce résultat
est dans les 2 cas différents de 0.
b. Le complément à 1( complément restreint)
Cette méthode consiste à traiter le signe dans le nombre. Le signe étant le bit de poids
fort. Prenons un exemple, soit un nombre relatif codé sur 5 bits.
Si ce nombre est positif, on a le bit de poids fort à 0. La représentation du nombre +12
sur 5 bits est donc 0 (bit de signe) 1100 (valeur), la représentation de –12 est alors 1 (bit de
signe) 0011 (valeur) c'est à dire l'inverse bit à bit de +12 en remplaçant tous les 0 par des 1 et
tous les 1 par des 0.
-12 +12= 1 0011 + 0 1100 = 1 1111 un résultat négatif pour trouver le résultat correct on
inverse les bits. Soit donc 0 0000.
Toutefois, ici encore, on a 2 représentations pour la valeur 0, on a d'une part
0+=00000 (codé sur 5 bits) et 0-=11111 (toujours codé sur 5 bits). Ceci n'étant pas
convenable, on a développé une autre méthode.
c. Le complément à 2(complément à vrai)
Cette méthode est la seule utilisable mathématiquement, Elle permet une utilisation
des nombres signés avec une représentation unique du zéro et la possibilité d'effectuer des
calculs.
Son principe est simple, la représentation négative d'un nombre est réalisée par la
formule suivante :
III.3 Soustraction avec complément à 2
En complément à 2, pour effectuer une soustraction, on se ramène à une addition.
Alors que pour retrancher à un nombre binaire « a », un nombre binaire « b », on lui ajoute le
complément à 2 de « b » et on ignore la retenue.
Exemple :
8 -5 = 8 + C2 (5) = 1000
+ 1011
= 0011 donc 3 en décimal
C2 (b) = b + 1
6
Pour savoir si le résultat d’une soustraction est négatif ou positif, on utilise un bit de
signe. C’est le bit du poids le plus fort (MSB : Most Signifiant Bit). Si ce bit est à 0 alors le
nombre est positif, sinon s’il est à 1 alors le nombre est négatif.
Dans notre exemple le MSB est à 0 donc le résultat est positif. (3)
5-8= 5+ C2 (8) = 0101
+ 1001
= 1101
Le MSB du résultat est à 1 donc il s’agit d’un résultat négatif. Pour trouver la valeur
exacte on cherche le complément à 2 du résultat.
C2 (1101)= 0011 soit 3 en décimal, donc le résultat final vaut -3.
III.4. Représentation des nombres réels en base 2
1ère
méthode : représentation en virgule fixe
Chaque nombre est séparé en deux parties ; partie entière et partie fractionnaire.
La position virgule est fixe.
Exemple : sur 16 bits, pour représenter les valeurs 15, 312510 on aura (0000 1111,
0101 0000)2
Remarques
Pour des « petites » partie entière ou décimale, on a beaucoup de digits qui sont à « 0 » ne
sont pas utilisés
Cette représentation est adaptée pour l’addition mais pas pour la multiplication
Exemple :
Avec 2 digits après la virgule :
Pour la multiplication :
11, 01 11, 01
+ 0, 10 x 0,10
= 0011,11 = 101,1011
OK
Deux points de vue : erreur arrondi (si suppression 2 derniers digits) ou déplacement
de la virgule « supposée fixe » si on garde 4 digits !
2ème
méthode : représentation en virgule flottante
Depuis 1960, la représentation en virgule flottante, plus souple, s’est imposée
7
- Plus économique en taille mémoire occupée,
- permet de coder plus grande plage de valeurs,
- les nombres s’écrivent comme en notation scientifique :
N = 1,M*BE
M : mantisse, E : exposant, B : base
Définition en binaire de la mantisse normalisée
Elle est toujours de la forme 1.1…..
Une mantisse est dite normalisée si son chiffre le plus à gauche (de poids fort) est un 1 (en
codage binaire).
Exemple : 1.101 est normalisée, 0.001 n’est pas normalisée
Avantage : permet d’omettre le 1er
bit puisqu’il est tout le temps à « 1 » ce qui permet ainsi
d’augmenter la précision (pas possible décimal).
La représentation en virgule flottante a été normalisée (norme IEEE 754) afin que les
programmes aient un comportement identique d'une machine à l'autre. La norme IEEE754
défini la façon de coder en virgule flottante
Un nombre binaire sur 32 bits ou 64 bits (double précision) en définissant 3
composantes :
- Le signe S est représenté par un seul bit : le bit de poids fort (le plus à gauche).
- L’exposant E est codé sur les 8 bits consécutifs au signe en excès de 127 (simple
précision) ou 1023 (double précision).
- La mantisse M (bits situés après la virgule) est représentée sur les 23 (simple
précision) ou 55 (double précision) bits restants.
Dans cette représentation la valeur d’un nombre sur 32 bit est donnée par
l’expression :
N = (-1)s * 1,M * 2
(E-127)
Norme IEEE754
Format binaire à virgule flottante 32 bits Format binaire à virgule flottante 64 bits
signe Exposant Mantisse signe Exposant Mantisse
1bit 8 bits 23 bits 1bit 11 bits 52 bits
8
Exemple :
Soit à coder la valeur 525,5.
525,5 s'écrit en base 2 de la façon suivante: 1000001101,1
On veut l'écrire sous la forme 1.0000011011 x 29. Par conséquent:
- Le bit S vaut 0
- L'exposant vaut 9+127 = 136, soit 10010000
- La mantisse est 0000011011
La représentation du nombre 525.5 en binaire avec la norme IEEE754 est:
0 10010000 000 0011 0110 0000 0000 0000
Remarque : Parmi toutes les combinaisons permises par cette représentation, il existe des
configurations particulières associées au codage de notions mathématiques spéciales telles
(+infini), (-infini), (0+) et (0-). Exemples :
Signe Exposant mantisse Valeur
0 11111111 0 +infini
1 00000000 0 0-
III.5. Autres codes
a. Code ASCII (American Standard Code for Information Interchange)
Chaque touche du clavier est codée sur 8 bits, donc on peut coder 256 caractères.
Exemple: Touche ‘A’ ==> code ASCII « 01000001 »
b. Code BCD (Binary Coded Decimal)
Le code BCD a surtout été utilisé aux débuts des machines à calculer. Il est parfois
encore utilisé dans des systèmes qui doivent souvent afficher de l'information numérique à
l'usager ou pour des systèmes très simples qui manipulent de l'argent. Le code BCD encode le
nombre à représenter de façon très directe. Chaque chiffre du nombre est encodé sur 4 bits.
Les possibilités binaires de 10 à 15 ne sont pas utilisées.
Exemple :
Représenter 863 avec un code BCD
8 6 3
0100 0110 0011
c. Code de Gray (Binaire réfléchi)
Le code de Gray a été établi pour éviter les problèmes de transition lors du
changement d'un mot au mot suivant. Dans l'ordre séquentiel du code, il n'y a qu'un bit qui