Vous êtes sur la page 1sur 72

Université Larbi Tbessi - TEBESSA

Faculté des Sciences Exactes et Sciences de la Nature et de la Vie


Département de Mathématique et d'Informatique

LICENCE ACADEMIQUE

Socle Commun
MATHEMATIQUES et INFORMATIQUE

Cours et Travaux Dirigés

Structure machine 1

Par
Dr. Mohamed Yassine Haouam
Table des matières

Introduction générale 7
0.1 Objectifs du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1 Les systèmes de numération 9


1.1 Dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 Les systèmes de numération . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1 Le système de numération décimal . . . . . . . . . . . . . . . 11
1.2.2 Le système binaire . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.3 Le système octal . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.4 Le système hexadécimal . . . . . . . . . . . . . . . . . . . . . 12
1.2.5 Passage de la base 10 vers une base quelconque . . . . . . . . 12
1.2.6 Passage d'une base quelconque à la base 10 . . . . . . . . . . 13
1.2.7 Cas des bases 2, 8 et 16 . . . . . . . . . . . . . . . . . . . . . 13
1.3 Arithmétique en binaire, sans signe . . . . . . . . . . . . . . . . . . . 14
1.3.1 L'addition (+) . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 La soustraction (−) . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.3 La multiplication (×) . . . . . . . . . . . . . . . . . . . . . . 16
1.3.4 La division (÷) . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4 Exercices de TD 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2 La représentation de l'information 21
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2 Le codage binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1 Le code binaire pur . . . . . . . . . . . . . . . . . . . . . . . . 22
4 Table des matières

2.2.2 Le code Gray . . . . . . . . . . . . . . . . . . . . . . . . . . . 22


2.2.3 Le code DCB (Décimal codé binaire) . . . . . . . . . . . . . . 24
2.2.4 Le code à excès de 3 . . . . . . . . . . . . . . . . . . . . . . . 26
2.3 Représentation des caractères . . . . . . . . . . . . . . . . . . . . . . 27
2.3.1 Le code ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.2 Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.3 UTF-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4 Représentation des nombres signés . . . . . . . . . . . . . . . . . . . 29
2.4.1 Codage en signe-valeur absolue . . . . . . . . . . . . . . . . . 30
2.4.2 Codage en complément à 1 . . . . . . . . . . . . . . . . . . . 31
2.4.3 Codage en complément à 2 . . . . . . . . . . . . . . . . . . . 32
2.5 Représentation des nombres réels . . . . . . . . . . . . . . . . . . . . 36
2.5.1 Représentations en virgule xe . . . . . . . . . . . . . . . . . 37
2.5.2 Représentations en virgule ottante (norme IEEE 754) . . . . 37
2.5.3 Arithmétique à virgule ottante . . . . . . . . . . . . . . . . . 41
2.6 Exercices de TD 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3 L'algèbre de Boole 47
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2 Opérateurs de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.1 Opérateur de négation (NON, NOT, ¯ ) . . . . . . . . . . . . 48
3.2.2 Disjonction (ou somme) . . . . . . . . . . . . . . . . . . . . . 48
3.2.3 Conjonction (ou produit) . . . . . . . . . . . . . . . . . . . . 49
3.2.4 Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3 Autres opérateurs logiques . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.1 Opérateur NAND . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.2 Opérateur NOR . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.3 Opérateur XOR (OU Exclusif) . . . . . . . . . . . . . . . . . 52
3.4 Fonctions Booléennes . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4.1 Dénition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4.2 Représentation d'une fonction booléenne . . . . . . . . . . . . 53
Table des matières 5

3.4.3 Formes canoniques . . . . . . . . . . . . . . . . . . . . . . . . 54


3.5 Simplication d'une fonction logique . . . . . . . . . . . . . . . . . . 57
3.5.1 Simplication algébrique . . . . . . . . . . . . . . . . . . . . . 58
3.5.2 Simplication par le diagramme de Karnaugh . . . . . . . . . 58
3.5.3 Méthode de Quine-McCluskey . . . . . . . . . . . . . . . . . . 62
3.6 Exercices de TD 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Introduction générale

Sommaire
0.1 Objectifs du cours . . . . . . . . . . . . . . . . . . . . . . . . . 8
8

0.1 Objectifs du cours


Ce support de cours est destiné aux étudiants de la première année Mathéma-
tiques et Informatique (MI). Son but est d'initier les étudiants à diérentes problé-
matiques du codage de l'information : comment représenter en machine un nombre
entier, un caractère ou un nombre réel quelconque ?
Les bases de l'algèbre de Boole sont, eux aussi, abordés de façon approfondie.
Ce cours est organisé en deux parties :
La première partie traite les codages usuels utilisés pour représenter les données,
en particulier les nombres et les caractères. Elle contient également la description
de méthodes qu'on emploie sur ces représentations de nombres pour eectuer les
opérations arithmétiques usuelles.
La deuxième partie, algèbre de Boole, doit permettre aux étudiants de com-
prendre et de savoir manier les règles de base de l'algèbre de Boole.
Chapitre 1

Les systèmes de numération

Sommaire
1.1 Dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 Les systèmes de numération . . . . . . . . . . . . . . . . . . . 11
1.2.1 Le système de numération décimal . . . . . . . . . . . . . . . 11
1.2.2 Le système binaire . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.3 Le système octal . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.4 Le système hexadécimal . . . . . . . . . . . . . . . . . . . . . 12
1.2.5 Passage de la base 10 vers une base quelconque . . . . . . . . 12
1.2.6 Passage d'une base quelconque à la base 10 . . . . . . . . . . 13
1.2.7 Cas des bases 2, 8 et 16 . . . . . . . . . . . . . . . . . . . . . 13
1.3 Arithmétique en binaire, sans signe . . . . . . . . . . . . . . 14
1.3.1 L'addition (+) . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 La soustraction (−) . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.3 La multiplication (×) . . . . . . . . . . . . . . . . . . . . . . 16
1.3.4 La division (÷) . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4 Exercices de TD 1 . . . . . . . . . . . . . . . . . . . . . . . . . 18
10 Chapitre 1. Les systèmes de numération

1.1 Dénitions
DIGIT : Contraction de "digital unit" unité digitale. Un digit est un élément
d'information numérique de base quelconque.
Par exemple, les nombres (1644)10 et (A84F )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 aecté un poids.
BIT : Contraction de "binary digit" digit binaire. Un bit ne peut prendre que
deux états 0 ou 1.
Par exemple, le nombre binaire 10100101 est constitué de 8 bits.
Nombre : Un nombre (mot) est la concaténation de plusieurs digits ou bits.
par exemple : 256, 101, 2F4B.
Octet : Un octet est un mot de 8 bits.
Par exemple, 10110110 est un octet.
Base : Un nombre est écrit en base B, chacun de ses digits peut être écrit avec
B symboles diérents.
Exemples :
En base 10 [10 symboles] : 0 1 2 3 4 5 6 7 8 9.
En base 16 [16 symboles] : 0 1 2 3 4 5 6 7 8 9 A B C D E F.
Capacité de comptage : Avec N digits écrits en base B, on peut compter de
0 à B N − 1, soit B N nombres diérents.
Par exemple, avec un nombre de 3 digits en base 10, on peut compter de 0 à 999
(1000 nombres).
Décomposition d'un nombre : De façon générale, un nombre N quelconque
peut être représenté dans un système de numération en base B sous l'une des deux
formes suivantes :
Première forme :

bn bn−1 ...b1 b0 , b−1 b−2 ...b−m

La virgule sépare la partie entière de la partie fractionnaire.


1.2. Les systèmes de numération 11

Deuxième forme :

bn B n + bn−1 B n−1 + ... + b1 B 1 + b0 B 0 + b−1 B −1 + b−2 B −2 + ... + b−m B −m

bi est le chire de poids i tel que 0 =< bi <= (B − 1).


Exemples :
En base 10, on écrit par exemple 15,73 pour représenter le nombre

1 × 101 + 5 × 100 + 7 × 10−1 + 3 × 10−2

En base 8, on écrit par exemple 263,2 pour représenter le nombre

2 × 82 + 6 × 81 + 3 × 80 + 2 × 8−1

1.2 Les systèmes de numération


Habituellement, on utilise le système décimal pour représenter les nombres, mais
il est possible d'utiliser d'autres systèmes de numération. Nous nous intéressons dans
ce chapitre aux systèmes de numération fréquemment rencontrés en technologie
numérique. Il s'agit des systèmes binaire, octal,décimal et hexadécimal.

1.2.1 Le système de numération décimal


Le système décimal est composé de 10 chires : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.
Par exemple, pour le nombre décimal 256 :

 Le digit 6, situé au premier rang a partir de la droite a une valeur de 6 (poids


0). C'est le chire le moins signicatif, en anglais Least Signicant Bit (LSB).
 Le digit 5 , situé au deuxième rang a une valeur de 50 (poids 1).
 Le digit 2 , situe au troisième rang a une valeur de 200 (poids 2). C'est le
chire le plus signicatif, en anglais Most Signicant Bit (MSB) .

1.2.2 Le système binaire


Le système binaire (Base=2) est composé de 2 chires : 0 et 1.
Par exemple, le nombre binaire (1101, 01)2 peut être écrit comme suit :

1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 + 0 × 2−1 + 1 × 2−2
12 Chapitre 1. Les systèmes de numération

1.2.3 Le système octal


Le système octale (Base=8) est composé de 8 chires : 0, 1, 2, 3, 4, 5, 6 et 7.
Par exemple, le nombre octal (235, 7)8 peut être écrit comme suit :

2 × 82 + 3 × 81 + 5 × 80 + 7 × 8−1

1.2.4 Le système hexadécimal


Le système hexadécimal (Base=16) est composé de 16 chires : 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, A(10) , B(11), C(12), D(13), E(14) et F(15).
Par exemple, le nombre octal (1A2C, F )16 peut être écrit comme suit :

1 × 163 + A × 162 + 2 × 161 + C × 160 + F × 16−1

1.2.5 Passage de la base 10 vers une base quelconque


Nombres entiers : On procède par divisions successives. On divise le nombre
par la base, puis le quotient obtenu par la base, et ainsi de suite jusqu'à obtention
d'un quotient nul. La suite des restes obtenus correspond aux chires dans la base
visée.
Par exemple, pour coder (19)10 en base 2, il faut eectuer des divisions succes-
sives par 2 et garder les restes successifs.
19 = 9 × 2 + 1 ⇒ b0 = 1
9 = 4 × 2 + 1 ⇒ b1 = 1
4 = 2 × 2 + 0 ⇒ b2 = 0
2 = 1 × 2 + 0 ⇒ b3 = 0
1 = 0 × 2 + 1 ⇒ b4 = 1
donc on obtient (19)10 = (10011)2 .
Exemple en hexadécimal : conversion de (61)10 en base 16
61 = 3 × 16 + 13(D) ⇒ b0 = D
3 = 0 × 16 + 3 ⇒ b1 = 3
donc on obtient (61)10 = (3D)16 .
1.2. Les systèmes de numération 13

Nombres fractionnaires : On multiplie la partie fractionnaire par la base en


répétant l'opération sur la partie fractionnaire du produit jusqu'à ce qu'elle soit
nulle (ou que la précision voulue soit atteinte).
Par exemple, écrivons (0, 3125)10 en base 2 :
0, 3125 × 2 = 0, 625 = 0 + 0, 625 ⇒ b−1 = 0
0, 625 × 2 = 1, 25 = 1 + 0, 25 ⇒ b−2 = 1
0, 25 × 2 = 0, 5 = 0 + 0, 5 ⇒ b−3 = 0
0, 5 × 2 = 1, 0 = 1 + 0, 0 ⇒ b−4 = 1
donc (0, 3125)10 = (0, 0101)2 .

1.2.6 Passage d'une base quelconque à la base 10


Il sut d'écrire le nombre sous la deuxième forme (voir page 11) et d'eectuer
les opérations en décimal.
Exemple en hexadécimal :
(61F )16 = 6 × 162 + 1 × 161 + F (15) × 160 = (1567)10
Exemple en binaire :
(110010, 01)2 = 1 × 25 + 1 × 24 + 0 × 23 + 0 × 22 + 1 × 21 + 0 × 20 + 0 × 2−1 + 1 × 2−2
= (50, 25)10

1.2.7 Cas des bases 2, 8 et 16


Ces bases correspondent à des puissances de 2 (21 , 23 et 24 ), d'où des passages
de l'une à l'autre très simples. Les bases 8 et 16 sont pour cela très utilisées en
informatique, elles permettent de représenter rapidement et de manière compacte
des congurations binaires.
Conversion binaire −→ octal : on divise le nombre binaire en tranches de 3 bits,
en partant de la virgule, et nous remplaçons chaque groupe en un digit octal. Par
exemple, pour (11010101001, 01011)2 :
011 010 101 001,010 110
3 2 5 1, 2 6
donc (11010101001, 01011)2 = (3251, 26)8
14 Chapitre 1. Les systèmes de numération

Conversion octal −→ binaire : consiste a associer à chaque digit du nombre octal


son équivalent binaire sur 3 bits. Par exemple, pour le nombre (5603, 17)8 :
5 6 0 3, 1 7
101 110 000 011 , 001 111
donc (5603, 17)8 = (101110000011, 001111)2
Conversion binaire −→ hexadécimal : consiste a diviser le nombre binaire en
tranches de 4 bits, en partant de la virgule, et nous remplaçons chaque groupe par
son équivalent hexadécimal. Par exemple, pour le nombre (11010101001, 11011)2 :
0110 1010 1001,1101 1000
6 A 9, D 8
donc (11010101001, 11011)2 = (6A9, D8)16
Conversion hexadécimal −→ binaire : consiste a associer à chaque digit du
nombre hexadécimal son équivalent binaire sur 4 bits. Par exemple, pour le nombre
(D40C, F 7)16
D 4 0 C, F 7
1101 0100 0000 1100 , 1111 0111
donc (D40C, F 7)16 = (1101010000001100, 11110111)2

1.3 Arithmétique en binaire, sans signe


Les opérations arithmétiques s'eectuent en binaire avec les mêmes méthodes
qu'en base 10. Une retenue ou un report apparait lorsque l'on atteint ou dépasse la
valeur 2 (la base).

1.3.1 L'addition (+)


Dans la représentation binaire, on additionne les bits de même poids (en com-
mençant par les bits de poids faible), et la retenue qu'on peut obtenir lorsque la
somme des bits de poids plus faible dépasse la plus grande valeur représentable sur
un seul bit (la valeur 1).
Dans la représentation binaire, l'addition s'eectue selon les règles suivantes :
0+0=0
1.3. Arithmétique en binaire, sans signe 15

0+1=1+0=1
1+1=0 Retenue 1
1+1+1=1 Retenue 1

Exemple
(0100010)2 + (0100111)2 = (1001001)2

Figure 1.1: Addition binaire

Remarque :
Le codage dans l'ordinateur doit s'eectuer sur un nombre de bits xe. Lors
d'une opération arithmétique, s'il y a une retenue qui est générée par le bit du poids
fort on dit qu'il y a un débordement ou dépassement de capacité (overow).
Exemple : nombres représentés sur 4 bits

Figure 1.2: Dépassement de capacité (overow)

1.3.2 La soustraction (−)


La soustraction de deux nombres binaires (A-B) est semblable à la soustraction
décimale et fait intervenir un emprunt de 1 dans le cas où un bit de B est supérieur
16 Chapitre 1. Les systèmes de numération

à celui de même rang de A. Cet emprunt sera ajouté au bit du rang suivant du
nombre B.
Dans la représentation binaire, la soustraction s'eectue selon les règles sui-
vantes :
0−0=0

1−0=1

1−1=0

0−1=1 On emprunte 1
Exemple
(1010)2 − (0011)2 = (0111)2

Figure 1.3: Soustraction binaire

1.3.3 La multiplication (×)

On multiplie des nombres en binaire de la même manière qu'on multiplie des


nombres décimaux. (1101)2 × (101)2 = (1000001)2

Figure 1.4: Multiplication binaire


1.3. Arithmétique en binaire, sans signe 17

1.3.4 La division (÷)


La division d'un nombre binaire (le dividende) par un autre (le diviseur) est
identique à la division de deux nombres décimaux. En réalité, la division en binaire
est plus simple. Si la partie dividende est > au diviseur ; on met 1 dans la case
quotient, sinon on met 0.
Exemple
(10110)2 ÷ (110)2 = (11)2 [reste = (100)2 ]

Figure 1.5: Division binaire


18 Chapitre 1. Les systèmes de numération

1.4 Exercices de TD 1

Exercice 1
Compléter le tableau de conversion

Décimal Binaire Octal Hexadécimal


425
10010011
1753
A45F

Exercice 2
Donner la valeur numérique décimal des nombres suivants :
(10010, 01)2 , (0, 1101)2 , (534, 72)8 , (52, 324)8 , (F, 4)16 , (D3, E)16 , (1111, 1)16

Exercice 3
Convertir en binaire les nombres suivants :
(152, 234)10 , (0, 25)10 , (534, 72)8 , (12, 324)8 , (F, 4)16 , (D3, E)16 , (1111, 1)16

Exercice 4
Convertir en octal les nombres suivants :
(77, 175)10 , (20, 515625)10 , (1110000101, 1101)2 , (1010101, 000001)2 , (F 1, 04)16 ,
(D3, 3E)16 , (40A, B1)16

Exercice 5
Convertir en hexadécimal les nombres suivants :
(255, 875)10 , (613, 25)10 , (1110000101, 1101)2 , (1010101, 000001)2 , (321, 04)8 ,
(173, 305)8 , (400, 651)8
1.4. Exercices de TD 1 19

Exercice 6
Etablir les conversions suivantes :
(414.23)5 = (?)10 , (440.44)10 = (?)5

Exercice 7
Eectuer les opérations binaires suivantes :
110011101+10110111 =? 11011, 01+101, 1101 =? 1001+1101+110+1011 =?
1100101001 - 110110110 = ? 1101,101 - 11,10111= ?
110110 × 101 =? 111, 001 × 1, 11 =? 11, 101 × 11, 01 =?
1110111 ÷ 1001 =? 1011 ÷ 11 =? 100, 0001 ÷ 10, 1 =?

Exercice 8
Eectuer les opérations suivantes :

 en base 8 : 2566 × 44 =?
 en base 16 : AABB058 + 112554 =?
 en base 16 : A2B, CD − 4C, F F =?

Exercice 9
Déterminer la base b pour que les égalités ci-dessous soient vraies.
(132)b = (30)10 (2A)16 = (36)b 22b × 21b = 502b
Chapitre 2

La représentation de l'information

Sommaire
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2 Le codage binaire . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1 Le code binaire pur . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.2 Le code Gray . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.3 Le code DCB (Décimal codé binaire) . . . . . . . . . . . . . . 24
2.2.4 Le code à excès de 3 . . . . . . . . . . . . . . . . . . . . . . . 26
2.3 Représentation des caractères . . . . . . . . . . . . . . . . . . 27
2.3.1 Le code ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.2 Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.3 UTF-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4 Représentation des nombres signés . . . . . . . . . . . . . . . 29
2.4.1 Codage en signe-valeur absolue . . . . . . . . . . . . . . . . . 30
2.4.2 Codage en complément à 1 . . . . . . . . . . . . . . . . . . . 31
2.4.3 Codage en complément à 2 . . . . . . . . . . . . . . . . . . . 32
2.5 Représentation des nombres réels . . . . . . . . . . . . . . . . 36
2.5.1 Représentations en virgule xe . . . . . . . . . . . . . . . . . 37
2.5.2 Représentations en virgule ottante (norme IEEE 754) . . . . 37
2.5.3 Arithmétique à virgule ottante . . . . . . . . . . . . . . . . 41
2.6 Exercices de TD 2 . . . . . . . . . . . . . . . . . . . . . . . . . 43
22 Chapitre 2. La représentation de l'information

2.1 Introduction

Les informations traitées par un ordinateur peuvent être de diérents types


(texte, nombres, image, etc.) mais elles sont toujours représentées et manipulées
par l'ordinateur sous forme binaire. Toute information sera traitée comme une suite
de 0 et de 1.

On utilise la représentation binaire car elle est simple, facile à réaliser techni-
quement à l'aide de bistables (système à deux états réalisés à l'aide de transistors).

Le codage d'une information consiste à établir une correspondance entre la re-


présentation externe (habituelle) de l'information (le caractère A ou le nombre 36
par exemple), et sa représentation interne dans la machine, qui est une suite de 0
et de 1.

2.2 Le codage binaire

2.2.1 Le code binaire pur

Il s'agit d'un code particulier, car il correspond précisément à la représentation


d'un nombre entier et positif exprimé en base 2. Les codes binaires ne permettent
généralement pas de réaliser des calculs : ils sont utilisés pour la transmission et la
sauvegarde des informations.

2.2.2 Le code Gray

La propriété fondamentale du code Gray, également appelé code binaire rééchi,


est qu'un seul bit change d'état lorsque l'on passe d'un terme au suivant.

Le tableau ci dessous montre la correspondance entre le code gray et le code


binaire pour les 16 premiers nombres :
2.2. Le codage binaire 23

Code décimal Code binaire pur 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

Conversion Binaire - Gray


Soit un nombre B en binaire pur, pour obtenir son équivalent G en code Gray,
il sut d'eectuer les opérations suivantes :
G n = Bn
G(n−1) = Bn ⊕ B(n−1)
....
G2 = B3 ⊕ B2
G1 = B2 ⊕ B1
G0 = B1 ⊕ B0

Exemple de conversion Binaire-Gray :


Soit le code Binaire : b3 b2 b1 b0 = 1 1 1 0
24 Chapitre 2. La représentation de l'information

Code Gray : g3 g2 g1 g0
g3 = b3 = 1
g2 = b3 ⊕ b2 = 1 ⊕ 1 = 0
g1 = b2 ⊕ b1 = 1 ⊕ 1 = 0
g0 = b1 ⊕ b0 = 1 ⊕ 0 = 1
Donc, le code Gray correspondant est : 1 0 0 1

Conversion Gray-Binaire

Soit un nombre G en code Gray, pour obtenir son équivalent B en code binaire
pur, il sut d'eectuer les opérations suivantes :
Bn = Gn
B(n−1) = Bn ⊕ G(n−1)
....
B2 = B3 ⊕ G2
B1 = B2 ⊕ G1
B0 = B1 ⊕ G0

Exemple de conversion Gray-Binaire


Soit le Code Gray : g3 g2 g1 g0 = 1 0 0 1
Code Binaire : b3 b2 b1 b0
b3 = g3 = 1
b2 = b3 ⊕ g2 = 1 ⊕ 0 = 1
b1 = b2 ⊕ g1 = 1 ⊕ 0 = 1
b0 = b1 ⊕ g0 = 1 ⊕ 1 = 0
Donc, le code Binaire correspondant est : 1 1 1 0

2.2.3 Le code DCB (Décimal codé binaire)


Ce code DCB, en Anglais BCD (Binary Coded Decimal), consiste à représenter
chaque chire d'un nombre décimal par son équivalent binaire sur 4 bits.
2.2. Le codage binaire 25

Décimal Code BCD


0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

Exemple de codage en BCD :


(7239)10 =(0111 0010 0011 1001)BCD

L'addition en BCD
On eectue l'addition en motifs de 4 bits. Si le résultat dépasse 9, il faut
apporter une correction en ajoutant la valeur 6 (0110)2 .

Exemple :
1 1
4386 0100 0011 1000 0110
+ 2893 + 0010 1000 1001 0011
= 7279 = 0111 1100 10001 1001
0110 0110
7279 ⇐ 0111 0010 0111 1001

La soustraction en BCD
On eectue la soustraction en motifs de 4 bits. Si le résultat dépasse 9, il faut
apporter une correction par soustraction de la valeur 6 (0110)2 .
26 Chapitre 2. La représentation de l'information

Exemple :
11 1000 1111 11
4386 0100 0011 1000 0110
− 2893 − 0010 1000 1001 0011
= 1493 = 0001 1010 1111 0011
0110 0110
1493 ⇐ 0001 0100 1001 0011

2.2.4 Le code à excès de 3


Le code à excès de trois (Excess 3 noté XS 3 en abrégé) s'obtient en ajoutant 3
au code BCD de chaque chire.
Décimal Code à excés de 3
0 0011
1 0100
2 0101
3 0110
4 0111
5 1000
6 1001
7 1010
8 1011
9 1100

Exemple de codage en excès de 3 (XS 3) :


(7239)10 =(1010 0101 0110 1100)XS3
L'avantage majeur de cette représentation est de simplier les opérations impli-
quant le complément à 9 des nombres comme dans la soustraction. Le complément
à 9 d'un chire est obtenu directement du code à excès de 3 en remplaçant les 0 par
1 et les 1 par 0, opération très rapide pour un ordinateur.
Exemple : En XS 3, le chire 7 se code 1010. En inversant les bits, on obtient
0101.
2.3. Représentation des caractères 27

En décimal le complément à 9 de 7 est 2 (9-7=2). On remarque que 0101 est


bien le code XS 3 du chire 2.

2.3 Représentation des caractères


Les ordinateurs ne stockent et ne traitent que des nombres mais nous souhaitons
aussi stocker des textes, qui se composent de caractères. Comment en eet peut-on
représenter un texte à partir uniquement de zéros et de uns ?
Le codage des caractères est fait par une table de correspondance indiquant la
conguration binaire représentant chaque caractère.
On peut choisir n'importe quel codage pour les caractères mais il est bien sur
indispensable, quand on échange de l'information, que l'émetteur et le récepteur
soient d'accord sur le codage employé.

2.3.1 Le code ASCII


Le code ASCII est l'un des plus anciens codes utilisés pour représenter du texte
en informatique. ASCII signie (American Standard Code for Information Inter-
change).
Le code ASCII utilise sept bits pour représenter un caractère ; cela signie donc
qu'il permet de représenter 27 = 128 caractères diérents. En pratique, on utilise le
plus souvent un octet pour contenir un caractère codé en ASCII, le chire de poids
fort (le plus à gauche) étant toujours égal à zéro. (Certains systèmes de transmission
utilisent le bit de poids fort pour vérier qu'une erreur n'est pas intervenue : il est
égal à 0 si le nombre de 1 est pair, 1 sinon.)
Les 32 premiers codes (de 0 à 31) et le dernier (code 7F16 ) représentent les
codes de contrôle. Ils correspondent à des caractères de commande ou "caractères
non imprimables". Par exemple, le code A16 (LF comme Line Feed) provoque un
passage à la ligne suivante.
Les autres codes sont utilisés pour représenter les caractères alphabétiques usuels
(en majuscule et en minuscule), les chires et les symboles de ponctuation les plus
courants.
28 Chapitre 2. La représentation de l'information

Figure 2.1: Le jeu de caractères ASCII

Limitations

Le code ASCII, comme son nom l'indique, est un code américain et ne permet
donc de coder aucun des caractères spéciaux qui apparaissent dans les autres langues
européennes comme les caractères accentués. Pour les langues qui utilisent d'autres
alphabets comme l'arabe ou pour les langues orientales (chinois, japonais, coréen),
le code ASCII est complètement inadéquat.

2.3.2 Unicode

Dans la norme Unicode, chaque caractère est représenté sur 16 bits, ce qui per-
met de coder 65536 caractères diérents ; c'est susant pour représenter tous les
caractères spéciques aux diérentes langues.
En utilisant Unicode, on peut mélanger plusieurs alphabets dans un même do-
cument, sans avoir besoin de changer de système de codage. Il est actuellement en
train de s'imposer comme le standard de codage de caractères le plus répandu.
2.4. Représentation des nombres signés 29

Le codage Unicode présente deux inconvénients : les documents sont deux fois
plus gros qu'avec le code ASCII et il est incompatible avec l'ASCII.

2.3.3 UTF-8
Unicode est incompatible avec le code ASCII, ce qui est un réel problème. La
solution consiste à lui associer un autre code, UTF-8 comme Unicode Translation
Format 8 bits, qui permet de maintenir la compatibilité avec le code ASCII.
En UTF-8, chaque caractère est codé sur un, deux, trois ou quatre octets. Tous
les caractères du code ASCII sont codés en UTF-8 sur un octet avec la même valeur
qu'en ASCII.
UFT-8 donne le moyen de diérencier les codes ASCII des codes Unicode.
Pour ASCII, le bit de poids fort est nul et les 7 autres bits donnent le code
ASCII.
Pour Unicode, Les octets ne sont pas remplis entièrement. Les bits de poids fort
du premier octet forment une suite de 1 indiquant le nombre d'octets utilisés pour
coder le caractère. Les octets suivants commencent tous par le bloc binaire 10.
Le tableau suivant résume le format des diérents types d'octets.

Représenrtaion binaire UTF-8 Signication


0xxxxxxx 1 octet codant 1 à 7 bits
110xxxxx 10xxxxxx 2 octets codant 8 à 11 bits
1110xxxx 10xxxxxx 10xxxxxx 3 octets codant 12 à 16 bits
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 4 octets codant 17 à 21 bits

2.4 Représentation des nombres signés


Nous avons vu plus haut comment faire pour représenter les entiers strictement
positifs ou nuls. Nous allons maintenant voir comment faire pour représenter les
entiers négatifs. Avec nos 1 et nos 0, comment va-t-on faire pour représenter le signe
moins (−) ?
Il existe plusieurs méthodes. Les plus utilisées sont :
30 Chapitre 2. La représentation de l'information

 La représentation en signe-valeur absolue ;

 La représentation en complément à un ;

 La représentation en complément à deux.

2.4.1 Codage en signe-valeur absolue

La solution la plus simple pour représenter un entier négatif consiste à coder


sa valeur absolue en binaire, et d'ajouter un bit supplémentaire appelé bit de signe
(BS). Ce bit servira à préciser si c'est un entier positif (BS=0) ou un entier négatif
(BS=1).
Si le nombre est codé sur n bits, Le bit le plus signicatif est utilisé pour repré-
senter le signe, et les (n-1) bits restants sont utilisés pour écrire le nombre en valeur
absolue.

Figure 2.2: Codage en signe-valeur absolue

Exemple : pour n=8 bits


+12 = 00001100

−12 = 10001100

Capacité

En utilisant n bits, bit de signe inclut, un nombre codé en représentation signe-


valeur absolue peut prendre toute valeur comprise entre : [−(2n−1 − 1), +(2n−1 − 1)]
Exemple :
Si n=5, le nombre codé peut prendre les valeurs : [−15, +15]
2.4. Représentation des nombres signés 31

Désavantages
En utilisant cette méthode, on peut remarquer que le zéro a deux représentations
diérentes. Ce qui conduit à des dicultés au niveau des opérations arithmétiques.
Exemple : si le nombre est codé sur 8 bits
0 = 00000000
−0 = 10000000
Un autre problème avec la représentation signe-valeur absolue est que, pour
les opérations arithmétiques, il nous faut deux circuits : l'un pour l'addition et le
deuxième pour la soustraction.

2.4.2 Codage en complément à 1


Un nombre entier négatif est obtenu en complément à 1 par remplacement, dans
sa représentation binaire positif, de chaque bit à 0 par 1 et de chaque bit à 1 par 0.
Le bit le plus fort dans le code du nombre est réservé pour le signe (1 pour le signe
0 −0 et 0 pour le signe 0 +0 ).
Exemple : pour un codage sur 8 bits
+12 = 00001100
−12 = 11110011

Capacité
En utilisant n bits, bit de signe inclut, un nombre représenté en complément à
un peut prendre toute valeur comprise entre : [−(2n−1 − 1), +(2n−1 − 1)]

L'addition en complément à 1
En complément à 1, la soustraction d'un nombre se réduit à l'addition de son
complément (un seul circuit pour les deux opérations : addition et soustraction). Si
une retenue est générée par le bit de signe, elle doit être ajoutée au résultat obtenue.
Exemple 1 (pour n = 8 bits)
−84 + 23 =?
(−84)10 = (10101011)ca1
32 Chapitre 2. La représentation de l'information

(+23)10 = (00010111)ca1
10101011 −84
+ 00010111 +23
= 11000010 −61

Exemple 2 (pour n = 8 bits)


−13 − 11 =?
(−13)10 = (11110010)ca1
(−11)10 = (11110100)ca1
11110010 −13
+ 11110100 −11
1 11100110 Ret
+ 1
= 11100111 −24

Désavantages
Cette méthode est relativement simple, mais pose exactement le même problème
que la représentation signe-valeur absolue. Le zéro est toujours représenté par deux
nombres diérents : un nombre ne contenant que des 0 (0000 0000 ...), et un nombre
ne contenant que des 1 (1111 1111 ...).

2.4.3 Codage en complément à 2


Le complément à deux se calcule en deux étapes :

1. On convertit notre nombre en complément à un, en inversant tous les bits du


nombre.
2. On ajoute 1 au résultat : on obtient alors le complément à deux de notre
nombre.

Exemple : Conversion du nombre -96 en complément à deux sur 8 bits

 (96)10 = (01100000)2
 (−96)10 = (10011111)ca1
2.4. Représentation des nombres signés 33

 (10011111)ca1 + 1 = (10100000)ca2

Capacité

En utilisant n bits, bit de signe inclut, un nombre représenté en complément à


deux peut prendre toute valeur comprise entre : [−(2n−1 ), +(2n−1 − 1)]

Extension de signe

Dans un ordinateur, tous les nombres sont représentés sur un nombre xé et
constant de bits. Ainsi, les circuits d'un ordinateur ne peuvent manipuler que des
nombres de 4, 8, 12, 16, 32, 48, 64 bits, suivant l'ordinateur. Si l'on veut utiliser un
entier codé sur 16 bits et que l'ordinateur ne peut manipuler que des nombres de 32
bits, il faut bien trouver un moyen de convertir notre nombre de 16 bits en un nombre
de 32 bits, sans changer sa valeur et en conservant son signe. Cette conversion qui
augmente la taille de représentation d'un entier sans modier sa valeur ni son signe
s'appelle l'extension de signe, ou sign extend.
L'extension de signe des nombres positifs ne pose aucun problème : il sut de
remplir les bits à gauche de notre nombre de base avec des 0 jusqu'à arriver à la taille
voulue. C'est la même chose qu'en décimal : rajouter des zéros à gauche d'un nombre
ne changera pas sa valeur. Cela marche quelque soit la représentation utilisée, que
ce soit la représentation signe-valeur absolue, le complément à 1 ou complément à
2.
Par exemple, si je veux convertir l'entier positif (0100 0101), codé sur 8 bits,
en un entier équivalent mais en utilisant 16 bits, il me sut de remplir les 8 bits à
gauche par des 0. On obtient ainsi (0000 0000 0100 0101).
Pour les nombres négatifs, la conversion dépend de la représentation utilisée.
Avec le complément à 1 et le complément à 2, l'extension de signe d'un entier
négatif est simple à eectuer : il sut de remplir les bits à gauche du nombre à
convertir avec des 1, jusqu'à obtenir le bon nombre de bits.
Par exemple, prenons le nombre -128, codé sur 8 bits en complément à deux :
(1000 0000). On veut le convertir en nombre sur 16 bits. Il sut pour cela de remplir
34 Chapitre 2. La représentation de l'information

les 8 bits de poids fort (les 8 bits les plus à gauche) de 1 : on obtient (1111 1111
1000 0000).

L'addition en complément à 2

En complément à 2, la soustraction d'un nombre se réduit à l'addition de son


complément. On peut additionner des nombres en complément à deux avec les règles
usuelles de l'addition, sans se soucier de leur signe : le résultat de l'addition aura le
bon signe.
Exemples : pour n = 8 bits
−84 + 23 =?

(−84)10 = (10101100)ca2

(+23)10 = (00010111)ca2
10101100 −84
+ 00010111 +23
= 11000011 −61

Il faut prendre garde à ne conserver du résultat que le nombre de bits utilisés


pour la représentation. L'addition peut produire un bit à 1 supplémentaire qu'il est
important d'ignorer.
Par exemple, soit l'opération : −61 − 23 =?.
(−61)10 = (11000011)ca2

(−23)10 = (11101001)ca2

11000011 −61
+ 11101001 −23
= 1 10101100 −84

On ignore le neuvième bit du résultat de l'addition et le résultat obtenu est bien


égal à -84
2.4. Représentation des nombres signés 35

Débordement (Overow)

On dit qu'il y a un débordement (Over Flow) ou dépassement de capacité, si le


résultat de l'opération sur n bits et faux. C'est à dire, le nombre de bits utilisés est
insusant pour contenir le résultat.
En complément à deux, un débordement dans une opération d'addition ou de
soustraction peut être détecté en observant la retenue d'entrée dans la position du
bit de signe, et la retenue de sortie de la position du bit de signe. Si les deux retenues
sont diérentes, alors un débordement a eu lieu.
Exemples : On travaille sur 5 bits

Cas 1 : 5 - 8 = ?
0
+5 00101
−8 11000

= 0 11101

- Calcul correct car les deux dernières retenues sont identiques.


- Le 5ème bit = 1 : nombre négatif.
- Résultat : (11101)ca2 = −(00011)2 = -3

Cas 2 : 9 - 8 = ?
1
+9 01001
−8 11000

= 1 00001

- Résultat sur 6 bits mais calcul correct (les 2 dernières retenues sont identiques).
- Le bit de débordement (le 6ème bit) est à ignorer.
- Le 5ème bit = 0 : nombre positif.
- Résultat : (00001)ca2 = (00001)2 = 1.
36 Chapitre 2. La représentation de l'information

Cas 3 : 9 + 8 = ?
1
+9 01001
+8 01000

= 0 10001

- Les deux dernières retenues sont diérentes.


- Calcul incorrect (Overow).

Cas 4 : -9 -8 = ?
0
−9 10111
−8 11000

= 1 01111

- Les deux dernières retenues sont diérentes.


- Calcul incorrect (Overow).

Cas 5 : -5 -8 = ?
1
−5 11011
−8 11000

= 1 10011

- Résultat sur 6 bits mais calcul correct (les 2 dernières retenues sont identiques).
- Le bit de débordement (le 6ème bit) est à ignorer.
- Le 5ème bit = 1 : nombre négatif.
- Résultat : (10011)ca2 = −(01101)2 = -13.

2.5 Représentation des nombres réels


On sait donc comment sont stockés nos nombres entiers dans un ordinateur.
Néanmoins, les nombres entiers ne sont pas les seuls nombres que l'on utilise au
2.5. Représentation des nombres réels 37

quotidien : il nous arrive d'utiliser des nombres à virgule (nombres réels).


Il existe deux méthodes pour coder des nombres réels en binaire :

 La virgule xe ;

 La virgule ottante.

2.5.1 Représentations en virgule xe


Une façon simple et pratique de représenter les nombres avec des parties frac-
tionnaires consiste à choisir, en fonction des nombres que l'on souhaite représenter,
une position xe pour la virgule.
Par exemple, si on utilise 8 bits pour représenter un nombre, on peut choisir trois
bits après la virgule. Les huit bits a7 a6 a5 a4 a3 a2 a1 a0 représenteront alors un nombre
dont la partie entière est égale à a7 a6 a5 a4 a3 et la partie fractionnaire à a2 a1 a0 .
L'avantage d'une telle représentation est que les additions et les multiplications
sont simples. On additionne deux nombres en virgule xe de la même manière que
deux nombres entiers. Pour la multiplication, on ne conserve que les bits de gauche
de la partie fractionnaire et les bits de droite de la partie entière.
L'inconvénient de la virgule xe, c'est qu'on ne peut pas représenter à la fois
de très grands et de très petits nombres. Pour cela, on utilise la représentation en
virgule ottante, présentée dans la section suivante.

2.5.2 Représentations en virgule ottante (norme IEEE 754)


Les nombres à virgule xe ont aujourd'hui étés remplacés par les nombres à
virgule ottante. Ce sont des nombres dont le nombre de chire après la virgule est
variable. De nombreuses méthodes existent pour représenter ces nombres à virgule
qui sont souvent incompatibles entre-elles.
Les concepteurs de matériel électronique se sont dit qu'il fallait normaliser le
stockage des ottants en mémoire an que tous les ordinateurs supportent les mêmes
ottants et pour que les calculs ottants donnent les mêmes résultats quelque soit
l'ordinateur. C'est ainsi qu'est née la norme IEEE 754.
38 Chapitre 2. La représentation de l'information

L'écriture d'un nombre ottant en binaire est basée sur son écriture normalisée.
Cela permet de coder beaucoup plus de valeurs qu'un nombre en virgule xe, à
nombre de bits égal. En décimal, l'écriture normalisée d'un nombre consiste à écrire
celui-ci comme un produit entre un nombre et une puissance de 10 de la forme :

N = ∓a × 10Exposant

Le nombre a ne possède qu'un seul chire signicatif (6= 0) à gauche de la virgule.


Par exemple, 21, 75 = 2, 175 × 101
En binaire, c'est à peu près la même chose. La représentation normalisée d'un
nombre consiste à écrire celui-ci sous la forme :

N = ∓1, ... × 2Exposant

La norme IEEE 754 impose diverses choses concernant la façon dont on gère nos
ottants. Les ottants doivent être stockés dans la mémoire d'une certaine façon,
standardisée par la norme.
Quatre formats sont généralement utilisés :
 Simple précision (32 bits)
 Simple précision étendue
 Double précision (64 bits)
 Double précision étendue
Dans ce cours, nous ne présentons que les formats simple et double précision
(voir gure 2.3)

Bit de signe (SM)


Ce bit sert à calculer le signe du nombre ottant : ce bit vaut 1 si le nombre est
négatif et vaut 0 si notre ottant est positif.

Mantisse
Pour représenter un nombre ottant, seule la partie fractionnaire, qu'on appelle
mantisse, est stockée en machine. le chire situé à gauche de la virgule n'est pas
2.5. Représentation des nombres réels 39

Figure 2.3: Représentation IEEE 754

stocké en machine. Ce bit , appelé bit caché ou bit implicite, est stocké dans notre
nombre ottant de façon implicite, ce qui permet d'économiser un bit, et peut se
déduire en fonction de l'exposant. Pour les nombres normalisés, ce bit est toujours
égale à 1 et ne vaut 0 que dans le cas des ottants dénormalisés.

Exposant

L'exposant est un entier relatif (peut être positif ou négatif). Cependant, la re-
présentation habituelle des nombres signés (complément à 2) rendrait la comparaison
entre les nombres ottants un peu plus dicile. Pour régler ce problème, l'exposant
est décalé, an de le stocker sous forme d'un nombre non signé. Ce décalage de
2ne−1 − 1 est appelé biais.

L'exposant est codé sur 8 bits est décalé de 127 (simple précision) ou sur 11 bits
est décalé de 1023 (double précision).
Exemples :
1. Représentation du nombre −3, 625 en IEEE 754 simple précision :
(3, 625)10 = (11, 101)2

−3, 625 = −1, 1101 × 21 (écriture normalisée)


Exposant = 1 + 127 = (128)10 = (10000000)2
40 Chapitre 2. La représentation de l'information

Figure 2.4: Représentation IEEE 754 SP du nombre −3, 625

2. Conversion en décimal du nombre (1 10000001 00110000000000000000000)


écrit sous la forme IEEE 745 simple précision :
SM = 1 ⇒ N est un nombre négatif.
EB = (10000001)2 = (129)10 ⇒ Exposant = 129 − 127 = 2
N = −1, 0011 × 22 = −100, 11 = −4, 75

Cas exceptionnels

En plus des ottants normalisés, IEEE 754 impose aussi le support de certains
nombres ottants spéciaux. Parmi eux, on trouve l'inni (aussi bien en négatif qu'en
positif), la valeur NaN, utilisée pour signaler le résultat erroné d'une opération, ou
des nombres dénormalisés qui représentent des valeurs très petites (voir la table 2.1).

Simple précision sur 32 bits Doule précision sur 64 bits


Objet représenté
EB sur 8 bits M sur 23 bits EB sur 11 bits M sur 52 bits
1 à 254 quelconque 1 à 2045 quelconque Flottant normalisé
0 0 0 0 Nombre 0
0 6= 0 0 6= 0 Nombre dénormalisé
255 0 2047 0 ∓∞ (suivant SM)
255 6= 0 2047 6= 0 NaN

Table 2.1: Interprétation des champs dans le format IEEE 754

Le zéro
Le zéro est un ottant spécial avec deux représentations possibles (+0 et −0),
suivant le bit de signe.
Nombres dénormalisés
Il existe un plus petit nombre strictement positif représentable en normalisé.
2.5. Représentation des nombres réels 41

Cependant, la représentation dénormalisée permet de représenter des valeurs plus


petites. On notera que le bit implicite n'est plus 1, mais 0 et l'exposant vaut −126.
Par exemple :
Soit le nombre décimal (N) écrit sous la forme IEEE 745.

Figure 2.5: Représentation IEEE 754 d'un nombre dénormalisé

SM = 0 ⇒ N est un nombre positif.


EB = 0 et M 6= 0 ⇒ N est un nombre dénormalisé.
N = +0.0001011 × 2−126
N ' +1, 0101904577379033271606329616754e − 39

L'inni
Si les bits de l'exposant valent 255 et que la mantisse vaut 0, alors le nombre
représente l'inni (+∞ ou −∞ suivant la valeur du bit de signe).
NaN
Ce code est utilisé pour représenter le résultat d'une opération aberrante, par
0 √
exemple ou −4.
0

2.5.3 Arithmétique à virgule ottante


Addition et soustraction

On décompose l'action en trois étapes :

1. on commence par ramener les deux nombres au même exposant, en l'occur-


rence le plus grand des deux. Il sut alors de décaler la mantisse du plus petit
nombre à droite (y compris le bit implicite) et d'incrémenter son exposant

2. on ajoute les deux mantisses en tenant compte du signe ;

3. on renormalise le nombre obtenu.

Par exemple, additionnons les deux nombre A et B tel que :


42 Chapitre 2. La représentation de l'information

A= (0 10000000 11000000000000000000000)
B= (0 10000001 01010000000000000000000)
A = 1, 11 × 21
B = 1, 0101 × 22

1. On réécrit A avec le même exposant que B :


A = 0, 111 × 22

2. Addition des mantisses :


0,111 + 1,0101 = 10,0011

3. Normalisation du résultat :
A + B = 1, 00011 × 23

Multiplication et division
La multiplication (division) implique :

1. on xore les bits de signe ;

2. pour la multiplication, on additionne les exposants réels et on décale ou plutôt


on additionne les exposants décalés et on retire le biais ;
pour la division, on soustrait les exposants réels et on décale ou plutôt on
soustrait les exposants décalés et on ajoute le biais ;

3. on multiplie (divise) les mantisses ;

4. on normalise.

Eectuons par exemple le produit de A par B tel que :


A= (0 10000000 11000000000000000000000)
B= (1 10000001 01010000000000000000000)

1. 0 xor 1 donne 1 : le bit de signe est 1 ;

2. calcul de l'exposant :
EB = 10000000 + 10000001 − (127)2 = 10000010

3. multiplication des mantisses :


1, 11 × 1, 0101 = 10, 010011
2.6. Exercices de TD 2 43

4. normalisation du résultat :
EB = 10000011
A × B =(1 10000011 00100110000000000000000)

2.6 Exercices de TD 2
Exercice 1
Convertissez les nombres binaires suivants en code gray
(100000)2 (100001)2 (100010)2

Exercice 2
Donnez le code binaire des nombres suivant exprimés en code Gray
(101111)Gray (101101)Gray (1011001)Gray

Exercice 3
Eectuer en BCD les opérations suivantes :
(a) 3987.137 + 54.84 = ?
(b) 1094.77 + 493.26 = ?
(c) 1760.56 - 970.25 = ?
(d) 5009.05 - 360.48 = ?

Exercice 4
Soit une série de caractères codés en ASCII (les octets sont notés en hexadéci-
mal) :
4A 27 41 49 20 54 52 4F 55 56 45 20 4C 41 20 53 4F 4C 55 54 49 4F 4E 20 21
En utilisant la table ASCII (Fig. 2.1) , trouver le texte correspondant.

Exercice 5
Soit la séquence de caractères suivant en UTF-8 (les octets sont notés en hexa-
décimal) :
44 Chapitre 2. La représentation de l'information

C3 A9 6C C3 A8 76 65 73
En utilisant la table ASCII (Fig. 2.1) et le tableau UTF-8 (Fig. 2.6), trouver le
texte correspondant.

Exercice 6
Eectuer les conversions suivantes :
(dans cet exercice, les représentations sont sur 8 bits)

Décimal SVA Cà1 Cà2


- 32
+ 73
- 123
- 128

Exercice 7
Donner la valeur décimale signée de chacune des représentations suivantes :
(00010000)SV A (00011000)Ca1 (00010001)Ca2
(10011110)SV A (11100110)Ca1 (11100111)Ca2

Exercice 8
Eectuer en Cà1 les opérations suivantes (rep. sur 8 bits). Convertir le résultat
en décimal :
-25 + 13 = ? +120 + 7 = ? -109 - 6 = ?
-119 - 40 = ? -120 - 8 = ? -80 + 115 = ?

Exercice 9
Eectuer en Cà2 les opérations suivantes (représentations sur 8 bits). Convertir
le résultat en décimal :
-128 + 40 = ? +104 + 15 = ? -109 - 6 = ?
-119 - 40 = ? -120 - 8 = ? -80 + 115 = ?
2.6. Exercices de TD 2 45

Exercice 10
Représenter en format IEEE 754 simple précision les nombres réels suivants :
(Présenter le résultat sous la forme d'une suite de chires hexadécimaux)
+716.8 - 93.625 + 0.0125

Exercice 11
Représenter le nombre - 205.3 en format IEEE 754 double précision (Présenter
le résultat sous la forme d'une suite de chires hexadécimaux)

Exercice 12
Déterminer la valeur décimale de chacun des nombres codés en IEEE 754 simple
précision :
(a) (0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
(b) (C 0 6 0 0 0 0 0)représentation 16
(c) (4 3 1 F 5 0 0 0)représentation 16

Exercice 13
Eectuer en IEEE 754 simple précision les opérations suivantes :
(a) 3EE00000 + 3D800000 =?
(b) C8800000 + C8000000 =?
(c) C1100000 × 40C00000 =?
(d) 41480000 ÷ 404800000 =?
46 Chapitre 2. La représentation de l'information

Figure 2.6: Encodage en UTF-8 des caractères accentués européens


Chapitre 3

L'algèbre de Boole

Sommaire
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2 Opérateurs de base . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.1 Opérateur de négation (NON, NOT, ¯ ) . . . . . . . . . . . . 48
3.2.2 Disjonction (ou somme) . . . . . . . . . . . . . . . . . . . . . 48
3.2.3 Conjonction (ou produit) . . . . . . . . . . . . . . . . . . . . 49
3.2.4 Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3 Autres opérateurs logiques . . . . . . . . . . . . . . . . . . . . 51
3.3.1 Opérateur NAND . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.2 Opérateur NOR . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.3 Opérateur XOR (OU Exclusif) . . . . . . . . . . . . . . . . . 52
3.4 Fonctions Booléennes . . . . . . . . . . . . . . . . . . . . . . . 53
3.4.1 Dénition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4.2 Représentation d'une fonction booléenne . . . . . . . . . . . . 53
3.4.3 Formes canoniques . . . . . . . . . . . . . . . . . . . . . . . . 54
3.5 Simplication d'une fonction logique . . . . . . . . . . . . . . 57
3.5.1 Simplication algébrique . . . . . . . . . . . . . . . . . . . . . 58
3.5.2 Simplication par le diagramme de Karnaugh . . . . . . . . . 58
3.5.3 Méthode de Quine-McCluskey . . . . . . . . . . . . . . . . . 62
3.6 Exercices de TD 3 . . . . . . . . . . . . . . . . . . . . . . . . . 69
48 Chapitre 3. L'algèbre de Boole

3.1 Introduction
George Boole à dénit vers 1847 un algèbre qui s'applique à des fonctions logiques
de variables logiques (variable booléennes). L'algèbre de Boole aide à comprendre
et concevoir les circuits électroniques de l'ordinateur. En général, l'algèbre de Boole
est une structure mathématique qui permet d'exprimer le fonctionnement de tout
système logique à deux états. Les conditions y sont représentées par des variables et
les relations par des opérateurs et on peut relier variables et opérateurs sous forme
d'équations. De plus il existe des règles qui permettent de simplier les équations.

3.2 Opérateurs de base


3.2.1 Opérateur de négation (NON, NOT, ¯ )
L'opération NON (NOT) a une seule entrée et une seule sortie. Cette opération
est représentée par le symbole indiqué dans la gure 3.1 et est dénie par la table
de vérité suivante :

A Y =A
0 1
1 0

Figure 3.1: Négation logique

3.2.2 Disjonction (ou somme)


La disjonction est une opération binaire qui peut être notée par "+", "ou" ou
bien "or". Cette opération est représentée par le symbole indiqué dans la gure 3.2
et est dénie par la table de vérité suivante :
3.2. Opérateurs de base 49

A B S =A+B
0 0 0
0 1 1
1 0 1
1 1 1

Figure 3.2: Somme logique

3.2.3 Conjonction (ou produit)

La conjonction est une opération binaire qui peut être notée par ".", "et" ou
bien "and". Cette opération est représentée par le symbole indiqué dans la gure
3.3 et est dénie par la table de vérité suivante :

A B S = A.B
0 0 0
0 1 0
1 0 0
1 1 1

Figure 3.3: Produit logique


50 Chapitre 3. L'algèbre de Boole

3.2.4 Propriétés
Commutativité
 x+y =y+x

 x.y = y.x

Associativité
 (x + y) + z = x + (y + z)

 (x.y).z = x.(y.z)

Distributivité
 x + (y.z) = (x + y).(x + z)

 x.(y + z) = (x.y) + (x.z)

Idempotence
 x+x=x

 x.x = x

Complément
 x+x=1

 x.x = 0

Elément Neutre
 x+0=x

 x.1 = x

Elément absorbant
 x+1=1

 x.0 = 0
3.3. Autres opérateurs logiques 51

Involution

 x=x

Lois de De Morgan

 x + y = x.y

 x.y = x + y

Simplication

 x + x.y = x + y

 x.(x + y) = x.y

Absorption

 x + x.y = x

 x.(x + y) = x

3.3 Autres opérateurs logiques

3.3.1 Opérateur NAND


Cette opération est représentée par le symbole indiqué dans la gure 3.4 et est
dénie par la table de vérité suivante :

A B F = AB
0 0 1
0 1 1
1 0 1
1 1 0

Remarque : l'opérateur NAND est commutatif mais non associatif.


52 Chapitre 3. L'algèbre de Boole

Figure 3.4: Opérateur NAND

3.3.2 Opérateur NOR


Cette opération est représentée par le symbole indiqué dans la gure 3.5 et est
dénie par la table de vérité suivante :

A B F =A+B
0 0 1
0 1 0
1 0 0
1 1 0

Figure 3.5: Opérateur NOR


Remarque : l'opérateur NOR est commutatif mais non associatif.

3.3.3 Opérateur XOR (OU Exclusif)


La fonction F (A, B) = A ⊕ B est vraie si A est vrai ou B est vrai, mais pas les
deux. Cette opération est représentée par le symbole indiqué dans la gure 3.6 et
est dénie par la table de vérité suivante :

A B F =A⊕B
0 0 0
0 1 1
1 0 1
1 1 0
L'opérateur XOR est associatif : (A ⊕ B) ⊕ C = A ⊕ (B ⊕ C)
3.4. Fonctions Booléennes 53

Figure 3.6: Opérateur XOR

3.4 Fonctions Booléennes

3.4.1 Dénition

Une fonction booléenne de n variables est simplement une application de l'en-


semble des suites de n booléens vers {0, 1}. Elle associe une valeur booléenne
à chacun des n-uples (x1 , x2 , ..., xn ) où xi ∈ {0, 1}. C'est donc une application
{0, 1}n → {0, 1}.

3.4.2 Représentation d'une fonction booléenne

Il existe plusieurs manières de représenter les fonctions logiques. Parmi les plus
courantes, nous noterons :

 la table de vérité

 la représentation algébrique

Table de vérité

la table de vérité est une table unique qui dénit la valeur de la fonction pour
chaque combinaison de valeurs possibles en entrée.

Exemple

Table de vérité d'une fonction f de 3 variables x,y,z :


54 Chapitre 3. L'algèbre de Boole

x y z f
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1

Représentation algébrique
Une fonction de n variables peut être dénie à partir d'une combinaison des
variables de la fonction via les opérateurs de base de l'algèbre de Boole.
Exemple
Fonction booléenne de trois (03) variables : x, y et z
f (x, y, z) = x.y + z.(x.y + y)

3.4.3 Formes canoniques


C'est une équation qui permet de localiser directement chaque ligne de la table de
vérité comportant un  1  logique ou un  0  logique. On distingue principalement
deux formes canoniques qui sont :
 somme de produit, première forme canonique,
 produit de somme, deuxième forme canonique.

Minterme - Maxterme
On appelle "Minterme" de n variables, l'un des produits booléens de ces va-
riables ou de leurs complémentaires.
Exemple : Si on considère 4 variables a, b, c et d
a.b.c.d est un minterme, par contre a.b.d n'est pas un minterme.
3.4. Fonctions Booléennes 55

Remarques :

 Il existe 2n Mintermes distincts pour n variables.


 Le symbole ”mj ” est utilisé pour représenter un Minterme particulier.
L'indice j est égale au décimal équivalent au code binaire associé en
posant 1 si une variable est présente, 0 si son complémentaire est
présent.

On appelle "Maxterme" de n variables, l'une des sommes booléennes de ces


variables ou de leurs complémentaires.
Exemple : Si on considère 4 variables a, b, c et d
a + b + c + d est un maxterme, par contre a + b + d n'est pas un maxterme.

Remarques :

 Il existe 2n Maxtermes distincts pour n variables.


 Le symbole ”Mj ” est utilisé pour représenter un Maxterme particulier.
L'indice j est égale au décimal équivalent au code binaire associé en
posant 0 si une variable est présente, 1 si son complémentaire est
présent.

Le tableau ci-dessous présente les Mintermes et les Maxtermes d'une fonction de


trois (03) variables x,y et z :

x y z Mintermes Maxtermes
0 0 0 m0 = x.y.z M0 = x + y + z
0 0 1 m1 = x.y.z M1 = x + y + z
0 1 0 m2 = x.y.z M2 = x + y + z
0 1 1 m3 = x.y.z M3 = x + y + z
1 0 0 m4 = x.y.z M4 = x + y + z
1 0 1 m5 = x.y.z M5 = x + y + z
1 1 0 m6 = x.y.z M6 = x + y + z
1 1 1 m7 = x.y.z M7 = x + y + z

Propriété :
56 Chapitre 3. L'algèbre de Boole

Le complémentaire d'un Minterme est un Maxterme (mj = Mj ) et le complé-


mentaire d'un Maxterme est un Minterme (Mj = mj ).
Exemple
m3 = x.y.z
m3 = x.y.z = x + y + z = M3

Première forme canonique : Somme de Produit


Une fonction logique est écrite sous forme canonique disjonctive (ou première
forme canonique), si elle est représentée par la somme logique de tous les mintermes
pour lesquels la fonction est égale à 1.
Exemple
Pour la fonction f présentée par la table de vérité suivante :

x y z f
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1

f (x, y, z) = x.y.z + x.y.z + x.y.z + x.y.z + x.y.z

Deuxième forme canonique : Produit de Somme


Une fonction logique est écrite sous forme canonique conjonctive (ou deuxième
forme canonique), si elle est représentée par le produit logique de tous les maxtermes
pour lesquels la fonction est égale à 0.
Exemple :
pour la même fonction de l'exemple précédent :
f (x, y, z) = (x + y + z).(x + y + z).(x + y + z)
3.5. Simplication d'une fonction logique 57

3.5 Simplication d'une fonction logique


Soit une fonction logique S = x.y + y.z ...(1)
A l'aide des théorèmes de l'algèbre de boule, on peut écrire :
S = x.y + x.y.z ...(2)
S = x.y ...(3)
La réalisation physique du système qui fournit la sortie S en fonction des entrées
x, y, z peut être eectuée de trois manières diérentes :

1. A partir de la fonction (1) qui a pour coût :

 deux portes "ET" à deux entrées

 trois inverseurs

 une porte "OU" à deux entrées

2. A partir de la fonction (2) qui a pour coût :

 trois portes "ET" à deux entrées

 une porte "OU" à deux entrées

 un inverseur

3. A partir de la fonction (3) qui a pour coût :

 une porte "ET" à deux entrées


Conclusion :
An d'assurer la réalisation physique d'une fonction logique d'une façon
plus simple et moins coûteuse, il est nécessaire de chercher l'expression la
plus simple de cette fonction.

On appelle forme minimale d'une expression logique l'expression sous forme ré-
duite qui comporte :

 Le nombre minimal de termes.

 Le nombre minimal de variables dans chaque terme.

Il existe diverses méthodes de simplication. Trois méthodes seront traitées ci-


après :
58 Chapitre 3. L'algèbre de Boole

 La méthode algébrique.
 La simplication à l'aide des tableaux de Karnaugh
 La méthode de QUINE-MAC CLUSKEY

3.5.1 Simplication algébrique


Dans cette première méthode, on se base essentiellement sur les théorèmes de
l'algèbre de Boole pour simplier les expressions logiques.
Exemples
Simplier les fonctions suivantes :

 f 1(a, b, c) = abc + abc + abc + abc + abc


 f 2(a, b, c) = (a + b)c + bc

Solution :
f 1(a, b, c) = ab(c + c) + ab(c + c) + abc
f 1(a, b, c) = ab + ab + abc
f 1(a, b, c) = a(b + b) + abc
f 1(a, b, c) = a + abc
f 1(a, b, c) = a + bc (d'après le théorème : x + xy = x + y )

f 2(a, b, c) = (a + b) + c + bc
f 2(a, b, c) = ab + c + bc
f 2(a, b, c) = ab + c + b
f 2(a, b, c) = b + c (d'après le théorème d'absorption : x + xy = x )

3.5.2 Simplication par le diagramme de Karnaugh


La méthode de Karnaugh est appropriée pour simplier une fonction ayant jus-
qu'à 5 variables d'entrées. Chaque ligne de la table de vérité est assignée à une
cellule du diagramme de Karnaugh (voir gure 3.7).
La caractéristique principale du tableau de karnaugh est que ses cases adjacentes
horizontalement ou verticalement correspondent à des combinaisons de variables
d'entrées qui se dièrent par l'état d'une seule variable. Le tableau se referme sur
3.5. Simplication d'une fonction logique 59

Figure 3.7: Diagramme de Karnaugh

lui-même : la colonne la plus à gauche est voisine de la colonne la plus à droite,


(même chose pour les lignes du haut et du bas).
On peut simplier une fonction logique représentée par un tableau de karnaugh
en eectuant des regroupements (blocs) de (1, 2, 4, 8, 16, ...) cases adjacentes rem-
plies toutes avec des 1 logiques en commençant par regrouper des cellules comprenant
le plus grand nombre de 1 possible.
Au cours du processus de réduction, une case du tableau peut être utilisée dans
plusieurs groupements an de rendre ceux-ci les plus grand possible.
A chaque bloc correspond un terme formé par le produit logique des variables
qui ne changent pas d'état dans toutes les cases appartenant au bloc.
La fonction logique simpliée est la somme logique de tous les termes des blocs
trouvés.

Tableau de Karnaugh pour 2 variables :

La gure 3.8 donne le tableau de Karnaugh correspondant à la fonction suivante :


f (a, b) = ab + ab + ab

Figure 3.8: Diagramme de Karnaugh à deux variables


60 Chapitre 3. L'algèbre de Boole

Nous choisissons les 2 groupements (blocs) suivants :

 le groupe vertical de deux (02) cases : on a toujours b = 1, donc cela donne le


terme b

 le groupe horizontal de deux (02) cases : on a toujours a = 1, donc cela donne


le terme a

Ceci nous donne l'expression simpliée f (a, b) = a + b.

Tableau de Karnaugh pour 3 variables :

La gure 3.9 donne la table de vérité et le tableau de Karnaugh correspondant


à la fonction f (a, b, c).

Figure 3.9: Diagramme de Karnaugh à trois variables

Nous choisissons les 2 groupements (blocs) suivants :

 un groupe de 4 cases adjacentes : qui donne le terme a

 un groupe de 2 cases : qui donne le terme bc

Ceci nous donne l'expression simpliée f (a, b, c) = a + bc.

Tableau de Karnaugh pour 4 variables :

La gure 3.10 donne le tableau de Karnaugh correspondant à la fonction


f (a, b, c, d).
Nous choisissons les 3 groupements (blocs) suivants :
3.5. Simplication d'une fonction logique 61

Figure 3.10: Diagramme de Karnaugh à quatre variables

 un groupe de 8 cases : qui donne le terme b

 un groupe de 4 cases : qui donne le terme ad

 un groupe de 2 cases : qui donne le terme acd

Ceci nous donne l'expression simpliée f (a, b, c, d) = b + ad + acd.

Tableau de Karnaugh pour 5 variables :

Pour cinq variables binaires a, b, c, d et e, il y a 25 combinaisons = 32 cases. On


utilise une représentation par deux tableaux de 4 variables. La cinquième variable
change de valeur lorsqu'on passe d'un tableau à un autre. Deux cases occupant la
même position dans les deux tableaux sont adjacentes (voir gure 3.11).

Figure 3.11: Diagramme de Karnaugh à cinq variables

Exemple
62 Chapitre 3. L'algèbre de Boole

La gure 3.12 donne le tableau de Karnaugh correspondant à la fonction


(0, 2, 3, 4, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23, 24, 25, 26, 27, 30, 31).
P
f (a, b, c, d, e) =

Figure 3.12: Diagramme de Karnaugh de la fonction f (a, b, c, d, e)

Nous choisissons les 3 groupements (blocs) suivants :

 un groupe de 16 cases (dans les deux tableaux) : qui donne le terme d

 un groupe de 4 cases (dans le tableau avec a=0) : qui donne le terme abe

 un groupe de 4 cases (dans le tableau avec a=1) : qui donne le terme abc

Ceci nous donne l'expression simpliée f (a, b, c, d, e) = d + abe + abc

3.5.3 Méthode de Quine-McCluskey


La technique Quine-McCluskey est une méthode (un algorithme) de simplica-
tion de fonctions logiques qui permet de manipuler plus que 6 variables (utile jusqu'à
10 variables). L'algorithme de Quine-McCluskey est surtout destiné à une utilisation
logicielle.

Étapes de l'algorithme
1. Exprimer la fonction sous forme canonique disjonctive

2. Exprimer les mintermes sous forme binaire

3. Grouper les termes selon leurs poids

4. Unir les termes deux à deux

5. Répéter l'étape (4) autant de fois que nécessaire


3.5. Simplication d'une fonction logique 63

6. Identier les implicants premiers

7. Identier les implicants premiers essentiels

8. Vérier si la fonction est entièrement exprimée par ses implicants essentiels,


auquel cas arrêter

9. Si on n'a pas ni à l'étape (8), choisir les implicants premiers appropriés

Nous allons illustrer la méthode par un exemple.


Considérons la fonction suivante exprimée par sa table de vérité :

a b c d f
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 1
0 1 1 0 0
0 1 1 1 1
1 0 0 0 1
1 0 0 1 0
1 0 1 0 1
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1

1. Exprimer la fonction sous forme canonique disjonctive.


f (a, b, c, d) = abcd + abcd + abcd + abcd + abcd + abcd + abcd + abcd
2. Exprimer les mintermes sous forme binaire.
Pour chaque minterme, on remplace les variables par leur équivalent binaire. Si
la variable est inversée, on pose 0, si elle ne l'est pas, on pose 1.
64 Chapitre 3. L'algèbre de Boole

f (a, b, c, d) = 0101 + 0111 + 1000 + 1010 + 1100 + 1101 + 1110 + 1111

3. Grouper les termes selon leurs poids.


On classe les mintermes selon le nombre de "1" de leur écriture : classe sans "1",
classe avec un seul "1", etc...

Classes itération 0
1 1000
2 0101
1010
1100
3 0111
1101
1110
4 1111

4. Unir les termes deux à deux.


Pour unir deux termes ensemble, il faut qu'ils appartiennent à deux groupe
de poids successifs (0 et 1 ; 1 et 2 ; 2 et 3 ; 3 et 4, et ainsi de suite). Comparer
chaque terme d'un groupe avec chacun des termes du groupe suivant. Si deux termes
dièrent par un seul bit, un nouveau terme est produit avec un  X  à la position
où il y a diérence. Marquer les deux termes ayant engendré un nouveau terme à
l'aide du symbole "1" dans la colonne "repère" an de montrer qu'ils disparaissent
de la formule.
3.5. Simplication d'une fonction logique 65

classes itération 0 repère itération 1


1 1000 1 10X0 (généré en combinant 1000 et 1010)
1X00 (généré en combinant 1000 et 1100)
2 0101 1 01X1 (généré en combinant 0101 et 0111)
1010 1 X101 (généré en combinant 0101 et 1101)
1100 1 1X10 (généré en combinant 1010 et 1110)
110X (généré en combinant 1100 et 1101)
11X0 (généré en combinant 1100 et 1110)
3 0111 1 X111 (généré en combinant 0111 et 1111)
1101 1 11X1 (généré en combinant 1101 et 1111)
1110 1 111X (généré en combinant 1110 et 1111)
4 1111 1

5. Répéter l'étape (4) autant de fois que nécessaire.


On procède comme à l'étape précédente avec les termes de la colonne "itération
1". On inscrit dans la colonne "itération 2" les nouveaux termes obtenus.

classes itération 0 repère itération 1 repère itération 2


1 1000 1 10X0 1 1XX0
1XX0
2 0101 1 01X1 1 X1X1
1010 1 X101 1 X1X1
1100 1 1X10 1 11XX
110X 1 11XX
11X0 1
3 0111 1 X111 1
1101 1 11X1 1
1110 1 111X 1
4 1111 1

Si un terme a déjà été obtenu, on ne le réinscrit plus dans la table (on garde une
seule copie), par contre on repère à l'aide du symbole "1" les deux termes ayant été
66 Chapitre 3. L'algèbre de Boole

combinés.
On réitère le processus jusqu'à ce qu'il n'y ait plus de simplications. Dans
l'exemple, nous pouvons pas réunir aucune paire de termes, l'étape (5) est terminée.
Les termes qui ne peuvent plus être combinés sont repérés à l'aide du symbole
"0".

classes itération 0 repère itération 1 repère itération 2 repère


1 1000 1 10X0 1 1XX0 0
1X00 1
2 0101 1 01X1 1 X1X1 0
1010 1 X101 1 11XX 0
1100 1 1X10 1
110X 1
11X0 1
3 0111 1 X111 1
1101 1 11X1 1
1110 1 111X 1
4 1111 1

6. Identier les implicants premiers.


Tous les termes qui sont repérés par le symbole "0" sont des implicants premiers.
Dans notre exemple, les implicants premiers sont : 1XX0, X1X1 et 11XX
Cette écriture binaire se lit ad, bd et ab respectivement.
7. Identier les implicants premiers essentiels
Arrivé à ce stade, il convient de vérier si l'équation obtenue ne peut pas encore
être simpliée. Pour éliminer les éventuels termes superus, on construit la grille de
McCluskey de la manière suivantes : sur les lignes, on retrouve tous les implicants
premiers identiés et sur les colonnes, on retrouve les mintermes de la fonction.
On indique par des "X" quels mintermes sont couverts par quels implicants.
Lorsqu'il n'y a qu'une croix (X) sur une ligne verticale, elle est entourée par
un cercle. Aussitôt qu'il y a une croix encerclée sur une ligne, l'implicant premier
3.5. Simplication d'une fonction logique 67

correspondant à cette ligne est essentiel (voir gure 3.13).


Dans notre exemple, les implicants premiers essentiels sont : ad et bd .

Figure 3.13: Grille de McCluskey de f

8. Vérier si les implicants premiers essentiels sont susants pour


représenter tous les termes de la fonction.
Si les implicants premiers essentiels couvrent tous les mintermes de la fonction,
la simplication est donc terminée.
Pour que la fonction soit entièrement décrite par ses impliquants essentiels, il
faut que chaque colonne comporte au moins une croix (X) sur les lignes associées
à ces implicants premiers essentiels. C'est le cas de notre exemple et la fonction
simpliée s'écrit donc comme suit :
f (a, b, c, d) = ad + bd
9. Les implicants premiers essentiels ne couvrent pas tous les min-
termes de la fonction .
Dans ce cas, il faut choisir des implicants premiers de façon à ce que tous les
termes soient représentés.
Considérons par exemple le cas d'une fonction pour laquelle l'application de la
technique de Quine-McCluskey mène au résultat suivant (gure 3.14 ) :
Comme on peut s'en rendre compte, les impliquants essentiels sont : ac et ac
Nous remarquons que les mintermes abcd, abcd et abcd ne sont pas couverts
par les impliquants premiers essentiels. Il nous faut donc trouver les impliquants
premiers permettant de couvrir ces mintermes tout en minimisant la fonction. On
reproduit pour ce faire la grille avec les impliquants premiers restants et les min-
termes correspondant (voir gure 3.15) :
Comme on peut le voir, on a le choix entre :
68 Chapitre 3. L'algèbre de Boole

Figure 3.14: Grille de McCluskey

Figure 3.15: Choix des impliquants premiers

(ab , ab d) ou (ab , bcd) ou (bc , ab d) ou (bc , bcd).


Ce qui donne quatre formes simpliées minimales de la fonction :
(1) ac + ac + ab + ab d
(2) ac + ac + ab + bcd
(3) ac + ac + bc + ab d
(4) ac + ac + bc + bcd
3.6. Exercices de TD 3 69

3.6 Exercices de TD 3

Exercice 1
Trouvez, dans chaque cas, la valeur de X pour toutes les valeurs possibles des
variables A, B et C.

1. X = (A + B).C + B

2. X = (A + B).C

3. X = A.B.C + A.B

4. (A + B)(A + B)

Exercice 2
Démontrez les expressions suivantes :

1. A.B + A.(B + C) + B.(B + C) = B + A.C

2. (A.B.(C + B.D) + A.B).C = B.C

3. A.B + A.C + A.B.C = A + B.C

Exercice 3
Vériez les égalités suivantes :

1. A + A.B = 1

2. (A + A.B.C.(A.D + C) + B.C = A + C

3. (A + B).(B + C).(C + D).(D + A) = (A.C + B.D)

Exercice 4
Soit la fonction F(x,y,z) dénie par la table de vérité suivante :

1. Ecrire la fonction logique correspondant à cette table de vérité sous les 2 formes
canoniques.

2. Simpliez la première forme canonique avec la méthode algébrique.


70 Chapitre 3. L'algèbre de Boole

x y z F(x,y,z)
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1

Exercice 5
Donner les tables de vérité des deux fonctions suivantes :

1. F 1(A, B, C) = A.B.C + A.B

2. F 2(A, B, C, D) = A.B.C.D + A.D + AB.C + A.B.D

Exercice 6
Simpliez algébriquement les fonctions suivantes :

1. F 1(A, B, C) = A.B.C + A.B.C + A.B.C + A.B.C

2. F 2(A, B, C) = A.B.C + A.B.C + A.B.C + A.B.C

3. F 3(A, B, C, D) = A.B.C.D + A.B.C.D + A.B.C.D + A.B.C.D + A.B.C.D +


A.B.C.D + A.B.C.D

4. F 4(A, B, C, D) = A.B.C.D + A.B.C.D + A.B.C.D + A.B.C.D + A.B.C.D +


A.B.C.D

Exercice 7
Considérer les fonctions logiques suivantes :

1. F 1(A, B, C) = A.B.C + A.B.C + A.B.C

2. F 2(A, B, C) = A.B.C + A.B + A.B.C


3.6. Exercices de TD 3 71

3. F 3(A, B, C, D) = B.C.D + A.B.D + A.B.C.D


4. F 4(A, B, C, D) = A + A.B + A.B.C + A.B.C.D
Pour chacune d'elles ;
 construire le diagramme de Karnaugh
 utiliser le diagramme pour simplier les expressions.

Exercice 8
Soit la fonction F(A, B, C) dénie par la table de vérité suivante :

A B C F(A,B,C)
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0

1. Générer l'expression logique correspondante sous les 2 formes canoniques.


2. Simplier les deux expressions en utilisant les règles de l'algèbre de Boole.
3. Construire le diagramme de Karnaugh et déterminer une expression logique
simpliée.

Exercice 9
Simpliez en utilisant la méthode de Quine-Mc Cluskey les fonctions suivantes :
1. F 1(A, B, C, D) = B.C.D + A.B.D + A.B.C.D
2. F 2(A, B, C, D) = A.B.C.D + A.B.C.D + A.B.C.D + A.B.C.D + A.B.C.D +
A.B.C.D

3. F 3(A, B, C, D) = A.B.D + A.C.D + A.B.C.D + A.B.D + B.C.D + A.B.C.D

Vous aimerez peut-être aussi