Vous êtes sur la page 1sur 30

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

Chapitre2: Représentation des nombres à virgule (les réels)

Un nombre réel est constitué de deux parties : la partie entière et la partie fractionnelle séparées par une
virgule.

Problème : comment indiquer à la machine la position de la virgule ?

Pour représenter les nombres fractionnaires il est nécessaire de définir la position de la virgule : pour ce
faire, il existe deux formats :
 Format virgule fixe. La position de la virgule est fixe d’où le nom
 Format virgule flottante. Le nombre à plusieurs représentation, la position de la virgule change à
chaque représentation.

2.1 Représentation en virgule fixe

2.1.1 Définition
En se limitant à la représentation binaire en CA2, les nombres fractionnaires vont être représentés de la
manière générale suivante :

Partie partie entière ▪ partie fractionnaire

Cette partie comporte cette partie comporte


Des puissances positives de la des puissances négatives de la
Base 2 base 2

Entre les 2 partie, il ya ce qu’on appelle le point décimal. c’est l’appellation classique en base 10 ( on peut
retenir ce nom pour toutes les bases ; c’est indépendant de la base).

2.1.2 Conversion binaire  décimal


Prenons un exemple simple dont lequel la partie fractionnaire est seulement sur 3 bits :
(0.101)2=( ?)10
2-1 2-2 2-3
0. 1 0 1

= 1 × 2-1 + 0 × 2-2 + 1× 2-3


= 0.5 +0+0.125 =0.625 donc (0.101)2=(0.625)10

Rédigé par : Mme TOUIL M. Page : 1


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

2.1.2 Conversion décimal binaire


La conversion d’un nombre à virgule en binaire se fait en 2 étapes :
 Etape 1 : convertir la partie entière par division successives par 2
 Etape 2 : convertir la partie fractionnaire en : a- multiplier la partie fractionnaire par 2, b- extraire la
partie entière, c- continuer à exécuter a et b tant que la partie fractionnaire restante <>0

Exemple : (4.25)10=( ?)2


1. Etape 1 : (4)10=(100)2
2. Etape 2 :
0.25 × 2 =0.5 on prend 0
0.5 × 2 = 1.0 on prend 1 et fin. Donc (0.25)10= (0.01)2 par conséquent, (4.25)10= (100.01)2

Remarque :
1- Cette méthode de conversion peut êtres généralisée à n’importe quelle base >= 2
2- La conversion peut ne pas être précise. Par exemple : si on veut convertir (0.1) en binaire
0.1 × 2 =0.2
0.2 × 2 =0.4
0.4 × 2 = 0.8
0.8 × 2 =1.6
0.6 × 2 =1.2
0.2 × 2 =0.4
0.4 × 2 =0.8 cette séquence se répète à l’infini donc :
0.8 × 2 =1.6 (0.1)10=(0.0001100110……..)2 la séquence 0011 se répète à l’infini
0.2 × 2 =0.4
.
.
.
Si on veut représenter la partie fractionnaire sur seulement 5 bits, on aura comme valeur en décimal :
(0.00011)2= (0.09375)10 ce qui est une erreur relativement considérable. Donc la valeur (0.1) ne possède pas
une représentation binaire exacte sur un nombre fini de bits n. il y aura forcement une approximation.
Ce n’est pas une faiblesse du binaire, mais il suffit de penser à la base 10 pour laquelle il existe une infinité
de nombre également non exactement représentés avec un nombre fini de chiffres.

3- De manière générale, un nombre signé fractionnaire peut être représenté en SVA à virgule fixe avec
un bit de signe + une partie entière + une partie fractionnaire. Par exemple avec 6 bits dont 3 pour la
partie entière, le nombre (+7.75)10=(0111.11)2 est le plus grand nombre réel.

Rédigé par : Mme TOUIL M. Page : 2


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

2.2 Représentation en virgule flottante


2.2.1 Principe général

La virgule flottante est une méthode d'écriture de nombres réels fréquemment utilisée dans les ordinateurs.
La notation en virgule flottante est tirée de la notation scientifique.

Exemple : 0.85 est écrit 8.5 * 10-1 ou 85 * 10-2


D’où le format suivant : ±m.be
Où :
 b est la base de représentation (2, 8, 10,16….).
 m est la mantisse (en virgule fixe)
 un exposant e (un entier relatif)
Ici dans notre exemple : s=+ car le nombre 0.85 est positif, b=10, m= (8.5 ou 85) et e= (-1 ou -2)
L’utilisation de cette notation revient à coder 3 informations : le signe, la mantisse et l’exposant ce qui
donne pour la 2eme écriture de 0.85 : 0 pour le signe, -2 pour l’exposant et 85 pour la mantisse.

Remarque :
 on remarque que le point décimal et la base ne sont pas représentés (le point décimal est représenté
par l’exposant) ce qui engendre un problème que la normalisation va resoudre
 En base 2, on utilise des exposants biaisés : si on a n bits pour représenter l’exposant, on ajoute 2n-1-1
à l’exposant.
 Car on peut avoir plusieurs représentations pour un même nombre réel et elles ne donnent pas la
même précision. Pour éviter ce problème et garder la meilleure précision, on utilise la mantisse
normalisée. C'est-à-dire :
1- le chiffre à droite du point décimal est différents 0 (donc le 1er bit de la mantisse sera 1).
2- Sa partie entière est nulle (une exception faite pour le 0 est normalisé)

Exemple : 5.86 * 102 et 0.0062 *10-5 ne sont pas normalisés tandis que 0.8105 *102 l’est

2.2.2 Virgule flottante en binaire

En VF binaire, on utilise une exponentiation en base 2. La normalisation de la mantisse « M = 1,f » consiste à


la rendre 1<=M<2. Les nombres très petits ont une forme dénormalisé. En outre parce que le bit significatif
est toujours 1 pour un nombre normalisé, ce bit n’est pas stocké est dit bit caché ou implicite (hidden bit).

Décalage de l'exposant

Rédigé par : Mme TOUIL M. Page : 3


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

On applique un décalage à l'exposant trouvé et on stocke cette valeur décalée. La valeur du décalage dépend
du nombre n de bits utilisés pour stocker l'exposant :
n-1
décalage (biais)= 2 -1

Exemple : on suppose que l’exposant est codé sur 7 bits et la mantisse sur 16 bits.
1- On veut représenter le nombre 125.5
Etape 1 : convertir le nombre en binaire : (125.5)10=(1111101.1)2
Etape 2 : déterminer la mantisse normalisée : (1111101.1)2=1.1111011 × 26. Le bit le plus significatif
sera caché.
Etape 3 : La valeur binaire dans le champ exposant est la valeur réelle décalée par excès d’un biais
le biais = 2nbrBitExpo-1 -1 à l’exposant et déterminer sa représentation en binaire :
Biais= 26-1=63 donc Exposant=6+63=69=(1000101)2. La représentation de 125.5 est donc (comme le
nombre est positif donc le bit de signe =0) :
Signe Exposant Mantisse
biaisé (décalé)
0 100 0101 1111 0110 0000 0000

2- Réciproquement, quel est en décimal le nombre A=[1,1000110,1110101010111100] ?


Le bit de signe=1 donc le nombre est négatif.
Exposant=(1000110)2-(63)10=70-63=7
M=(1.11101010101111)2 après ajout du bit caché donc
A=-M×27= 11110101.0101111=-(27+26+25+24+22+20+2-2+2-4+2-5+2-6+2-7=-245.3671875

2.2.3 La norme IEEE 754


Pour assurer la compatibilité entre machine un standards a été mise en place par l’IEEE (Institute of
Etectrical and Electronics Engineers) c’est la norme 754.
La norme utilise la base 2 et inclut 2 représentations : simple et double précision

Mode Taille totale Exposant Biais Emin Emax mantisse


Simple précision 32 8 127 -126 +127 23
Double précision 64 11 1023 -1022 +1023 52

127=2nbrBitExopsant-1-1=28-1-1=27-1=128-1

Exposant biaisé=exposant réel + 127 (ou 1023) ( simple ou double précision)

Exemple :
Coder les réels suivants (représentés en base 10) en simple précision :

Rédigé par : Mme TOUIL M. Page : 4


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

1) -40 : le nombre est négatif donc bit de signe = 1


(40)10=(101000)2 en SVA  M=1.01000 × 25 (normalisation)
Exposant réel=5 , exposant biaisé(sur 8 bits)= exposant réel+127=5+127=(132)10= (10000100)2
Donc : (1 10000100 01000000000000000000000)2=(42200000)16

2) -0.078125
Bit de signe=1
Représentation binaire : 0.000101
0.078125 × 2 = 0.15625  0
0.15625 × 2 = 0.3125  0
0.3125 × 2 = 0.625  0
0.625 × 2 = 1.25 1
0.25 × 2 = 0.5 0
0.5 × 2 = 1.0  1
Normalisation : 1.01 × 2-4
Exposant réel =-4 , exposant biaisé= -4+127=123=01111011
Donc : 1 01111011 01000000000000000000000

3) 13.625
Bit de signe =0 nombre positif
Représentation binaire : 1101.101 en SVA
Normalisation : 1.101101 × 23
Exposant réel = 3 , exposant biaisé=3+127=130 = 10000010
Donc : 0 10000010 10110100000000000000000

4) 0
Bit de signe : 0 ou 1
Exposant décalé 8 bits :-127+127= (0)10 = (00000000)2
(10000000000000000000000000000000)2 = (80000000)16
ou
(00000000000000000000000000000000)2 = (00000000)16

Coder les nombres en virgule flottante utilisant la nome IEEE754 simple précision :

Rédigé par : Mme TOUIL M. Page : 5


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

1) 0 100 0 001 0 000 1010 0000 0000 0000 0000


Bit de signe = 0  le nombre est positif
Exposant baisé = (1000 0010)2=(130)10=exposant réel+127
Exposant réel= exposant baisé-127=3
Mantisse= 0001010 0000 0000 0000 0000
Normalisation =1.0001010 × 23
Le nombre En SVA =1000.1010 = 1 × 23+ 1× 2-1+1× 2-3= 8+0.5+0.125=8.625

2) 1 100 0 000 0 000 1110 0000 0000 0000 0000


Bit de signe=1  le nombre est négatif
Exposant biaisé = (1000 0000)2=(128)10
Exposant réel=128-127=1
Mantisse normalisée= 1.000111 × 21
Le nombre en SVA=10.00111  1× 2+1× 2-4+1× 2-5+1× 2-6= 2+ 0.0625+0.03125+0.015625=2.109375

2.3 Arithmétiques de base en virgules flottantes

2.3.1 Multiplication
L’algorithme de la multiplication flottante est donc :
1- Multiplication entière des mantisses
2- Le nouvel exposant est égal à la somme des exposants moins le biais
3- Le résultat est normalisé et arrondi au nombre de bits de la mantisse
4- Ajout du signe et suppression du bit caché

Exemple :
Le biais est 127 et la mantisse est à 4 bits
0 10000100 0100 × 1 00111100 1100 = ?

1- Multiplication des mantisses :


Bit de signe 1 = 0  nombre positif
Exposant biaisé 1 = 10000100=132
Exposant réel=132-127=5
Mantisse 1 = 1.1100 × 25
Exposant biaisé 2 = 00111100=60
Bit de signe 2 =1  nombre négatif
Exposant réel =60-127=-67
Additionnons les exposants réels = 5-67=-62
L’exposant biaisé de la multiplication = le résultat de la somme des exposants réels + biais
Exposant biaisé de la multiplication = -62+127=65=1000001

Rédigé par : Mme TOUIL M. Page : 6


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

Multiplication :
1.0100
× 1.1100
00000
00000
10100
10100
10100
10.00110000

Mantisse résultat = 10.00110000 × 265


Normalisons la mantisse =1.00011000 × 21× 265=1.00011000 × 266 ; 66=01000010

Comme la mantisse est sur 4 bits donc le résultat est arrondi au nombre de bit de la mantisse
La valeur résultat est stockée en mémoire comme suit : 1 01000010 0001

Multiplication de deux nombres en virgule flottante IEEE de simple précision :

Soit A=40A00000 et B=C0E00000 . Effectuer A × B


On a pour A :
S E+127 Matisse
0 10000001 01000000000000000000000

Donc A=1.01 × 22

On a pour B
S E+127 Matisse
1 10000001 11000000000000000000000

Donc B=-1.11 × 22

On effectue le produit : 1.01 × 22


-1.11 × 22
101
101
101
-10.0011 × 24
On normalise le résultat pour le mettre sous la forme 1,f et on obtient :
A× B= -1.00011 × 25

Rédigé par : Mme TOUIL M. Page : 7


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

On replace ce résultat dans la norme IEEE :


Exposant biaisé=exposant+127=5+127=132=10000100

S E+127 Matisse
1 10000100 00011000000000000000000
Ou en notation abrégée = C20C0000

Addition de deux nombres en virgule flottante IEEE de simple précision :

Soit A=40E9999A et B=BE99999A en virgule flottante IEEE 754. Effectuer A+B


On a pour A :
S E+127 Matisse
0 10000001 11010011001100110011010
E+127=10000001=129, donc e=2, et la mantisse est 1.11010011001100110011010
Donc A=1.11010011001100110011010 × 22

On a pour B :
S E+127 Matisse
1 01111101 00110011001100110011010
E+127=01111101=125, donc e=-2, et la mantisse=-1.00110011001100110011010
Donc B=-1. 00110011001100110011010 × 2-2

On met B au même exposant que A en déplaçant la virgule de 4 positions vers la gauche.


On obtient alors B =-0.000100110011001100110011010 × 22
On effectue A+B (ici il s’agit d’une soustraction puisque B est négatif)

1.11010011001100110011010 × 22
- 0.00010011001100110011001 1010 × 22
1.11000000000000000000001 × 22
On n’additionne pas les 4 derniers bits de B, car ils sont hors des 23 bits significatifs

On replace le résultat dans la forme IEEE


E+127=129=10000001

S E+127 Matisse
0 10000001 11000000000000000000001
Qu’on peut abréger en notation hexadécimale : 40E00001

Rédigé par : Mme TOUIL M. Page : 8


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

2.4 Exemple de Virgule flottante double précision

Convertir (-532)10
Comme le nombre est négatif, le bit de signe est 1 .
(532)10=(1000010100)2= 1.000010100 × 29
L’exposant biaisé est obtenu en ajoutant 1023. C’est donc 1023+9=1032=10000001000 sur 11 bits
La partie fractionnaire de la mantisse normalisée est 000010100
On a donc le résultat :

S E+1023 Matisse (52 bits)


1 10000001000 0000 1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

Ou en notation abrégée : (C080A00000000000)16

Chapitre3: Représentation des caractères alphanumériques

Rédigé par : Mme TOUIL M. Page : 9


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

En fait, la première codification a été liée au mode de transmission des données vers l'ordinateur.
Pour des raisons de fiabilités, cet octet a été séparé en 2 :

 Les 7 bits de poids fort représentent la donnée


 Le bit de poids fort est réservé pour un contrôle de la donnée (bit de parité)
 Ce qui donne 128 possibilités

A fin de pouvoir transmettre et stocker tous les caractères alphanumériques, des codes ont été établis tels
que :
 Code ASCII
 Code UNICODE

3.1 Code ASCII


Le code ASCII est l’un des plus anciens codes utilisés en informatique.

3.1.1 Description
Le code ASCII (American Standard Code for Information Interchange) définit un jeu de 128 caractères
numérotés de 0 à 127. Sept bits suffisent donc à les coder. Cependant, comme la plupart des ordinateurs
travaillent sur des données représentées sur un nombre de bits multiple de huit, les caractères ASCII sont
codés sur un octet, le bit de poids fort étant 0.
La table ASCII est composée de deux parties :

 La première partie regroupe les caractères non imprimables codés de 0  31 et 127.


Exemple
 Le code ASCII (13)10=(D)16=(15)8 représente un retour chariot (return)
 Le code ASCII (12)10=(C)16=(14)8 représente une nouvelle page
 Le code ASCII (10)10=(A)16=(12)8 représente une nouvelle ligne

 La deuxième partie regroupe les caractères imprimables et leur affecte les nombres (codes) de 32 à
126.

Exemple

- « Bonjour » en code ASCII


‘B’  66 Majuscule ; ‘o’ 111 minuscule ; ‘n’ 110 ; ‘j’ 106 ; ‘u’ 117 ; ‘r’  114
‘Bonjour’ en code ASCII donne : 66 111 110 106 111 117 114 en décimal
Ou bien 426F6E6A6F7572 en Hexadécimal
- Chaque caractère d'un texte codé en ASCII occupe alors un octet : Un texte de 5000 caractères
occupe donc 5 ko.
Rédigé par : Mme TOUIL M. Page : 10
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

Remarque :
 De plus, la codification ASCII a respecté l'ordre de l'alphabet, ce qui permet de manipuler les données
par leur codification et d'en effectuer un tri alphanumérique. Il est possible dans les logiciels d'utiliser
le caractère ASCII ou le code correspondant.

 Les codes de 65 90 représentent les caractères Majuscules et ceux de 97 122 les minuscules. La
différence étant 32 donc il suffit de changer le 6ième bit pour passer de l’un à l’autre.

Exemple
Le code ASCII de ‘B’ = 66 =01000010 et le code ASCII de ‘b’ = 98=01100010. La différence étant au niveau du
6ième bit.

3.1.2 Table ASCII étendue

Le code ASCII a été mis pour la langue anglaise, il ne contient pas les caractères accentués. Il a fallu
donc étendre la table ASCII pour pouvoir coder les nouveaux caractères. Les mémoires devenant plus fiables
et le 8ième bit a pu être utilisé pour coder plus de caractères.
En ajoutant le 8ième bit, la nouvelle table contiendra 256 caractères. Les 128 premiers sont identique à la
table de base le reste permet de faire la différence entre payés.
Parmi ces extensions citons la famille des codes ISO 8859 :
Les codes ISO 8859 sont au nombre de 16 et désignés par ISO 8859-n où n est un entier compris entre 1 et
16.
Tous ces codes définissent chacun un jeu de 224 caractères codés de 0 à 127 et de 160 à 255 (les codes de
128 à 159 sont inutilisés). Tous ces caractères peuvent et sont représentés sur un octet.

Les caractères de codes compris entre 0 et 127 sont ceux du code ASCII.
Les codes ISO 8859 se distinguent par le jeu des caractères de 160 à 255.
Pour avoir les caractères accentués du français il faut utiliser l’ISO 8859-1 (parfois appelé LATIN-1)

Exemple

Avec ISO 8859-1, le é est codé 233.


Pour utiliser les lettres arabes, il faut utiliser l’extension ISO 8859-6
ISO 8859-3 langue Türck
ISO 8859-7 langue Grèce
…..
3.1.3 Exercices :
1- Supposons qu’un fichier contient la chaîne de caractères « Ca va? Ca va! » codée selon l’ASCII pur

Rédigé par : Mme TOUIL M. Page : 11


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

Sur 8 bits.
En décimal : 63 97 32 118 97 63 32 63 97 32 118 97 33
En hexadécimal : 43 61 20 76 61 3F 20 43 61 20 76 61 21

2- Codez en ASCII : Bienvenue Chez MrProof


42 69 65 6E 76 65 6E 75 65 20 43 68 65 7A 20 4D 72 50 72 6F 6F 66
3- Transcoder cette séquence :

4D 72 50 72 6F 6F 66 20 45 78 61 6D 65 6E 73 20 45 78 65 72 63 69 63 65 73 20 41 73 74 75 63 65 73
Texte : MrProof Examens Exercices Astuces

3.2 UNICODE
Au lieu d'utiliser seulement les codes 0 à 127, il utilise des codes de valeur bien plus grande.
Le code UNICODE permet de représenter tous les caractères spécifiques aux différentes langues. De
nouveaux codes sont régulièrement attribués pour de nouveaux caractères: caractères latins (accentués ou
non), grecs. L'alphabet Chinois Kanji comporte à lui seul 6879 caractères.

Les diverses extensions du code ASCII, dont les ISO 8859, présentent l’inconvénient d’être incompatibles
entre elles, et le plus souvent d’être spécialisées pour un jeu de caractères lié à une langue. Comment alors
coder dans un même document des textes rédigés avec des alphabets aussi divers que les alphabets latin,
cyrillique, grec, arabe, ... ?

Le mot paix de par le monde


arabe : ‫السلم‬ Français : paix

C’est pourquoi Unicode a vu le jour au début des années 1990.

Unicode, qui actuellement à sa septième version recense environ 110000 caractères, attribue à chacun d’eux
un nom et un numéro (appelé point de code) le plus souvent exprimé sous la forme U+XXXX. En voici
quelques exemples :

Caractère Nom Numéro (décimal)


A LATIN CAPITAL LETTER A U+0041 (65)
E LATIN SMALL LETTER E WITH ACUTE U+00E9 (233)
ΠLATIN SMALL LIGATURE OE U+0153 (339)
Ε GREEK SMALL LETTER EPSILON U+03B5 (949)
И CYRILLIC SMALL LETTER I U+0438 (1080)
‫ש‬ HEBREW LETTER SHIN U+05E9 (1513)

Rédigé par : Mme TOUIL M. Page : 12


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

Caractère Nom Numéro (décimal)


‫س‬ ARABIC SMALL SEEN U+0633 (1587)
ค THAI CHARACTER KHO KHWAI U+0E04 (3588)
へ HIRAGANA LETTER HE U+3078 (12408)
€ EURO SIGN U+20AC (8364)
☮ PEACE SYMBOL U+262E (9774)

Les caractères de numéros compris entre 0 et 127 sont ceux du code ASCII. Ceux de code compris entre 160
et 255 sont ceux du code ISO 8859-1.

3.2.1 Différents encodages des caractères Unicode

Unicode se contente de recenser, nommer les caractères et leur attribuer un numéro. Mais il ne dit pas
comment ils doivent être codés en informatique.

Plusieurs codages des caractères Unicode existent :

 UTF-32 qui code chaque caractère sur 32 bits (soit quatre octets)
 UTF-16 qui code chaque caractère sur 16 ou 32 bits (soit deux ou quatre octets)
 UTF-8 qui code chaque caractère sur 8, 16, 24 ou 32 bits (soit un, deux, trois ou quatre octets).
Le plus couramment utilisé, notamment pour les pages Web, est UTF-8.

3.2.2 Unicode dans la pratique: UTF-8

Bon. Unicode, dans la théorie, c'est très bien.


Mais dans la pratique, c'est une autre paire de manches:
Généralement en Unicode, un caractère prend 2 octets. Autrement dit, le moindre texte prend deux fois plus
de place qu'en ASCII. C'est du gaspillage.
De plus, si on prend un texte en français, la grande majorité des caractères utilisent seulement le code ASCII.
Seuls quelques rares caractères nécessitent l'Unicode.
On a donc trouvé une astuce: l'UTF-8.

Un texte en UTF-8 est simple: il est partout en ASCII, et dès qu'on a besoin d'un caractère appartenant à
l'Unicode, on utilise un caractère spécial signalant "attention, le caractère suivant est en Unicode".
Par exemple, pour le texte "Bienvenue chez Sébastien !", seul le "é" ne fait pas partie du code ASCII. On écrit
donc en UTF-8:

Pour être rigoureux, on indique quand même au début du fichier que c'est un fichier en UTF-8 à l'aide de
caractères spéciaux:
Rédigé par : Mme TOUIL M. Page : 13
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

Et voilà !
L'UTF-8 rassemble le meilleur de deux mondes: l'efficacité de l'ASCII et l'étendue de l'Unicode. D'ailleurs
l'UTF-8 a été adopté comme norme pour l'encodage des fichiers XML. La plupart des navigateurs récents
supportent également l'UTF-8 et le détectent automatiquement dans les pages HTML.

Rédigé par : Mme TOUIL M. Page : 14


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

Chapitre 4 : Algèbre de Boole

Cette structure algébrique a été étudiée par le mathématicien anglais Georges Boole (1815-1864) pour
formaliser les règles de la logique des propositions. Elle a été publiée dans son ouvrage : « The Mathematical
Analysis of Logic » en 1847.

4.1 Notion de base


4.1.1 Description

L’Algèbre de Boole traite des opérations et des règles applicables à l’ensemble réduit à deux(2)
variables {0,1} (correspondant respectivement à FAUX et VRAI).
L’Algèbre de Boole définit trois (3) opérations de base :

 Deux (2) opérations binaires ‘+’ et ‘.’ Correspondant respectivement au OU et ET logique qu’on les
appelle aussi ‘disjonction’ et ‘conjonction’ respectivement. Ces deux opérations sont applicables sur
2 variables booléenne d’où leur noms « binaire »

 Une (1) opération unaire (correspondant à la négation logique appelée aussi « non logique ».
Cette opération est applicable sur une seule variable d’où son nom « unaire »

4.1.2 Les opérations de base


4.1.2.1 La négation : appelée aussi inversion.

Opérateur unaire (appliqué sur une variable) qui inverse la valeur d’une variable (0 devient 1 et 1
devient 0) ; il est représenté par une barre au-dessus de la variable.
Exemple : , il est représenté comme suit :

4.1.2.2 La disjonction (ou)

Opérateur binaire (appliqué sur deux variables) qui fait la somme logique entre deux variables, il
donne 1 si au moins une des variables en entrée est en état 1, il est représenté par +,
Exemple : A+B, il est représenté comme suit :

Rédigé par : Mme TOUIL M. Page : 15


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

4.1.2.3 La conjonction (et)

Opérateur binaire qui fait le produit logique entre deux variables, il retourne 1 si et seulement si les
deux variables en entrée sont à l’État 1, il est représenté par un point
Exemple : A.B, il est représenté comme suit :

4.1.3 Les opérateurs composés

4.1.3.1 Opérateur NAND (non ET)

Operateur binaire qui fait la négation de l’opérateur ET, il retourne 1 si au moins des variables en
entrée est à 0.
Exemple : non (A.B) est représenté par et il est représenté comme suit :

4.1.3.2 Opérateur NOR (non OU)

Operateur binaire qui fait la négation de l’opérateur OU, il retourne 1 si toutes les variables en entrée
sont à 0
Exemple : non (A+B) est représenté par et il est représenté comme suit :

4.1.3.3 Opérateur XOR (OU Exclusif)

Opérateur binaire qui vérifie si les deux variables en entrée sont différentes, il retourne 1 si et
seulement si une variable d’entrée égale à 1 et l’autre égale à 0.
Exemple : il est représenté comme suit :

Rédigé par : Mme TOUIL M. Page : 16


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

4.2 Propriétés de base

 Associativité
Comme avec les opérations habituelles, certaines parenthèses sont inutiles:

 Commutativité
L'ordre est sans importance:

 Distributivité

 Idempotence

 Éléments neutres

 Absorption

 Simplification

 Complémentarité
et

 Priorité
la négation (non) est prioritaire devant le ET , le ET est prioritaire devant le OU

Rédigé par : Mme TOUIL M. Page : 17


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

4.3 Les théorèmes de l’Algèbre de Boole

 Théorème d’involution :

 Théorème d’inclusion :

Démonstration : mettre A en facteur (distributivité) :

 Théorème d’allégement :

Démonstration : utilisons la distributivité du ET et du OU :

 Théorème d’absorption :

Démonstration par la distributivité du ET :

 Théorème de De Morgan : Porte NAND


Porte NOR

4.4 Table de Vérité


Une table de vérité définit les relations entrée(s)/sortie(s) en faisant la liste de toutes les possibilités.
Une TV contient 2N lignes, N= nombre d'entrées. Et on peut avoir plus d'une sortie.

Exemple : Si une TV possède N entrées et M sorties donc cette TV possède (N+M) colonnes

 Table de vérité AND : S=A.B

Rédigé par : Mme TOUIL M. Page : 18


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

 Table de vérité OR : S=A+B

 Table de vérité non :

4.5 Fonction logique (booléenne)


Une fonction booléenne est une fonction qui peut avoir une ou plusieurs variables booléennes et
retourne l’une des deux valeurs 0 et 1.
Une fonction booléenne F à n variables booléennes est définie comme suit :
F : ExExEx…Xe E tel que : E={0,1}
x1,x2,…,xn →Y=F(x1,x2,…,xn)

4.5.1 Représentation d’une fonction booléenne


Une fonction booléenne peut être représentée de deux manières différentes :
 Soit, par la table de vérité,
 Soit, par la forme algébrique.

4.5.1.1 Par la table de vérité


On a déjà vu qu’une table de vérité est un tableau qui décrit toutes les possibilités de sortie en
fonction des entrées. Pour n variables, la table génère 2n lignes.
Exemple :
Soit la fonction f(a,b)=1 si et seulement si a=0 et b=1, sinon , f(a,b)=0.
On va représenter la fonction f par la table de vérité suivante :

a b F(a,b)
0 0 0
0 1 1
1 0 0
1 1 0

Remarque :
 Deux fonctions sont équivalentes si elles possèdent la même table de vérité

Rédigé par : Mme TOUIL M. Page : 19


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

4.5.1.2 Par la forme Algébrique


On peut représenter une fonction booléenne en utilisant les opérations logiques déjà vues (somme logique
et produit logique).

Exemple :
Soit la fonction booléenne f telle que : avec et sont des termes algébriques

La question qui se pose : Comment passer d’une représentation à une autre ?

→passage de la forme algébrique à la table de vérité :


On peut représenter n’importe quelle fonction booléenne par une table de vérité à partir de son expression
algébrique.
Exemple :
On considère la fonction f précédente :
Pour représenter cette fonction par la table de vérité on procède comme suit :
a b
0 0 1 1 0 1 1
0 1 1 0 0 0 0
1 0 0 1 0 0 0
1 1 0 0 1 0 1

→passage de la table de vérité à la forme algébrique :


Pour représenter une fonction sous forme algébrique à partir de sa table de vérité, on suit les étapes
suivantes :
1- On ne considère dans la TV que les combinaisons de variables pour lesquelles la fonction vaut 1

2- Dans la combinaison, on remplace les 1 par les variables et les 0 par leurs compléments. Ainsi, chaque
combinaison va correspondre au produit logique de ses variables ou de leurs compléments.

3- La fonction sera la somme logique de tous les produits logiques déjà trouvés en 2).

Exemple :
Soit la fonction f représentée par la table de vérité suivante :
a B f(a,b) Terme Algébrique
0 0 1 On remplace le 1er 0 par et le 2ème 0 par
0 1 1 On remplace le 0 par et le 1 par
1 0 0
1 1 1 On remplace le 1er 1 par et le 2ème 1 par

Ainsi, on obtient la fonction

Rédigé par : Mme TOUIL M. Page : 20


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

4.5.2 Les formes canoniques


La forme canonique d’une fonction est la forme ou chaque terme de la fonction comporte toutes les
variables. Ce terme est appelé terme canonique.
Il existe 2 formes canoniques pour chaque fonction booléenne : la forme disjonctive et la forme conjonctive.

4.5.2.1 Terme canonique :


Un terme algébrique est canonique s’il contient une occurrence de chacune des variables impliquées
dans la fonction. (Les occurrences de la variable a sont ).

Exemple :

Est un terme canonique puisqu’il contient les deux compléments des variables a et b.
Est un terme canonique puisqu’il contient les deux variables a et b .

4.5.2.2 Fonction canonique


Une fonction est dite canonique si elle n’est composée que de termes canoniques.

Exemple :
Soient deux fonctions suivantes à 3 variables :
Et
1- On remarque que la fonction f1 est la somme de deux produits ( et ). F1 est dite de
forme canonique disjonctive ou de la première forme canonique (FC1). Les termes et
sont appelés mintermes.
2- On remarque aussi que f2 est le produit de deux sommes et . F2 est dite de
forme canonique conjonctive ou de la deuxième forme canonique (FC2). Les termes et
sont appelés maxtermes.

4.5.2.2.1 Définition d’un mintermes


Un minterme mi est l’un des produits des n variables de la fonction. Toutes les variables
impliquées dans la fonction doivent figurer dans chaque minterme
Un minterme est désigné par mi. L’indice i est obtenu par la conversion en décimal du nombre binaire
associé aux variables.

Par exemple : i=2 est le nombre décimal correspondant au nombre binaire 10, associé à la combinaison
des variables a et b, d’où

Rédigé par : Mme TOUIL M. Page : 21


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

Exemple :
 pour une fonction à 2 variables, on aura 22 =4 mintermes m0, m1, m2 et m3 suivants :

a b Mintermes
0 0
0 1
1 0
1 1

 pour une fonction à 3 variables, on aura 23 =8 mintermes

A b c Mintermes
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

Pour l’exemple précédent : la fonction peut s’écrire de la manière suivante :


par commutativité ou bien : .

4.5.2.2.2 Définition d’un maxtermes


On appelle maxterme Mi, l’une des sommes des n variables impliquées dans la fonction. Toutes les
variables doivent figurer dans chaque maxterme. Le maxterme est désigné par Mi où l’indice i est le nombre
décimal correspondant au nombre binaire associé aux variables.

Par exemple : i=3 est le nombre décimal correspondant au nombre binaire 11 associé à la combinaison
des variables a et b, d’où

Exemple :
 pour une fonction à 2 variables, on aura 22 =4 maxtermes m0, m1, m2 et m3 suivants :
a b Maxtermes
0 0
0 1
1 0
1 1

Rédigé par : Mme TOUIL M. Page : 22


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

 pour une fonction à 3 variables, on aura 23 =8 maxtermes

A b c Maxtermes
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

La fonction peut s’écrire de la manière suivante :


ou bien

4.5.3 Passage aux formes canonique par la table de vérité

Une fonction booléenne peut être exprimée sous forme algébrique à partir de sa table de vérité :
1- Pour obtenir l’expression logique sous la première forme canonique (FC1) (disjonctive), on établit
l’équation logique de la fonction f en sommant les mintermes pour lesquels la fonction (sortie) vaut
1.

2- Pour obtenir l’expression logique sous la deuxième forme canonique (FC2) (conjonctive), on établit
l’équation logique de la fonction en sommant les mintermes pour lesquels la fonction (sortie) vaut
0, puis on calcule .

Exemple : soit la fonction définie comme suit :


F(a,b,c)= 1 si la majorité des variables sont à 1, 0 sinon
- Dresser la table de vérité de la fonction f
- Donner sa 1ère et sa 2ème forme canonique.

Solution :
La fonction f est composée de 3 variables donc la TV possède 23=8 lignes (combinaisons possibles)

Rédigé par : Mme TOUIL M. Page : 23


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

- Table de vérité :

a B C F(a,b,c)
0 0 0 0 , maxterme
0 0 1 0
0 1 0 0
0 1 1 1 ←
1 0 0 0
1 0 1 1 ←a
1 1 0 1 ←a
1 1 1 1 ←a

- 1ère forme canonique :


Elle est égale à la somme des mintermes pour lesquels la
fonction vaut 1
La 1ère forma canonique peut s’écrire aussi par

- 2ème forme canonique :


Elle est égale à la somme des mintermes pour lesquels la
fonction vaut 0.

Calculons

On a appliqué 2 théorèmes : théorème d’involution et théorème de De Morgan

Donc 2ème forme canonique : elle est égale au produit


des maxtermes pour lesquels la fonction vaut 0
La 2ème forme canonique peut s’écrire aussi par :

Rédigé par : Mme TOUIL M. Page : 24


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

4.6 Le logigramme ou circuit combinatoire


Un circuit logique est dit combinatoire si ses valeurs de sortie ne dépendent que de ses valeurs
d’entrées. Il est constitué de portes logique, elles reçoivent des signaux appliqués en entrée et produisent
des signaux en sortie.
Ainsi, une information binaire transmise en entrée est transformée en une autre information demandée en
sortie. Cela permet de schématiser un circuit combinatoire comme suit :

Variables Circuit Variables


d’entrée Combinatoire de sortie

Exemple : soit la fonction


Construire le circuit correspondant à cette fonction

4.7 Le chronogramme
C’est le graphe représentant l’évolution des variables d’entrée et de sortie au cours du temps, tels
que l’état supérieur représente le ‘1’ et l’état inferieur représente le ‘0’.

Exemple : reprenons l’exemple de la fonction f définie comme suit :


F(a,b,c)= 1 si la majorité des variables sont à 1, 0 sinon

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

F(a,b,c) 0 0 0 1 0 1 1 1

Rédigé par : Mme TOUIL M. Page : 25


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

4.8 Simplification des fonctions logiques


Simplifier une fonction revient à réduire le nombre de ses termes ou le nombre de variables dans
un même terme. L’intérêt de simplifier une fonction logique apparait dans la réalisation du circuit logique
qui lui correspond puisque cela réduit le nombre de portes logiques utilisées pour sa réalisation.
Plusieurs méthodes de simplification existent parmi elles on cite :
 Méthode algébrique
 Méthode de KARNAUGH
 Méthode de McClusky

4.8.1 Méthode Algébrique


Le principe consiste à appliquer les règles de l’Algèbre de Boole afin d’éliminer des variables ou
des termes.

Exemple : soit la fonction


On remplace 1 par car 1 est l’élément neutre
Distributivité
Le produit logique est commutatif
La somme logique est commutative
Distributivité
Absorption :
1 est l’élément neutre du produit logique

Ou encore avec la même fonction

Donc

4.8.2 Méthode KARNAUGH (table de KARNAUGH)

En examinant la méthode de simplification algébrique, on remarque que cette dernière devient très
difficile si le nombre des variables est grand. La méthode de KARNAUGH est une technique de simplification
rapide.

Une table de KARNAUGH est une grille comportant un nombre de cases vides égal au nombre de
combinaisons des variables de la fonction booléenne qu’on se propose de simplifier.

 Pour une fonction à une variable, la table comprend une seule case qui peut prendre la valeur 0 ou 1.
 Pour une fonction à deux variables a et b, la table sera constituée de 22=4 cases. Dans la 1ère colonne
de cette table, on met les valeurs possibles pour la variable a, et dans la 1ère ligne, les valeurs
possibles pour la variable b.

Rédigé par : Mme TOUIL M. Page : 26


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

 Pour une fonction à n variables, la table sera constituée de 2n cases : une case est associée à chaque
état d’entrée ;
Chaque case contient la valeur de la fonction correspondant à l’état d’entrée associé à la case
 Cette représentation est équivalente à celle de la table de vérité : c'est-à-dire qu’une ligne de la table
de vérité correspond à une case du tableau de KARNAUGH.

Exemple : cas d’une fonction à deux variables


Soit la fonction
Par la méthode algébrique, on peut simplifier cette fonction comme suit :

; On a
; Par commutativité
;

Donc la forme simplifiée de f est :


Essayons, maintenant de simplifier cette même fonction en utilisant ta table de KARNAUGH.
Pour ce faire, on doit suivre ces étapes :

1- Remplir les cases du tableau avec des 1


Pour remplir le tableau, on suit ces étapes :
 La fonction doit être sous la 1ère forme canonique (somme logique des mintermes)
 Pour chaque minterme de la fonction, on met un 1 dans la case lui correspondant dans le
tableau.

Pour notre exemple, essayons de remplir le tableau de KARNAUGH correspondant :

On a 3 cases à remplir par 1 :

a\b 0 1
0 1 Cases adjacentes
1 1 1

Cases adjacentes

La case correspondante au minterme

On met un 1 dans la case se trouvant à l’intersection de la ligne où et la colonne pour laquelle .


On refait la même opération avec les autres termes de la fonction.
Dans le tableau, les cases d’une même ligne sont adjacentes ainsi que les cases d’une même colonne.
Rédigé par : Mme TOUIL M. Page : 27
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

Deux cases sont adjacentes si un seul état de la variable qui change.

2- Simplification :
a- Essayer de regrouper les cases adjacentes qui comportent des 1
b- Essayer de faire des regroupements avec le maximum de cases (16, 8, 4, 2,1)
c- On s’arrête lorsqu’il y a plus de 1 en dehors des regroupements
d- On élimine les variables qui changent d’états
e- La fonction finale est égale à la somme des termes dont l’état des variables ne change pas à
f- Une ou plusieurs cases peuvent être communes à plusieurs regroupements

Pour notre exemple :

a\b 0 1
0 0 1
1 1 1

La fonction simplifiée est : par insertion des 1 on la note


Autre simplification par insertion des 0 : cette simplification consiste à regrouper les cases adjacentes qui
comportent des 0. C’est le même principe que l’insertion des 1 sauf que la fonction simplifiée sera et non
pas .

Donc  or donc

Cas d’une fonction à 3 variables :

Pour une fonction à 3 variables, il ya 23 combinaisons donc 8 cases.


L’ordre de combinaisons de 0 et 1 : 00, 01, 11, 10. Pour passer d’une combinaison à une autre, un seul bit
change de valeur, à la fois : 00  01 le 2ème 0 change en 1
01  11 le 0 change en 1
11  10 le 2ème 1 change en 0
Exemple :
Soit la fonction :

a/b.c 00 01 11 10
0 1 0 0 1
1 0 1 1 1

Simplification par insertion des 1 :


Simplification par insertion des 0 :

a/b.c 00 01 11 10
0 1 0 0 1
1 0 1 1 1

Rédigé par : Mme TOUIL M. Page : 28


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

Cas d’une fonction à 4 variables :

Pour une fonction à 4 variables, il ya 24 combinaisons donc 16 cases.


Soit une fonction

Simplification :

Cas d’une fonction à 5 variables :

Pour une fonction à 5 variables, il ya 25 combinaisons donc 32 cases.


La table est devenue très grande. Pour remédier à cela, on peut la partager en deux tables de 4 variables.
Voici à quoi ressemble une table de KARNAUGH avec 5 variables :

Le tableau de Karnaugh ne représente que quatre variables au maximum, pour simplifier une fonction
f(a,b,c,d,e) de cinq variables il faut suivre les étapes suivantes :

 Ecrire la fonction f dans la première forme canonique.


 Transformer f en deux fonctions : ( , , , , )= . ( , , , ,1)+ . ( , , , ,0) .
 Simplifier les deux fonctions f(a,b,c,d,1) et f(a,b,c,d,0) qui contient quatre variables par le tableau de
Karnaugh .

Rédigé par : Mme TOUIL M. Page : 29


Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université Alger 1
Faculté des sciences
Département Mathématiques Informatique

 Réécrire f en fonction de ces deux fonctions simplifiées

Exemple :

 Ecriture en forme canonique :

 Transformation de f en deux fonctions

 Simplification de chaque fonction :

Donc

Cas d’une fonction à 6 variables :

Pour une fonction de six variables G (a,b,c,d,e,f) il suffit de suivre les mêmes étapes qu’avec cinq
variables sauf que la fonction est transformée de la manière suivantes :
G( , , , , , )= . .G( , , , ,1,1)+ . .G( , , , ,1,0)+ . .G( , , , ,0,1)+ . .G( , , , ,0,0)

Remarque : Au-delà de 6 variables, la méthode de Karnaugh n'étant plus valable, on utilise la méthode de
McClusky.

Rédigé par : Mme TOUIL M. Page : 30

Vous aimerez peut-être aussi