Codage de l'information

Les exercices suivants me semblent suffisants pour maîtriser les divers types de codage d'informations numériques étudiés dans le cours. Il va de soi que les calculs doivent être faits sans calculatrice même si chacun sait que ce n'est pas indispensable dans le quotidien d'un technicien. L'utilité ici : savoir ce qu'on fait et faire fonctionner son cerveau !

Dans chacun des exercices, on donnera également le résultat dans un format hexadécimal.

1. Manipulation binaire

1.1. Calcul le complément à 1 et à 2 de :

\(1101 \: 1001_2\)

\(0010 \: 0011_2\)

1.2. Calcul de sommes

Les sommes suivantes doivent être calculées posées.

Calculer \(1110 \: 1010_2 + 0001 \: 0011_2\).

Calculer \(0100 \: 1010_2 + 1111 \: 0011_2\).

1.3. Calcul de multiplications

Calculer \(1110_2 * 0011_2\).

Calculer \(0100_2 * 0101_2\).

2. Codage d'entiers non signés

2.1. Définition

On réalise le codage en base 2 d'un entier $A$ non signé donné en base 10. Le codage s'effectue sur N bits notés $a_0$, $a_1$, ..., $a_{N-1}$ où l'indice 0 permet d'identifier le bit de poids faible et l'indice de rang le plus élevé, ici $N-1$, le bit de poids fort.

  1. Rappeler la relation permettant d'exprimer $A$ en fonction des $a_i$.
  2. Démontrer que la valeur maximale codable sur N bits vaut $2^N-1$.
  3. Montrer que la valeur minimale pouvant être coder sur N bits vaut $0$.
  4. A partir de la relation donnant $A$ en fonction des $a_i$, montrer qu'une opération binaire simple permet de diviser $A$ par 2 dans $\mathbb{N}$.
  5. Mener la même démonstration pour trouver une opération binaire simple permettant de réaliser une multiplication par 2.

2.2. Coder les entiers suivants sur 8 bits non signés :

\(128, \: 127, \: 71, \: 142, \: 35, \: 215 \).

2.3. Coder les entiers suivants sur 16 bits non signés :

\(32767\:,57921\:,\frac{57921}{2}\:,\frac{57921}{8}\)

3. Codage d'entiers signés

3.1. Coder les entiers suivants sur 8 bits signés :

\(-128, \: +127, \: -91, \: -39 \)

3.2. Coder les entiers suivants sur 16 bits signés :

\(-32767 \:, -1 \:, -7817\)

4. Codage en virgule fixe

4.1. Codage au format 1.7 non signé

Coder \(0,8712\) et \(1,982\) et déterminer l'erreur relative résultant de ce codage.

4.2. Codage au format 1.15 signé

Coder \(-0,675\:,-0,991\:,0,002\) en indiquant chaque fois l'erreur relative induite par le codage.

Note : l'emploi de la calculatrice est toléré pour les multiplications par \(2^{15}\) et par \(2^7\).

5.  Réels à la norme IEEE754

5.1.  Codage en simple précision

  1. Coder les valeurs suivantes : \(0,00132\) et \(-21983,12\).
  2. Indiquer l'erreur commise pour ces 2 codages.

5.2. Valeur particulière (application en simple précision)

  1. Donner, sous forme binaire puis évaluer à la calculatrice, la valeur la plus petite pouvant être codée avec \(mantisse \in[1;2[\).
  2. Idem pour la plus grande valeur codable.
  3. Peut-on coder le 0 ?
  4. Rechercher sur internet les exceptions de codage permettant de représenter les valeurs non codables directement par la définition \(X=(-1)^S.mantisse.2^{exposant}\).

Aide pour le travail à la maison : une correction peut être obtenue en utilisant le site http://www.binaryconvert.com/