Vous êtes sur la page 1sur 48

Circuits de l’électronique

numérique

Leçon 2

Codage des nombres et principe des opérations


arithmétiques en binaire
Proposé par : Abdessalem Ben Abdelali

AU 2023/ 2024
1
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

 Rappel des notions de base du codage binaire : code binaire


pure et ses dérivés (octal, hexadécimal), notion de format,
capacité mémoire, etc.
 Représentation des entiers relatifs et des réels
 Principe des opérations arithmétiques

Leçon 1 2
Proposé par Pr. Abdessalem BEN ABDELALI
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Codage et représentation des


nombres
 Représentation des nombres entiers non signés (code binaire pure et
dérivés  octale et hexadécimale)
 Conversions entre les différentes bases ( systèmes de numération)
 Principe des opérations arithmétiques sur les nombres non signés (addition,
soustraction, multiplication et division)
 Représentation des nombres entiers signés
 Représentation en code signe et valeur absolue
 Représentation en complément à 1
 Représentation en complément à 2
 Représentation biaisée
 Opérations arithmétiques sur les nombres en complément à 2 et problème
de dépassement (overflow)
 Représentation en virgule fixe et principe des opération arithmétiques
 Représentation en virgule flottante et principe des opérations arithmétiques
 Le code BCD
 Le code ASCII
 …

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Représentation binaire (base 2)


Un chiffre binaire (représente un état binaire) est appelé bit (binary digit).
Un bit prend les valeurs 0 ou 1.
Mot binaire de
11001011
8 bits
bit
Equivalent décimal d’un nombre binaire 

Le développement de la forme polynomiale fournit la valeur décimale du nombre écrit en binaire:

(pour indiquer la base)


(pour un nombre entier)
n 1
N2 = (an-1an-2 …a1a0)2 =  a .2
i 0
i
i
= an-1.2n-1 + … + a0.20. Avec ai  {0, 1}

Exemple :
Nombre entier : (100)2 = 1.22 + 0.21 + 0.20 = 410
Nombre fractionnaire : (101,10)2 = 1.22 + 0.21 + 1.20 + 1.2-1 + 0.2-2 = (5,5)10

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Représentation binaire
Avec n chiffres en base 2 on peut construire 2n mots binaires.
Exemple : Avec 2 bits on peut construire 4 mots binaires
Avec 3 bits on peut construire 8 mots binaires
Avec 8 chiffres on peut construire 64 mots binaires

Les puissances successives de 2 (1, 2, 4, 8, 16, 32, 64, 128, 256,...) sont appelées « poids
binaires ». En général, le poids du bit de rang n est 2^n (on commence toujours au rang 0).

> Le bit de poids le plus fort est appelé MSB (Most Significant Bit).
> Le bit de poids le plus faible est appelé LSB (Less Significant Bit).

Exemple :

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Représentation binaire
 Le format d’un mot binaire est sa taille en nombre de bits.
 Pour le format n bits, les nombres pouvant être représentés appartiennent à l’intervalle
[0, 2^n -1], ce qui fait 2^n valeurs différentes. La valeur qui suit le plus grand nombre
exprimable dans le format n bits est 2^n.
En français En anglais Nombre de Valeurs différentes
4 bits Quartet Digit 16
8 bits Octet Byte 256
16 bits Demi mot Half word 65536 64 k
32 bits Mot Word 4 294 967 296 4G
64 bits Mot long Long word
décimal binaire naturel dans le format 4 bits
Exemple :
représentation 0 0000
sur 4 bits
1 0001
2 0010
Pour un nombre représentable sur un nombre de 3 0011
bits plus petit que la format adoptés on complète 4 0100
le nombre par des zéros : exemple 2 en format 8 5 0101
bits s’écrit (00000010) 6 0110
7 0111
Leçon 1
8 1000
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Représentation binaire
Les valeurs remarquables à connaître :
2^10 = 1024 se note k (kilo).
2^20 = 1 048 576 se note M (mega).
2^30 = 1 073 741 824 se note G (giga).

Exercice
 Soit une mémoire de capacité totale de 256MB. Sachant que cette mémoire
contient un répertoire de 126 MO et deux fichiers, un de 1920 KO et de
1024 Kbits. Calculer la capacité de l’espace libre de cette mémoire en KO
et en MO.

Réponse
Fichier 1  1920 KO
Fichier 2  1024 Kbits  1024 / 8 KO = 128 KO
Répertoire : 126 MO = 126 2^10 KO
Total espace occupé = 128 + 1920 + 126 2^10
Leçon 1
2 x 2^10 + 126 2^10 = 128 2^10 KO
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

D’autre systèmes de numération utilisés :


base 8, base 16

Représentation hexadécimal
 Les symboles utilisés pour exprimer un nombre en base 16 sont : {0, 1, 2,
3,4, 5, 6, 7, 8, 9, A, B, C, D, E, F}. les lettres A, B, C, D, E, F sont utilisé
respectivement pour exprimer les nombres 10, 11, 12, 13, 14, 15.
n 1
N16 = (an-1an-2...a1a0)16 =  a .16
i 0
i
i
= an-1.16n-1 + … + a0.160. Avec ai  {0, … , 9, A, …,F}

Valeur décimal correspondante :

(5AF)16 = 5.162 + 10.161 + 15.160 = (1455)10


(1E7A)16 = 0x1E7A = 1E7AH = $1E7A= 1 x 163 + 14 x 162 + 7 x 161 + 10 x 160 = 780210

Leçon 1
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Changement de base - Conversions

Base 10
Décodage Décodage

Codage

Base 2 Autre Base


Transcodage

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Changement de base – Conversions


(Conversion : base quelconque décimal)

 décomposer le nombre à convertir en somme de puissances de la base (forme


polynomiale)

NB = (an-1an-2 …a1a0) B (nombre entier)


NB = (an-1an-2 …a1a0, a-1…a-m) B (nombre avec virgule, fractionnaire)
 B : La base B, elle est notée en indice
 ai : représente un chiffre (digit) parmi les chiffres de la base du système de
numération considéré.

n 1
N=  a .B
i (  m )
i
i
= an-1Bn-1 + …+ a1B1 + a0B0 + a-1B-1 + …+ a-mB-m

 Bi : poids du chiffre ai
 i : rang du chiffre ai

(101,10)2 = 1.22 + 0.21 + 1.20 + 1.2-1 + 0.2-2 = (5,5)10


Exemples  (745)8 = 7.82 + 4.81 + 5.80 = (485)10
(64,2)8 = 6.81 + 4.80 + 2.8-1 = (52,25)10
Leçon 1
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Changement de base – Conversions


(Conversion : décimal  autre base )

 Conversion d'un nombre décimal en nombre binaire


 Méthode par division

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Changement de base – Conversions


(Conversion : décimal  autre base )

 Conversion d'un nombre décimal en nombre binaire


 Méthode par soustraction
Exemple 1 : 173

Exemple 3: 426

Exemple 2 : 172

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Changement de base – Conversions


(Conversion : décimal  autre base )

 Conversion d'un nombre décimal en nombre binaire

 Conversion d’un nombre fractionnaire (partie entière + partie fractionnaire)

Exemple : Conversion en binaire du nombre décimal (58,32)

58/2 = 29 reste 0 0,32 x 2 = 0,64


29/2 = 14 reste 1 0,64 x 2 = 1,28
14/2 = 7 reste 0 0, 28 x 2 = 0,56
7/2 = 3 reste 1 0,56 x 2 = 1,12
3/2 = 1 reste 1 0, 12 x 2 = 0,24
1/2 = 0 reste 1 0, 24 x 2 = 0,48
111010, 010100…

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Changement de base – Conversions


(Conversion : décimal  autre base )

 Conversion d'un nombre décimal en nombre hexadécimal

 Conversion d'un nombre décimal en nombre octal

Exemple :
266/8 = 33 reste 2
33/8 = 4 reste 1
4/8 = 0 reste 4
26610 = 4128
Leçon 1
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Changement de base – Conversions


(Conversion entre bases binaire, octale et hexadécimal )

 Conversion binaire  octal

Exprimons (47)10 dans le système octal et le système binaire. Nous obtenons :

Exemple : 

Leçon 1
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Changement de base – Conversions


(Conversion entre bases binaire, octale et hexadécimal )

 Conversion octal  binaire

Cette conversion s'effectue en transformant chaque chiffre du nombre octal en


son équivalent binaire de trois chiffres.

Exemple : 

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Changement de base – Conversions


(Conversion entre bases binaire, octale et hexadécimal )

 Conversion binaire  hexadécimal


Exemple :

 Conversion hexadécimal  binaire


Exemple :

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Principe des opérations arithmétiques


(en binaire)
Addition Binaire
 0+0=0
 1+0=1
 1 + 1 = 10 = 0 + report de 1 sur le rang de gauche
 1 + 1 + 1 = 11 = 1 + report de 1 sur le rang de gauche

Exemples d'additions de deux nombres binaires :

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Principe des opérations arithmétiques


(en binaire)
soustraction Binaire
 0-0=0
 0 - 1 = 1 est retenue de 1
 1-0=1
 1-1=0

Exemples : soustraction de deux nombres binaires:

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Principe des opérations arithmétiques


(en binaire)
Multiplication Binaire
 0*0=0
 0*1=0
 1*0=0
 1*1=1

Exemples : Multiplication de deux nombres binaires :

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Exercice
 La mémoire représentée par la figure suivante se présente sous forme
d’une suite de cases de 2 octets. Elle est constituée d’un Bus d’adresse de
12 bits permettant de pointer sur les différentes cases.

Dernière case 2 octets

Bus de donnée
Bus d’adresse

12bits 16 bits

5B2
Zone 1 vide

54D

Première case
Leçon 1
21
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Exercice (suite)
 1) Déterminez le nombre de cases mémoire pouvant être accédés
avec ce bus d’adresse
 2) Déterminez la capacité totale de cette mémoire en K bits et en
Mbits
 3) Donnez les adresses en binaire et en hexadécimal de la première
et de la dernière case
 4) Calculez la quantité de mémoire disponible (vide) en octets et en
K bits, sachant que les cases suivantes sont remplies
d’informations : de la première case jusqu’à la case N° 54D et de la
case N° 5B2 jusqu’à la dernière case

Leçon 1
22
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Représentation des nombres signés : Code


signe et valeur absolue, complément à 1, complément à 2
 Dans chaque cas des représentation utilisées, le bit le plus significatif
indique le signe du nombre : 0 pour positif et 1 pour négatif.
 Pour les nombres positifs, il est donc essentiel de toujours ajouter un ‘0’ en
position la plus significative.
 Un nombre positif a la même représentation dans chaque système.
 Pour changer le signe d’un nombre :
 En signe et valeur absolue, on inverse le bit le plus significatif ;
 En complément à 1, on inverse tous les bits ;
 En complément à 2, on inverse tous les bits et on ajoute 1 ;

Nombres représentables avec un nombre de bits donné (n)

nombre le plus nombre le plus


Code
négatif positif
signe et grandeur -(2n-1 − 1) 2n-1 − 1
complément à un -(2n-1 − 1) 2n-1 − 1
complément à -(2n-1) 2n-1 − 1
Leçon 1 deux
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Exercice
*) Donnez la représentation des nombres suivants en signe et valeur absolue, en
complément restreint et en complément vrai : +5 , +19, -14, -39, 0

Nombre C2 C2 (8bits)
+5
+19
-14
-39
0
-8

**) Étendre sur 8 bits, la représentation des nombres de la question précédente

***) Quel est le nombre de bits nécessaire pour représenter les valeurs suivantes
selon le code C2 : (-56), (54), (-32), (32), (23), (67), (-16)

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Exercice  correction
*) Et **)
Nombre C2 (nombre min de bits) C2 (8bits)
+5 0101 0000 0101
+19 010011 0001 0011
-14 10010 1111 0010
-39 1011001 1101 1001
+0 0 0000 0000
-0 0 0000 0000
-8 11000 1111 1000

***)
(-56 en C2)  7bits, (54 en C2)  7bits, (-32 en C2)  6bits, (32 en C2) 
7bits , (23 C2)  6bits , (67 en C2)  8bits, (-16 en C2)  5bits.

Leçon 1
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Exercice
Compléter le tableau suivant en effectuant les conversions nécessaires entre les
différentes représentations des nombres signés. Le format adopté est de 8 bits

Nombre décimal Complément à 2 (vrai)

35
1001 1101
-32

0110 1111
-57

1010 1110
11001101

Leçon 1
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Addition en complément à 2
Cas d’un nombre positif et d’un
Cas de deux nombres positifs nombre négatif plus petit

Cas de deux nombres négatifs


Cas d’un nombre positif et un
nombre négatif plus grand.

Cas de deux nombres égaux et opposés

Leçon 1
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Dépassement (overflow)
 Un débordement de capacité se produit lorsqu'on effectue une opération
dont le résultat dépasse la valeur maximale représentable sur n bits.

 Une condition de dépassement donne toujours lieu à un résultat inexact,


et on la détecte en examinant le bit de signe du résultat et en le
comparant aux bits de signe des nombres additionnés. En additionnant
deux nombres de signes différents, il ne peu pas y avoir de
dépassement, par contre lorsqu'on additionne deux nombres de même
signe, on a un dépassement si le signe du résultat est différent du signe
des deux nombres additionnés. Dans un ordinateur, il existe un circuit
spécialement conçu pour détecter les conditions de débordement et
pour indiquer que la réponse est fausse.

Pas de débordement
débordement

Débordement
débordement
Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Exercice
Dans cet exercice nous adoptons la représentation en complément à 2
pour effectuer les opérations suivantes :

20 + 13 ; 25 – 14 ; 25 – 40 ; (-5)- 12

Pour chaque opération :


 Indiquer le nombre minimal de bits (Nmin) nécessaire pour
effectuer l’opération
 Effectuer l’opération sur 8 bits (format 8 bits)

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Codage des informations numériques


 Codes numériques (codage de nombres)
 Codes pondérés
 Code naturel (Le code binaire naturel et ses dérivés (octal et
hexadécimal)
 Code BCD
 Représentation des nombres relatifs
 Le code signe et valeur absolue
 Le code complément à 1, appelé aussi code complément restreint
 Le code complément à 2, appelé aussi code complément vrai
 Le code binaire décalé
 Codes non pondérés
 Codes binaire réfléchi ou code gray
 Codes redondants : détecteur et correcteurs d’erreurs
 Codes alphanumériques
 Le code ASCII
 Autres codes alphanumériques: Le code ANSI , Le code ISO

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Le code BCD
 Binary Coded Decimal  Décimal Codé en Binaire
 On code directement chaque chiffre (digit) d’un nombre écrit en base dix avec son
équivalent en binaire naturel sur 4 bits  On ne fait pas la conversion du nombre,
on fait le codage des chiffres

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

0001 1001 1000 1001  BCD

1989 = (0001 1001 1000 1001)BCD


Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Le code BCD
 Ce codage est particulièrement utilisé pour l’affichage des valeurs
numériques.

B1
Transcodeur
B2
BCD  7
B3 segments
Exemple CI
B4
7447

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Addition en BCD
 Deux cas peuvent se présenter lors de l’addition de deux nombres en BCD comme le
montre les exemples suivants :

Dans ce cas aucune somme ne dépasse


la valeur 9  aucun problème ne se
pose, comme si on effectue une addition
binaire normale

Nous avons obtenu un code invalide à


cause du fait que la somme dépasse la
valeur 9  Dans ce cas une correction
Invalide code BCD est nécessaire : nous ajouton "6" (0110)
à la somme obtenue

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Addition en BCD

 Une somme est correcte si le


résultat est inferieur ou égal à 9

 Une correction est nécessaire si


le résultat est supérieur à 9 pour
chacun des deux cas suivants:
- Si la somme binaire est supérieur
ou égale à 16 (un retenu de 1
est généré)
- Si la somme binaire est comprise
entre 1010 et 1111

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Addition en BCD
 Exemples

BCD
599 0101 1001 1001
+984 1001 1000 0100
1110 10001 1101
+6 0110 0110 0110

1 0101(5)1000(8) 0011 (3)

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Codes binaire réfléchi ou code gray


 Le principe de codage binaire réfléchi consiste à changer l'état d'un seul bit
entre deux nombres consécutifs.
 On dit que ces termes sont adjacents (exemple 11010 et 10010 sont
adjacents). La figure suivante donne une comparaison entre le binaire et le
binaire réfléchi.

 Le terme réfléchi est du à la


symétrie qui apparaît dans le code.
 c’est un codage continu
cyclique (continu = tous les mots
successifs du codage sont
adjacents. Cyclique = le premier et
le dernier mot du codage sont
adjacents).

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Codes binaire réfléchi ou code gray


 Conversion d’un nombre binaire en code Gray

 Ecrire le nombre binaire à convertir.


 Reproduire le digit binaire de plus fort poids, pour obtenir celui du code
de Gray.
 Le reste des digits du code de Gray sont obtenus en additionnant les
digits deux à deux, à partir de la gauche, sans tenir compte de la
retenue.

+ + + + +
Code binaire : 1 1 0 1 0 0

Code Gray : 1 0 1 1 1 0

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Codes binaire réfléchi ou code gray


 Conversion d’un nombre codé en Gray en un nombre binaire

 Ecrire le nombre en Gray à convertir


 Reproduire le digit de plus fort poids du nombre Gray pour obtenir celui
du code binaire.
 Le reste des digits du code binaire sont obtenus en additionnant sans
retenue, deux à deux, à partir de la gauche, le digit du rang i du code
binaire avec celui du rang i-1 du code de Gray, et ainsi de suite.

Code Gray : 1 0 1 1 1 0
+ + + + +

Code binaire : 1 1 0 1 0 0

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Le code ASCII standard


b7 0 0 0 0 0 0 0 0
b6 0 0 0 0 1 1 1 1
b5 0 0 1 1 0 0 1 1
b4 0 1 0 1 0 1 0 1
b3b2b1b0
0 1 2 3 4 5 6 7

0000 0 NUL DLE Space 0 Nat P ‘ p


0001 1 SOH DC1 ! 1 A Q a q
0010 2 STX DC2 " 2 B R b r
0011 3 ETX DC3 # 3 C S c s
0100 4 EOT DC4 $ 4 D T d t
0101 5 ENQ NAK % 5 E U e u
0110 6 ACK SYN & 6 F V f v
0111 7 BEL ETB ’ 7 G W g w
1000 8 BS CAN ( 8 H X h x
1001 9 HT EM ) 9 I Y i y
1010 A LF SUB * : J Z j z
1011 B VT ESC + ; K Nat k Nat
1100 C FF FS , < L Nat l Nat
1101 D CR GS - = M Nat m Nat
1110 E SO RS . > N ^ n ~
Leçon 1 1111 F SI US / ? O _ o DEL
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

La représentation en virgule flottante


s : signe, m : mantisse, B : base de représentation
Forme générale : X = s * m * Be e : exposant (peut être positif ou négatif)
Représentation binaire normalisée :
Codage IEEE simple précision sur 32 bits 1, m
 (X = (-1)s. (1+m) . 2e)
 Les bits sont numérotés, de droite à gauche, de 0 à 31 avec la signification
suivante :
 le bit n° 31 est le bit réservé au signe
 les 8 bits suivants représentent l’exposant en code excédent 127
 les 23 bits suivants sont consacrés à la mantisse. la technique du bit
caché est utilisée
1 bit 8 bits 23 bits

S Code Bin. Nat de Mantisse


(Exposant + 127)
31 0

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

La représentation en virgule flottante


1bit 8 bits 23 bits
S Représentation de l’exposant Représentation de la mantisse

31 0
Code Bin. Nat de (Exposant + 127)

 Les exposants 00000000 et 11111111 sont interdits :


 l’exposant 00000000 signifie que le nombre est dénormalisé ;
 l’exposant 11111111 indique que l’on n’a pas affaire à un nombre (on note
cette configuration NaN, Not a Number, et on l’utilise pour signaler des
erreurs de calculs, comme par exemple une division par 0).
 Les plus petit exposant est donc -126, et le plus grand +127.

 La dynamique de codage des nombres réels va de ±1.18 10-38 à ±3.4


10+38.
La valeur réelle d’un flottant représenté par : X = s * m * 2e est donnée par :
 Simple précision : (-1)s * 2(e - 127) * 1, m
Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

La représentation en virgule flottante


Mais plus encore que la dynamique (assez large pour la plupart des applications !),
c’est la précision relative des calculs qui découle de la taille de la mantisse et de
l’exposant : en simple précision, elle est seulement de l’ordre de 10-6. C’est
insuffisant pour beaucoup d’applications, d’où l’intérêt du codage sur 64 bits.

Codage IEEE double précision sur 64 bits


11 bits 52 bits
S Code Bin. Nat de Mantisse
(Exposant + 1023)

 L’intérêt de la double précision est surtout dans la précision relative des


calculs : elle est de l’ordre de 10-15.

La valeur réelle d’un flottant représenté par : X = s * m * 2e est donnée par :


 Double précision : (-1)s * 2(e - 1023) * 1, m
Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

La représentation en virgule flottante


Caractéristiques des nombres flottants au standard IEEE
Simple précision Double précision

Bit de signe 1 1
Bits d’exposant 8 11
Bits de mantisse 23 52
Nombre total de bits 32 64
Codage de l’exposant Excédant 127 Excédant 1023
Variation de l’exposant -126 à +127 -1022 à +1023
Plus petit nombre normalisé 2-126 2-1022
Plus grand nombre normalisé Environ 2+128 Environ 2+1024
Echelle des nombres décimaux Environ 10-38 à 10+38 Environ 10-308 à 10+308
Plus petit nombre dénormalisé Environ 10-45 Environ 10-324

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Exercice
- Donner la codification en virgule flottante sur 32 bits, selon la norme IEEE
754 en simple précision, du nombre (- 96, 875) et Exprimer le résultat en
hexadécimal
- Donnez la valeur du nombre suivant stocké et codé selon la norme I3E : C8
80 00 00
- Donnez pour les nombres stockés et codés selon la norme I3E :
Le plus grand et le plus petit nombre normalisés représentables
Le codage du zéro
Le codage du résultat d'une division par zéro

8 bits 23 bits
S Exposant Mantisse

31 0

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Principe des opérations arithmétiques sur les


nombres en virgule flottante
 Multiplication  : Les différentes étapes de la multiplication de nombres à
virgule flottante sont données par le diagramme de la figuration suivante :
Signe Exposant Mantisse Signe Exposant Mantisse

Addition des
exposants Multiplication des
mantisses

Soustraction
du biais Décalage du produit et
arrondi

Ajustement
des exposants

Résultat  Signe Exposant Mantisse

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Principe des opérations arithmétiques sur les


nombres en virgule flottante
 Exemple de multiplication : soit à multiplier 2.5 par 0.75.
La représentation du nombre 2.5 : 0100 0000 0010 0000 0000 0000 0000 0000
 Champ de l’exposant : 1000 0000
 Champ de fraction : 010 0000 0000 0000 0000 0000
 Mantisse : 1,010 0000 0000 0000 0000 00002
La représentation du nombre 0.75 : 0011 1111 0100 0000 0000 0000 0000 0000
 Champ de l’exposant : 0111 1110
 Champ de fraction : 100 0000 0000 0000 0000 0000
 Mantisse : 1,100 0000 0000 0000 0000 00002
 En additionnant directement les champs d’exposant et en soustrayant le biais,
on obtient : 01111111 (représentation biaisée de 0). En multipliant les
mantisses, on obtient : (1,11100000000 0000 0000 0000) qui se représente
sous la forme (Champ de fraction) : (111 0000 0000 0000 0000 0000).
 Le résultat final est le suivant :
0011 1111 1111 0000 0000 0000 0000 0000 = 1.1112 x 20 = 1.875.
Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Principe des opérations arithmétiques sur les


nombres en virgule flottante
Nombres à additionner

Signe Exposant Mantisse Signe Exposant Mantisse

Addition  : Les
différentes étapes de
l’addition de nombres
à virgule flottante sont Décalage vers la droite de l’entrée possédant le
plus petit exposant jusqu’à ce que les deux
données par le exposants soient identiques

diagramme de la
Signe Mantisse décalée Exposant décalé Signe Mantisse décalée
figuration suivante :

Addition des mantisses

Décalage et arrondi

Signe Exposant Mantisse  Résultat


Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali
- Cours : Circuits de l’électronique numérique- >> ING1 en Electronique <<

Principe des opérations arithmétiques sur les


nombres en virgule flottante
Exemple d’addition : soit à additionner 0,25 par 1,5.
 0,25 : 0011 1110 1000 0000 0000 0000 0000 0000 (1,02 x 2-2)
 1,5 : 0011 1111 1100 0000 0000 0000 0000 0000 (1,12 x 20)
 Nous décalons le nombre de plus petit exposant (0.25) vers la droite
jusqu’à ce que les exposants des deux nombres soient identiques. On
obtient ainsi les mantisses :
1,100 0000 0000 0000 0000 0000 et 0,010 0000 0000 0000 0000 0000 pour
les deux nombres (en incluant les 1 implicites dans les valeurs à décaler).
 L’addition de ces deux mantisses donne le résultat :
1,110 0000 0000 0000 0000 0000 x 20 (l’exposant étant celui de l’entrée
possédant le plus grand exposant), soit 1.75.
 La représentation en simple précision du résultat complet est :
0011 1111 1110 0000 0000 0000 0000 0000.

Leçon 1
Proposé par Pr. Abdessalem Ben Abdelali

Vous aimerez peut-être aussi