Notions de codage de l'information.
Entiers non-signés et signés.
Codage en virgule fixe.
Codage en virgule flottante à la norme IEEE754.
Niveau DUT Génie Electrique et Informatique Industrielle.
2. www.geii.eu 2
Bases de numération
Représentation des nombres
Concaténation de un ou plusieurs caractères, ici N, pris dans un
alphabet constitué de B symboles (lettres, chiffres …).
B est la base de codage.
Base de tous les jours : la base 10 ou décimale
L’alphabet de codage est constitué des 10 chiffres de 0 à 9.
Le nombre s’écrit :
4. www.geii.eu 4
Introduction à la base 2
Stockage de l’information dans un système numérique
Information de base : le bit l’information élémentaire ne peut
prendre que 2 valeurs
0 ou encore 0L (pour 0 logique) appelé aussi état bas.
1 ou encore 1L (pour 1 logique) appelé aussi état haut.
Entiers, Réels, Caractères obéissent à un codage se
décomposant sous la forme d’une série de bits.
Exemple :
Caractère A se code en binaire.
Entier 17 s’écrit sous forme binaire.
– En précisant les bases de codage utilisées en indice, cela donne l’écriture
suivante :
qui se lit 17 en base 10 égale 00010001 en base 2.
4
5. www.geii.eu 5
Vocabulaire et définitions
Vecteurs de bit
Bit de poids fort, toujours à gauche. Poids faible toujours à droite.
Différents formats
4 bits = 1 quartet
8 bits = 1 octet (byte)
16 bits = 1 mot (word)
32 bits = 1 double mot (dword)
5
𝐵𝑖𝑡 𝑑𝑒 𝑝𝑜𝑖𝑑𝑠
𝑓𝑜𝑟𝑡
𝐵𝑖𝑡 𝑑𝑒 𝑝𝑜𝑖𝑑𝑠
𝑓𝑎𝑖𝑏𝑙𝑒
6. www.geii.eu 6
Vocabulaire et définitions
Complément à 1
L’opérateur du complément à 1 se note
Exemple vectoriel :
Complément à 2
L’opérateur complément à 2 se note
On complémente à 1 et on ajoute 1 :
Exemple :
6
7. www.geii.eu 7
Codage des entiers non-signés
Cas général sur N bits
Les bits ont des indices allant de 0 à N-1.
Chaque bit est affublé d’un poids de valeur 2numéro du bit (en
rouge)
A s’écrit :
7
8. www.geii.eu 8
Codage non-signé sur 8 bits
Vecteur et poids :
Expression :
Extrêmes :
Minimum :
maximum :
Intervalle :
9. www.geii.eu 9
Codage non-signé sur 16 bits
Vecteur et poids :
Expression :
Extrêmes :
Minimum :
maximum :
Intervalle :
10. www.geii.eu 10
Méthodes de décomposition
Objectif
Décomposer en base 2 (binaire) d’un entier donné en base 10
(décimal)
Par la division euclidienne
Rappel :
où est le reste de la division de par
Pour
on a alors :
donc la division de par 2 permet d’obtenir .
Le procédé peut se répéter jusqu’à ce que soit nul. 10
11. www.geii.eu 11
Méthodes de décomposition
Par une méthode itérative
Soit à décomposer sur N bits notés
La méthode itérative repose sur l’algorithme suivant :
11
𝑁𝑜𝑡𝑒 ∶ 𝐴𝑝𝑝𝑙𝑖𝑐𝑎𝑡𝑖𝑜𝑛 𝑒𝑛 𝑇𝐷
12. www.geii.eu 12
Codage des entiers signés
Cas général sur N bits
Les bits ont des indices allant de 0 à N-1.
indique le signe de .
A s’écrit :
12
13. www.geii.eu 13
Codage signé sur 8 bits
Vecteur et poids :
Expression :
Extrêmes :
Minimum :
maximum :
Intervalle :
13
14. www.geii.eu 14
Codage signé sur 16 bits
Vecteur et poids :
Expression :
Extrêmes :
Minimum :
maximum :
Intervalle :
14
15. www.geii.eu 15
Méthodes de décomposition
En décalant par rapport à -128
Soit à coder -13 sur 8 bits signés :
c’est négatif donc on place le bit de signe à 1 cela revient
à coder -128.
avec la partie positive sur les 7 bits restantes, il faut atteindre
-13 en partant de -128 soit à coder positivement :
X = -13+128 = 115 sur les 7 bits restants.
X = 11510 = 111 00112
d’où : -1310 = 1111 00112
En utilisant le complément à 2 :
15
16. www.geii.eu 16
Codage en virgule fixe
Caractéristiques
N bits sont réservés pour la partie entière et M bits pour la partie
fractionnaire format N.M .
Le codage peut être signé ou non-signé.
Calcul peu gourmand en surface silicium
Calculer en virgule = calculer sur des entiers.
Domaine d’utilisation
Calcul rapide sur des processeurs de traitement du signal (DSP)
à virgule fixe (il existe des DSP travaillant en virgule flottante).
Calcul sur des réels avec des microcontrôleurs.
16
20. www.geii.eu 20
Méthode de codage
Coder en virgule fixe = coder un entier !
Démonstration sur le cas non-signé
ce qui correspond au codage d’un entier non-signé.
pour coder un nombre en virgule fixe au format N.M non-
signé, on code l’entier sur N+M bits. Le principe se
transpose au codage des flottants en virgule fixe signés.
20
21. www.geii.eu 21
Cas du format 1.15 signé
Plus généralement, c’est le format 1.M signé qui est intéressant.
Soit à coder au format 1.15
Intervalle couvert :
Limitons-nous à l’intervalle
la multiplication n’entraine pas de dépassement de capacité et
c’est l’immense atout de ce format !
sur les microcontrôleurs 8 bits, le format 1.7 est souvent utilisé.
21
22. www.geii.eu 22
Cas du format 1.15
Exemple de codage en 1.15 : A=-0,77612
On code l’entier en utilisant le complément à 2 :
Seule la partie entière peut être codée il y a une perte due à la
faible précision du codage.
22
23. www.geii.eu 23
Codage en virgule flottante
Illustration sur un exemple en base 10 avec un codage sur 6
chiffres et une puissance de 10 :
Différentes écritures possibles pour un même nombre :
Et une écriture dite normalisée :
24. www.geii.eu 24
Codage en virgule flottante
La norme IEEE754 permet de coder en virgule flottante avec
différents niveaux de précision :
3 formats :
simple précision, soit 32 bits :
– Signe sur 1 bit, exposant1 décalé sur 8 bits et « mantisse – 1 » sur 23 bits.
double précision, soit 64 bits :
– Signe sur 1 bit, exposant décalé sur 11 bits et « mantisse – 1 » sur 52 bits.
double précision étendue, soit un codage sur 80 bits :
– Signe sur 1 bit, exposant décalé sur 15 bits et « mantisse – 1 » sur 64 bits.
24
1 : On ne code pas directement l’exposant mais l’exposant auquel on applique un décalage (voir par la suite) d’où l’appellation d’exposant décalé par la suite.
25. www.geii.eu 25
Codage en virgule flottante
Plusieurs types de données représentés :
En simple précision :
26. www.geii.eu 26
Codage en virgule flottante
On peut représenter les nombres normalisés avec :
où est le signe, est la mantisse, est l’exposant
avec
Simple précision
La mantisse apparaît comme un réel à virgule fixe au format
1.23, non signé, dont on ne conserve que la partie fractionnaire
dans le codage car sa partie entière en constamment égale à 1.
Le codage de l’exposant s’effectue après un décalage de 127
afin de libérer les valeurs 0 et 255 pour les types de données
particuliers
26
27. www.geii.eu 27
Exemple de codage en virgule flottante
Soit à coder -11,21332 en nombre normalisé
Signe :
Méthodologie :
Exposant :
Mantisse :
– partie fractionnaire à coder sur 23 bits :
– on code l’entier sur 23 bits non signé.
27
28. www.geii.eu 28
Cas des nombres dénormalisés
En simple précision, ces nombres s’écrivent
L’exposant décalé est nul : 0
La partie significative, notée , est non nulle :