Partie1 EN

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

ELECTRONIQUE

NUMÉRIQUE
Cours

Prof. A.EL-AMIRI
Plan du cours Base binaire
01

Numération et changement de bases, codage


02

Systèmes combinatoires
03

Systèmes séquentiels
04
INTRODUCTION
La création de la numération est un des faits
les plus marquants de l'histoire de
l'humanité. Si la plupart des civilisations ont
adopté le système décimal, c'est qu'il a
toujours été naturel de compter sur ses
doigts. L'utilisation des phalanges et des
articulations permit même d'améliorer ce
simple procédé connu de tous.
INTRODUCTION
Système de numération

Un langage, c’est :


 Un alphabet : ensemble de symboles utilisés
On utilise les " systèmes  Des mots, des phrases : combinaisons des éléments (des lettres) de
de numération" pour
compter des objets et de l’alphabet.
les représenter par des  Une syntaxe : ensemble de règles qui définissent comment construire
nombres.
ces mots et ces phrases.
Prenons le système Système décimale base 10
décimale base 10, on
l’utilise tous les jours.  Alphabet: 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
 Mots: 2856,45
Langage compréhensible
par l’homme.  Syntaxe: c’est un code de position. Cela signifie que la valeur d’un
chiffre dépend de sa position dans le nombre : son rang.

(Exemple: 2856 est différent de 8652, pourtant se sont les mêmes


symboles qui sont utilisés).
INTRODUCTION
Rang et Poids

Le rang
2 8 6 5
Position d’un chiffre dans un nombre, le
rang se compte en partant de la droite, à Rang 4 3 2 1 X multiplication
partir du rang 1.
Poids 1000 100 10 1

Le poids
A chaque rang est associé un poids, c’est-à-dire
VALEUR = (2 x 1000) + (8 x 100) + (6 x 10) + (5 x 1)
le coefficient par lequel il faudra multiplier le
2000 + 800 + 60 + 5 = 2865
chiffre pour obtenir sa valeur réelle.
INTRODUCTION
Rang et Poids

On peut déduire une formule


Si on reprend l’exemple précédent
qui lie le poids et le rang.

0 2 8 6 5
1 POIDS = BASE (RANG –1)
Rang POIDS = 10 (1 –1)= 100=1
4 3 2 1
0
Pour le système décimal Base = 10 Poids 1000 100 10 1
2
(2 –1)= 101=10
103 102 101 100 POIDS = 10
0
3
POIDS = 10 (RANG –1)
VALEUR = (2 x 103) + (8 x 102) + (6 x 101) + (5 x 100)
= 2865
BASE BINAIRE

Langage la codification Langage


compréhensible (ou le codage) compréhensible
par l’homme par la machine
BASE BINAIRE

Système binaire base 2


 Alphabet: 0 , 1
 Mots: 01101,101
 Syntaxe: code de position
 Nous sommes en base 2
POIDS = 2(RANG –1)
 Notation des nombres
 n2 ex: (1001)2 pour un nombre en base 2
 n10 ex: (9)10 pour un nombre en base 10
Numération
et changement de bases
Numération et changement de bases
Base 2 vers base 10

POIDS = 2(RANG –1)

 Exemple: (11100110)2 (?)10

1 1 1 0 0 1 1 0
RANG 8 7 6 5 4 3 2 1
POIDS 27 26 25 24 23 22 21 20
POIDS = 2 (6 –1)= 25=32

VALEUR = (1 x 27) + (1 x 26) + (1 x 25) + (0 x 24) + (0 x 23) + (1 x 22) + (1 x 21) + (0 x 20)


= 128 + 64 + 32 + 0 + 0 + 4 + 2 + 0 = (230)10
Numération et changement de bases
Base 10 vers base 2

Première méthode : les divisions successives Deuxième méthode : les soustractions successives

Exemple : (230)10 (?)2 Exemple : (230)10 (?)2

On recherche le plus grand poids que l’on peut


retrancher au nombre à convertir (230)10
Ici, on peut retirer 128 (27) donc on note 1 sous ce
Poids.

Poids 128 64 32 16 8 4 2 1
Reste 102 38 6 6 6 2 0 0

Réponse : (11100110)2 (1 1 1 0 0 1 1 0)2


Les opérations binaires
L’addition

Exemple:

(1011)2+ (0110)2
+ 0 1
Soit (11)10 + (6)10 = (17)10
0 0 1
1 1 1 Retenues intermédiaires

1 1 0* 1 0 1 1
+
0 1 1 0
* 1+1=10 ---------------------
Je pose 0 et je retiens 1 1 0 0 0 1

(17)10
Les opérations binaires
La soustraction

Exemple:

(1011)2 - (0110)2
- 0 1
Soit (11)10 - (6)10 = (5)10
0 0 1*

1 1 0 1 0 1 1
-
0 1 1 0
*Je pose 1 et je retiens 1 1 Retenues intermédiaires
---------------------
0 1 0 1

(5)10
Les opérations binaires
La multiplication

Exemple:

(1011)2 x (110)2
0 1 Soit (11)10 x (6)10 = (66)10
x
1 0 1 1
0 0 0 x 1 1 0
---------------------
1 0 1 Retenues intermédiaires 1 1 1 1
0 0 0 0
1 0 1 1 .
1 0 1 1 . .
--------------------------
1 0 0 0 0 1 0

(66)10
Les opérations binaires
La division

Exemple: 1 0 1 1 0 0 1 0 0
-
1 0 0
(101100)2 (100)2 --------- 1 0 1 1 (11)10
1 1
Soit (44)10 (4)10 = (11)10 1 1 0 Sens de lecture
-
1 0 0
---------
-1 0 0
1 0 0
---------
0
Le système octal et hexadécimal

Le système octal Base


8

Le langage binaire a
l’avantage d’être
compréhensible par la
machine mais il est Par conséquent,
difficilement «assimilable» on utilise d’autres
par l’homme dès lors qu‘il systèmes de notation
est questions de grandes
séries binaires.

Le système hexadécimal Base


16
Le système octal
Définition du langage

 Alphabet: 0 , 1, 2 , 3 , 4 , 5 , 6 , 7
 Mots: 125,57
 Syntaxe: code de position
 Nous sommes en base 8
POIDS = 8(RANG –1)
 Notation des nombres
 n8 ex: (2542)8 pour un nombre en base 8
Le système octal
Base 8 vers base 10

POIDS = 8(RANG –1) Premières puissances de 8

n 8n
 Exemple: (1207)8 (?)10 0 1
1 8
1 2 0 7 2 64
RANG 4 3 2 1 3 512
4 4096
POIDS 83 82 81 80
5 32 768
POIDS = 8 (4 –1)= 83 = 512 6 262 144
7 2 097 152
VALEUR = (1 x 83) + (2 x 82) + (0 x 81) + (7 x 80)
= 512 + 128 + 0 + 7 = (647)10
Le système octal
Base 10 vers base 8 Base 2 vers base 8
Méthode des divisions successives Un nombre octal est constitué de chiffres de 0 à 7 qui
constituent le regroupement de 3 chiffres binaires (car
Même principe que pour le système binaire,
23= 8).
SAUF que l’on divise par 8.
Le regroupement se fait en commençant par la droite.
Exemple : (647)10 (?)8
Exemple : (1010000111)2 (?)8

1 0 1 0 0 0 0 1 1 1
Rang 3 2 1 3 2 1 3 2 1 3 2 1
Poids 22 21 20 22 21 20 22 21 20 22 21 20
Valeur 0+0+1 0+2+0 0+0+0 4+2+1

( 1 2 0 7 )8
Réponse : (1207)8
Le système octal
Base 8 vers base 2

Il suffit de savoir compter jusqu’à 7 en binaire !


Base 10 Base 2
 Exemple: (1207)8 (?)2 0 0
1 1
1 2 0 7 2 10
3 11
4 100
5 101
1 0 1 0 0 0 0 1 1 1
6 110
7 111

Résultat ( 1 0 1 0 0 0 0 1 1 1 )2
Les opérations en octal
Addition Soustraction

Exemple : (2572)8 + (310)8 Exemple : (2572)8 - (610)8

Soit (1402)10+ (200)10= (1602)10 Soit (1402)10 - (392)10 = (1010)10

1 1
2 5 7 2
2 5 7 2 -
+ 1 6 1 0
3 1 0 ---------------------
--------------------- 1 7 6 2
3 1 0 2
(5 + 8) – 6 = 7
Le système hexadécimal
Définition du langage

 Alphabet: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
 Mots: 2F5,57D
 Syntaxe: code de position
 Nous sommes en base 16
POIDS = 16(RANG –1)
 Notation des nombres
 n16 ex: (2AF2)16 pour un nombre en base 16
Le système hexadécimal
Base 16 vers base 10

POIDS = 16(RANG –1) Premières puissances de 16

n 16n
 Exemple: (1A8F)16 (?)10 0 1
1 16
1 A 8 F 2 256
RANG 4 3 2 1 3 4096
4 65 536
POIDS 163 162 161 160
5 1 048 576
POIDS = 16 (3 –1)= 162 = 256 6 16 777 216

VALEUR = (1 x 163) + (10x 162) + (8 x 161) + (15x 160)


= 4096 + 2560 + 128 + 15
= (6799)10
Le système hexadécimal
Base 10 vers base 16 Base 2 vers base 16
Méthode des divisions successives Un nombre hexadécimal est constitué de chiffres de 0 à F
qui constituent le regroupement de 4 chiffres binaires (car
Même principe que pour le système binaire,
24= 16).
SAUF que l’on divise par 16.
Le regroupement se fait en commençant par la droite.
Exemple : (7004)10 (?)16
Exemple : (1101101011100)2 (?)16

Détails
1 1 0 1 1 0 1 0 1 1 1 0 0
437 x 16 = 6992
7004 –6992 = 12 C Rang 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1
27 x 16 = 432 Poids 24 22 21 20 24 22 21 20 24 22 21 20 24 22 21 20
437 – 432 = 5
Valeur 0 + 0+0+1 8 + 0+2+1 0 + 4+0+1 8 + 4+0+0
27 –16 = 11 B

( 1 B 5 C ) 16
Réponse : (1B5C)16
Le système hexadécimal Base 16 Base 2
Base 16 vers base 2 0 0
1 1
2 10
Il suffit de savoir compter jusqu’à 15 en binaire !
3 11
 Exemple: (1B5C)16 (?)2 4 100
5 101

1 B 5 C 6 110
7 111
8 1000
9 1001
0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 A 1010
B 1011
C 1100
Résultat ( 1 1 0 1 1 0 1 0 1 1 1 0 0 )2
D 1101
Bit de poids le plus faible E 1110
LSB (Less significant Bit) F 1111
Le système hexadécimal
Base 16 vers base8

Pour passer de la base 16 vers la base 8 ou inversement, le plus simple est de


repasser par le binaire.

 Exemple: (FF0)16 (?)8

(FF0)16 = (1111 1111 0000)2

(111 111 110 000)2= (7760)8


Les opérations en hexadécimal
Addition Soustraction

Exemple : (2F12)16 + (3C0)16 Exemple : (2F12)16 - (3C0)16

Soit (12050)10+ (960)10= (13010)10 Soit (12050)10- (960)10= (11090)10

1
2 F 1 2
2 F 1 2 -
+ 3 C 0
3 C 0 1
--------------------- ---------------------
3 2 D 2
2 B 5 2
C 12
1 + 12 = 13 D (1 + 16) – 12 = 5
Codes
Code BCD «Binary Coded Decimal» Code Gray ou binaire réfléchi
Décimal Codé Binaire : en français Code à symétries multiples 0
Chaque chiffre d'un nombre est codé sur 4 bits Construction 1 Symétrie
Exemple 1
Miroir
0
1 2 9 00
01 On complète par des 0 00
11 01
On complète par des 1
0 0 0 1 0 0 1 0 1 0 0 1 10 11
10
000 Symétrie
(129)10= ( 0001 0010 1001)BCD 10
001 11
5 6 2 011 01
0 1 0 On complète par des 0 00
1 1 0 On complète par des 1
0 1 0 1 0 1 1 0 0 0 1 0 111
101
(562)10= ( 0101 0110 0010)BCD 100
Code Gray
Codes
Conversion de la base binaire au code Gray Conversion du code Gray à la base binaire
 Le bit de gauche, du poids le plus fort, reste le même  Le bit de gauche, du poids le plus fort, reste le même qu’en
qu’en binaire; binaire;
 De la gauche vers la droite, chaque bit est additionné à  De la gauche vers la droite, on additionne au bit Gray le
son voisin de droite. La somme est reportée à la ligne résultat binaire de la colonne précédente. Les retenues sont
inférieure, qui correspond au code Gray. Les retenues négligées.
sont négligées.  Le résultat en binaire comporte toujours le même nombre de
 Le résultat en Gray comporte toujours le même bits que la représentation Gray.
nombre de bits que la représentation binaire ordinaire.
Représentation des caractères
Codage des caractères Exemple :
− Le code 65 (01000001)2 correspond au caractère A
− Le code 97 (01100001)2 correspond au caractère a
− Le code 58 (00111010)2 correspond au caractère :
 Les caractères englobent : les lettres
alphabétiques ( A, a, B, b,.. ),
les chiffres, et les autres symboles
( > , ; / : …. ).
 Le codage le plus utilisé est le ASCII
(American Standard Code for
Information Interchange).
 Dans ce codage chaque caractère est
représenté sur 8 bits.
 Avec 8 bits on peut avoir 28 = 256
combinaisons.
 Chaque combinaison représente un
caractère.
Représentation des nombres entiers
 Il existe deux types d’entiers :
Méthode1: signe/valeur absolue
− les entiers non signés ( positifs )
 Si on travail sur n bits, alors le bit de poids fort indique le signe
− les entiers signés ( positifs ou négatifs )
du nombre:
Problème :Comment indiquer à la machine  0 indique un nombre positif
qu’un nombre est négatif ou positif ?  1 indique un nombre négatif

 Il existe 3 méthodes pour représenter les nombres négatifs :  Les autres bits indiquent la valeur absolue
− Signe / valeur absolue Exemple
− Complément à 1 (complément restreint )
− Complément à 2 (complément à vrai )

Représentation des nombres négatifs


En décimal on utilise les signes «+» ou «-»:
− Positif :+ 114 ou 114 Négatif : -114
Comment représenter un nombre négatif dans un ordinateur ?
Contraintes :
− En binaire seul 0 et 1 sont utilisables.
− Utilisation d’un nombre fixe de bits.
Représentation des nombres négatifs
Méthode1: signe/valeur absolue Avantages et inconvénients de la représentation S/VA

Avantage
 Sur 3 bits on obtient :
 C’est une représentation assez simple

Signe VA Valeur  Les valeurs sont comprises Inconvénients


entre -3 et +3.  Le zéro possède deux représentations +0(000) et -0(100) ce
0 00 +0
0 01 +1 qui conduit à des difficultés au niveau des opérations
0 10 +2 -3≤N≤+3
0 11 +3 arithmétiques.
- ( 4-1 ) ≤ N ≤ + (4 -1 )
1 00 -0  Pour les opérations arithmétiques il nous faut deux circuits:
1 01 -1 - (22-1) ≤N≤+ (22-1 )
l’un pour l’addition et l’autre pour la soustraction .
1 10 -2
1 11 -3
- (2 (3 -1) -1) ≤ N ≤ + (2 (3 -1) -1 )
L’idéal est d’utiliser un seul circuit pour faire les deux
opérations, puisque
Si on travail sur n bits, l’intervalle des valeurs qu’on peut
représenter en S/VA:
a-b=a+(-b)
- (2 (n -1) -1) ≤ N ≤ + (2 (n -1) -1 )
Représentation des nombres négatifs
Méthode 2: Représentation en complément à un Exemple
Sur 4 Bits Sur 5 Bits
 On appel complément à un d’un nombre N le nombre N’
tel que :
N+N’=2n-1
n: est le nombre de bits de la représentation du nombre N.

 Exemple
 Remarque 2
Soit N=1010 sur 4 bits N’= (24 -1) - N
Le complément à un du complément à un d’un nombre est égale
N’=(16-1 ) - (10) = (1111)2 – (1010)2= 0101
au nombre lui même .
1010 N CA1(CA1(N))= N
+ On dispose également d’un bit de signe comme dans la méthode
0101 N’ « signe / valeur absolue » mais pour la valeur négative on prend
--------------------- le complément à 1 de la valeur absolue.
= 1111
 Remarque 1 Pour la valeur positive on garde la même valeur que dans la

Pour trouver le complément à un d’un nombre, il suffit méthode Signe/Valeur absolue.

d’inverser tous les bits de ce nombre: le bit 0 devient 1 et le Pour la valeur négative on complément à 1 et on prend «1» pour

1 devient 0. le bit de signe.


Représentation des nombres négatifs
Méthode 2: Représentation en complément à un Le bit du poids fort indique qu'il s'agit d'un nombre négatif.

 Exemple 1 Valeur = - CA1(101010)


= -(010101)2 = - (21)10
 Sur 3 bits on obtient :
Valeur en Valeur en Valeur
CA1 binaire décimal

000 000 +0
001 001 +1
010 010 +2
011 011 +3
111 - 000 -0
110 - 001 -1
101 - 010 -2
100 - 011 -3

 Exemple 2  Dans cette représentation, le bit du poids fort nous indique le


signe.
Quelle est la valeur décimale représentée par la valeur
 On remarque que dans cette représentation le zéro possède
101010 en complément à 1 sur 6 bits ?
aussi une double représentation (+ 0 et – 0).
Représentation des nombres négatifs
Méthode 2: Représentation en complément à un

 Sur 3 bits on remarque que les valeurs


sont comprises entre -3 et +3.

-3≤N≤+3
- ( 4-1 ) ≤ N ≤ + (4 -1 )
- (22-1) ≤ N ≤ + (22-1 )
- (2 (3 -1) -1) ≤ N ≤ + (2 (3 -1) -1 )

Si on travail sur n bits, l’intervalle des


valeurs qu’on peut représenter en CA1:
- (2 (n -1) -1) ≤ N ≤ + (2 (n -1) -1 )
Représentation des nombres négatifs
Méthode 2: Représentation en complément à deux
Représentation des nombres négatifs
Méthode 2: Représentation en complément à deux
 Remarque 1
 Pour obtenir la représentation du nombre négatif il faut  Pour trouver le compétemment à 2 d’un nombre: il faut
inverser tous les bits du nombre positif et y ajouter 1. parcourir les bits de ce nombre à partir du poids faible
et garder tous les bits avant le premier 1 et inverser les
 Par exemple, -113 s’obtient de la façon suivante: autres bits qui viennent après.

+113

Inversion des bits

+ 1 Additionne 1  Remarque 2
 Dans cette représentation, le bit du poids fort nous indique le
= - 113 signe ( 0:positif, 1:négatif ).
 Le complément à deux du complément à deux d’un nombre est
-128 + 8 + 4 + 2 +1
égale au nombre lui même.

CA2(CA2(N))= N
Représentation des nombres négatifs
Méthode 2: Représentation en complément à deux
 Exemple  CA2(0) = (111) + 1 = 1 000 = (000) sur 3 bits.
 Quelle est la valeur décimale représentée par la valeur 101010 en  On remarque que le zéro n’a pas une double
complément à deux sur 6 bits ? représentation.
 Le bit du poids fort indique qu'il s'agit d'un nombre négatif.
 Sur 3 bits on remarque -4≤N≤+3
Valeur = - CA2 (101010)
= - (010101 + 1) que les valeurs sont - 4 ≤ N ≤ + (4 -1 )
= - (010110)2
comprises entre - 22 ≤ N ≤ + (22-1 )
= - ( 22)
 Sur 3 bits on obtient : - 4 et + 3.
- 2 (3 -1) ≤ N ≤ + (2 (3 -1) -1 )
Valeur en Valeur en Valeur Valeur en Valeur en Valeur
CA1 binaire décimal CA 2 binaire décimal Si on travail sur n bits, l’intervalle des
000 000 +0 000 000 +0 valeurs qu’on peut représenter en CA2:
001 001 +1 001 001 +1
- (2 (n -1) ) ≤ N ≤ + (2 (n -1) -1 )
010 010 +2 010 010 +2
011 011 +3 011 011 +3
 La représentation en complément à deux
111 - 000 -0 111 - 001 -1
110 - 001 -1 110 - 010 -2 ( complément à vrai ) est la représentation la
101 - 010 -2 101 - 011 -3
plus utilisée pour la représentation des nombres
100 - 011 -3 100 - 100 -4
négatifs dans la machine.
Opérations arithmétiques en CA2
 Effectuer les opérations suivantes sur 5 Bits, en utilisant
 Si on prend deux nombres entiers a et b sur n bits, on
la représentation en CA2
remarque que la soustraction peut être ramener à une
addition : +9 0 1 0 0 1
+ Le résultat est positif
a–b=a+(-b)
+4 0 0 1 0 0 (01101)2= ( 13)10
 Pour cela il suffit de trouver une valeur équivalente à - b? --------- -----------------------
+ 13 0 1 1 0 1
a – b = a + 2n – b = a + (2n –1) – b + 1

+9 0 1 0 0 1
 On a b + CA1(b)= 2n – 1 donc CA1(b) = (2n – 1) – b Le résultat est positif
+
 Si on remplace dans la première équation on obtient :
-4 1 1 1 0 0 (00101)2= ( 5)10
--------- -----------------------
a – b = a + CA1(b) + 1 +5 1 0 0 1 0 1
= a + CA2(b)

 On a donc transformer la soustraction en une addition .


Report
Opérations arithmétiques en CA2
Retenue et débordement
-9 1 0 1 1 1  On dit qu’il y a une retenue si une opération arithmétique
+ Le résultat est négatif :
génère un report.
-4 1 1 1 0 0 Résultat = - CA2 (10011)
 On dit qu’il y a un débordement (Over Flow) ou
--------- ----------------------- = - ( 01101)
= - 13 dépassement de capacité: si le nombre de bits utilisés
- 13 1 1 0 0 1 1
est insuffisant pour contenir le résultat. L’opération est
donc fausse.
Report  Cas de débordement

-9 1 0 1 1 1 +9 0 1 0 0 1
+ Le résultat est positif :
+
+9 0 0 1 0 1 (00000)2= ( 0)10 +8 0 1 0 0 0
--------- ----------------------- --------- -----------------------
+0 1 0 0 0 0 0 + 17 1 0 0 0 1

Report Négatif
Opérations arithmétiques en CA2
Retenue et débordement

10  Débordement si la somme de deux nombres positifs donne


-9 1 0 1 1 1 un nombre négatif.
+  Ou la somme de deux nombres négatifs donne un Nombre
-8 1 1 0 0 0 positif.
--------- -----------------------  Il n’y a jamais un débordement si les deux nombres sont de
- 17 0 1 1 1 1 signes différents.

Positif
Représentation des nombres fractionnaires
 Ce sont des nombres qui comportent des chiffres après
la virgule.
Nombre sur N bits
 Un nombre réel est constitué de deux parties : la partie
entière et la partie fractionnelle.

 En base 10 bN-1-k .....b1b0 b-1b-2…….b-k


98,765 = 9.10 1 + 8.10 0 + 7.10 - 1 + 6.10 - 2 + 5.10 – 3
Partie fractionnaire
 En base n Partie entière sur k bits
an … a0, … a-p = an bn + ….. + a0 b0 + …..+ a-p b-p
 Exemples

(10,101)2 = 1 . 21 + 0 . 20 + 1 . 2 - 1 + 0 . 2- 2 + 1 . 2- 3 = ( 2,625 )10


(2,07)8 = 2 . 80 + 0 . 8 - 1 + 7 . 8 - 2 = 2 + 0,109375 = (2,109375)10
(F,5)16 = F . 16 0 + 5 . 16 – 1 = 15 + 0,3125 = ( 15,3125 ) 10
Passage de la base 2 à la base 10 Passage de la base 10 à la base n

Conversion binaire -décimal d'une partie fractionnaire  La partie entière est transformée en effectuant des divisions
successives.
On peut décomposer la partie fractionnaire en  On multiplie la partie fractionnaire par n, On répète l’opération
puissance de 2 négatives. sur la partie fractionnaire du produit jusqu’à ce qu’elle soit nulle
(ou que la précision souhaitée soit atteinte),
Exemple : (0,101001)2 (0,64062510)10  Ce codage peut s’écrire sous la forme:

[partie entière en binaire, partie décimale en binaire]

Exemple : (54,25)10 = (54)10+ (0,25)10


( 54 )10 = ( 110110 ) 2

Remarque :
0,25 × 2 = 0,50 0 Le nombre de bits après la

1 virgule va déterminer la
0,50 × 2 = 1,00
précision.
0,00 × 2 = 0,00 0
(54 ,25) 10 = ( 110110,010) 2
Passage de la base 10 à la base 8 Nombre binaire à virgule flottante
 Afin de représenter les très grands ou très petits nombres, nous utilisons
Exemple : (20,35)10 = (20) 10 + (0,35) 10
généralement une méthode assez pratique appelée notation scientifique.
=( 24,2631 )8
Exposant
( 20 )10 = ( 24 ) 8
Y = M.2E
0,35 × 8 = 2,80 2 Mantisse

0,80 × 8 = 6,40 6  La norme IEEE 754 normalise cette représentation. Elle distingue
2 représentations:
0,40 × 8 = 3,20 3
 Format 32 bits simple précision (type float)
0,20 × 8 = 1,60 1  Format 64 bits double précision

exposant codé = exposant réel + excédent

 Une longueur finie en base 10 peut être


infinie en base 8
 On conserve la précision relative 10-3 est
approximée par 2-10
Nombre binaire à virgule flottante
 Format 32 bits
 La norme IEEE 754 définit la façon de coder un nombre réel: Bit = 0: M signe + Il est représenté en binaire décalé avec
la forme 1,xxxxx...×2n (exemple 1,0101 ×22). Bit = 1: M signe - un biais égal à 127 (translation de 127)

 Cette norme se propose de coder le nombre sur 32 bits et dé


31 30 23 22 0

finit trois composantes: S Exposant E Mantisse M

− le signe est représenté par un seul bit, le bit de poids fort E+127
(celui le plus à gauche). Bit de signe 8 bits 23 bits
− l'exposant (décalé) est codé sur les 8 bits consécutifs au
32 bits
signe.
 Il est inutile de ranger le chiffre 2 de la base 2 pour exprimer 2E
− la mantisse (les bits situés après la virgule) sur les 23 bits
puisque c'est identique pour tous les nombres (implicite).
restants.
 Correspondance entre l'exposant réel (sur 8 bits en signé) et
− Ainsi le codage se fait sous la forme suivante:
l'exposant décalé (sur 8 bits):

seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm Eréel

E translation de + 127

E = Eréel + 127
La norme IEEE 754 sur 32 bits Nombre binaire à virgule flottante
 Exemple 1:  Représentation en simple précision
 Codage en binaire  Exemple 2: Traduire en binaire format flottant simple précision
12,5 = 8 + 4 + 0,5 32 bits le nombre: -1039,0
12,5 = 23+ 22+ 2-1 1)Signe : 1
12,5 = (1100,1)2 2)Traduire en binaire (1039) 10= (0000 0100 0000 1111)2
3)Constituez la mantisse : 1, mantisse × 2n
+ 1, mantisse * 2 exposant
- 0000 0100 0000 1111 = 1,00 0000 1111 ×210
12,5 = +1,1001*23 Forme normalisée

Codage de 3 par excès de 127


(décalage de dix chiffres vers la droite après la virgule )
4) Constituez le décalage IEEE en simple précision 8 bits : 28-1 -1= 127
3+127 = 128+2 = 27+21 = (10000010)2
5) Constituez l'exposant : 0000 0100 0000 1111 = 1,00 0000 1111 ×210
exposant = 10+ décalage = 10 +127= 137
0 100 0001 0 100 1000 0000 0000 0000 0000 4) Exprimer l'exposant en binaire (137) 10= (1000 1001)2
5) Etendre la partie fractionnaire à 23 bits
mantisse sur 23 bits = 000 0001 1110 0000 0000 0000
4 1 4 8 0 0 0 0

12,5 =(41480000)IEEE 754


(-1039,0)10= (1100 0100 1000 0001 1110 0000 0000 0000)2
En hexadecimal: C4 81 E0 00
Nombre binaire à virgule
 Exemple 3:  Règles:
 Soit à coder en simple précision la valeur 525,5.
 525,5 est positif donc le 1er bit sera s = 0.  Certaines conditions sont toutefois à respecter pour les
 Sa représentation en base 2 est la suivante : 1000001101,1 exposants:
 En normalisant, on trouve : 1,0000011011 ×29  l'exposant 00000000 est interdit .
 On ajoute 127 à l'exposant 9 ce qui donne 136, soit en  l'exposant 11111111 est interdit. On s'en sert toutefois pour
base 2 : eeeeeeee = 10001000 signaler des erreurs, on appelle alors cette configuration du
 La mantisse est composée de la partie décimale de 525,5 nombre NaN, ce qui signifie Not a Number.
en base 2 normalisée, c'est-à-dire 0000011011.  Il faut rajouter 127 (01111111) à l'exposant pour une
 Comme la mantisse doit occuper 23 bits, il est nécessaire conversion de décimal vers un nombre réel binaire.
d'ajouter des zéros pour la compléter : Les exposants peuvent ainsi aller de -254 à 255.
00000110110000000000000
 La représentation du nombre 525,5 en binaire avec la norme
IEEE est donc:
0 10001000 00000110110000000000000
0100 0100 0000 0011 0110 0000 0000 0000
(4403600 en hexadécimal)
Etendue des nombres
Quels nombres peut-on exprimer en format NORMALISE  Or (1+2-1+2-2+…+2-23) = S24 est la somme des 24 premiers

simple précision (32 bits)? termes d'une suite géométrique de raison 2 -1.

 Exposant Eréel
 Il varie de -126 à + 127.
 L'exposant E décalé varie donc de 1 à 254.  Y max = (1+2-1+2-2+…+2-23) . 2127
 Mantisse = (2 –2-23) . 2127
 Mmin= (1,000 0000 0000 0000 0000 0000) b ~ 3,40282 . 1038
~
 Mmax= (1,111 1111 1111 1111 1111 1111)b
Etendue des nombres réels normalisés
 Le plus petit réel représentable dans ce format est :
 Ymin = (1,000 0000 0000 0000 0000 0000)b. 2-126
= 2-126
-38
~~ 1,17549.10
 Il est à noter que nous avons la même valeur en négatif (bit
de signe S = 1)!
 Le plus grand réel représentable dans ce format est :
 Ymax = (1,111 1111 1111 1111 1111 1111)b . 2127
= (1+2-1+2-2+…+2-23) . 2127
Etendue des nombres
 Codages de zéro
Nous avons vu que la valeur minimale de l'exposant était
Eréel = -126 (pour les valeurs normalisées).
On utilise alors l'exposant Eréel = - 127 (E biaisé = 0) et une
mantisse nulle pour coder 0. On obtient donc deux
représentation de zéro:
Résumé

 Codages de l'infini
 Nous avons vu que la valeur maximale de l'exposant était
Eréel = 127.
 On utilise alors l'exposant Eréel = 128 (E biaisé = 255) et
une mantisse nulle pour coder l'infini.
Etendue des nombres

 Autres codages

 NaN = Not A Number : codes qui permettent de


signaliser des erreurs comme par exemple une
division par 0.

Limites

Vous aimerez peut-être aussi