TD1
TD1
TD1
TD 1 : Représentation de l’information
Codage
Useful to travel through the Matrix.
Les entiers
Don’t be always negative !
La norme IEEE 754 est un standard pour la représentation des réels en binaire. Elle com-
prend 1 bit de signe, e bits d’exposant et m bits de mantisse. L’exposant est un entier relatif
codé – non pas avec un complément à 2 – mais avec un biais permettant de ne manipuler que
des entiers non signés. Ce biais est 2e−1 − 1.
Soient les nombre binaires vs , ve , vm représentant respectivement le signe, l’exposant et la
mantisse. La valeur décimale d’un nombre flottant est définit par N = (−1)vs ∗2ve −bias ∗(1+vm )
m−1
X
où 0 ≤ vm < 1. En effet, vm = xi 2i−m avec xi bit de position i (bit de poids fort à gauche).
i=0
Nous considèrons ici le format simple précision comprenant 1 bit de signe, 8 bits d’exposant
et 23 bits de mantisse.
– Un nombre est dit normalisé lorsque l’exposant avec biais est non nul et différent de 2e −1.
– Un nombre est dit dénormalisé lorsque l’exposant avec biais est nul.
– Les zeros sont représentés par une mantisse et un exposant avec biais nuls.
– Les infinis sont représentés par un exposant de 2e − 1 et une mantisse nulle.
– Not A Number (NaN) est réprésenté par un exposant de 2e − 1 et une mantisse non-nulle.
Attention, pour un nombre dénormalisé, N = (−1)vs ∗ 2ve −bias ∗ (0 + vm )
1. Quels nombres réels représentent les mots de 32 bits suivants : 0x41380000 et 0xBF800001 ?
2. Donnez la représentation de 1, de 3.625, de 220 et de 0.
3. Donnez la valeur du plus grand positif et de son prédécesseur, indiquez leur écart.
4. Donnez la valeur du plus petit positif normalisé et du plus petit positif dénormalisé.
5. Quel est le résultat de l’addition 220 + 2−10 dans un additionneur flottant ?
Généralités
Étant donnée une source émettant une information codée sur n bits reçue par un récepteur,
on définit les termes suivants :
– un codage est auto-vérificateur s’il permet de déceler une erreur de transmission, et
– un codage est auto-correcteur s’il permet de reconstituer l’information.
1. Trouvez des exemples simples de codages auto-vérificateurs ou auto-correcteurs.
Le controle de parité utilise n−1 bits pour l’information et un bit de controle dit bit de parité.
Celui-ci est positionné de telle sorte que le nombre total de bits à 1 de la configuration soit
pair (parité paire) ou impair (parité impaire). On retrouve cette méthode dans le protocole
de communication du lien série (UART/RS-232) par exemple.
2. Quelles sont les possibilités et les limites d’un tel codage ?
Page 2
(Bonus) Compression
tar -cfz useless.tar.gz /dev/null
Dans le premier exercice de la partie 1, nous avons vu une borne inférieure théorique sur
le nombre de bits nécessaires pour coder n informations (par exemple les caractères ASCII).
Cependant, il existe des techniques d’encodage qui sont plus efficaces en pratique.
Un code préfixe est un code où aucun mot ne préfixe un autre mot de ce code. L’intérêt
d’un tel code est qu’il possède un décodage unique sans nécessiter de séparateur. A noter que
les codes de taille fixe sont tous des codes préfixes.
1. Trouver un code préfixe de longueur variable.
Un algorithme de compression représente une information sur moins de bits que sa représentation
d’origine. Il peut être avec pertes de données comme le format jpeg, ou sans.
Supposons un fichier contenant une suite de caractères ASCII.
2. En utilisant ce code préfixe, proposez un algorithme de compression sans pertes de données.
Page 3