Vous êtes sur la page 1sur 5

Hubert FOREY / Eric GALAND / Lycée Charles de Gaulle /  : Page 1 sur 5 /  : 704893455.

docx

Représentation et codage des entiers relatifs et des


nombres réels

Table des matières


I. LES ADDITIONS EN BINAIRE....................................................................................................................................................... 1

II. REPRÉSENTATION DES ENTIERS RELATIFS.................................................................................................................................. 2


1) Contexte......................................................................................................................................................................................... 2
2) En binaire : codage en complément à 2..........................................................................................................................................2

III. REPRÉSENTATION ET CODAGE DES NOMBRES RÉELS................................................................................................................ 2


1) De la base 2 vers la base 10............................................................................................................................................................2
2) De la base 10 vers la base 2............................................................................................................................................................2
3) Codage en virgule flottante............................................................................................................................................................ 3
4) Norme IEEE 754.............................................................................................................................................................................. 5

I. LES ADDITIONS EN BINAIRE

Rappel (en décimal) :


Retenue 1
27
+19
=46

Dans cet exemple, étant donné que 7+9=16 et que 16 > 9 (le plus grand des chiffres associés à la base 10), nous
positionnons 6 en dessous du 9 et nous reportons une unité au-dessus du 2 et ensuite nous additionnons 2 + 1 + 1 (la
retenue) = 4.

En binaire : il faut reproduire exactement le même protocole :

Retenue 1 1 1 1 1 1
010101
+ 111111
=1010100
Méthode :
 1 + 1 = 2 > 1 (le plus grand des chiffres associés à la base 2) : on pose 0 et on retient 1
 1 + 0 + 1 = 2 : on pose 0 et on retient 1
 1 + 1 + 1 = 3 : on pose 1 et on retient 1
 Et ainsi de suite…

Q1 : Effectuer les calculs suivants :


1011 0111 11010101 11010100
+ 0110 + 1110 + 00000001 + 11111111
= 1111 =01111 = 1 1110110 =111010011
Hubert FOREY / Eric GALAND / Lycée Charles de Gaulle /  : Page 2 sur 5 /  : 704893455.docx

II. REPRÉSENTATION DES ENTIERS RELATIFS

1) Contexte
Pour coder un entier relatif, il est nécessaire de coder les informations tout en respectant les propriétés mathématiques
des entiers signés. Pour cela, il faut :
 S’assurer que : -(-a) = a
 S’assurer que : a + (-a) = 0

2) En binaire : codage en complément à 2


L’opposé d’un nombre est obtenu en 2 étapes :
 Première étape : inverser tous les bits du nombre
 Deuxième étape : ajouter 1 au résultat. On obtient alors l’opposé du nombre.

Exemple : prenons le cas de + 43, nous savons que (+43)10 = (00101011)2 (cf chapitre 1).
 On inverse tous les bits du nombre et l'on obtient : (11010100)2
 On ajoute 1 :
11010100
+ 00000001
= 11010101 donc –(43)10 = (11010101)2

Q2 : Vérifier qu’en binaire :


 (-43)+(43)=0
 -(-43)=43.

Q3 : Convertir (-7)10 en binaire, ainsi que (-35)10.

III. REPRÉ SENTATION ET CODAGE DES NOMBRES RÉ ELS

1) De la base 2 vers la base 10

Rappel :
Pour un nombre entier : (108)10 = 1 × 102 + 0 × 101 + 8 × 100
De même, pour un nombre réel : (108,893)10 = 1 × 102 + 0 × 101 + 8 × 100 + 8 × 10-1 + 9 × 10-2 + 3 × 10-3

Pour passer un réel de la base 2 vers la base 10 :


(10,1011)2 = 1 × 21 + 0 × 20 + 1 × 2-1 + 0 × 2-2 + 1 × 2-3 + 1 × 2-4
(10,1011)2 = 1 × 2 + 0 × 1 + 1 × 0.5 + 0 × 0.25 × 1 × 0.125 + 1 × 0.0625
(10,1011)2 = (2,6875)10

Q4 : Traduire (11,101)2 de la base 2 vers la base 10

Prolongement :
Q5 : Traduire (4B; 8)16 de la base 16 vers la base 10

2) De la base 10 vers la base 2

Méthode :
Pour la partie entière, on utilise la méthode des divisions successives vue précédemment. Pour la partie fractionnaire,
on utilise la méthode des multiplications successives.
Hubert FOREY / Eric GALAND / Lycée Charles de Gaulle /  : Page 3 sur 5 /  : 704893455.docx

Exemple :
2,625  la partie entière est 2, ce qui donne (10)2 en base 2

On extrait la partie fractionnaire 0,625
On multiplie par 2 ×2
1,25  On sort le 1

On extrait la partie fractionnaire 0,25
On multiplie par 2 ×2
0,5  On sort le 0

On extrait la partie fractionnaire 0,5
On multiplie par 2 ×2
1  On sort le 1

En lisant de haut en bas, on obtient : (2,625)10 = (10, 101)2

Q6 : Traduire en binaire :
 (8,3125)10
 (0,546875)10
 (2,921875)10.

3) Codage en virgule flottante

Représentation normalisée : tout nombre binaire (N) peut se représenter comme ceci :
N = 1,mantisse × 2exposant

Exemple : (1011,101)2 = 1,011101 × 23 et (0,0101)2 = 1,01 × 2-2

Codage : chaque nombre peut se coder sur N bits de la manière suivante :

Signe (1 bit) + partie exposant (n bits)+ mantisse (N-n-1 bits) avec

{
signe(0 pour les nombres positifs et 1 pour les nombresnégatifs)
partie exposant (décalage+ exposant en représentation normalisée)
mantisse : partie fractionnaire du nombre

Obtention de la partie exposant sur n bits :


 On va déjà calculer ce que l’on appelle le décalage qui va dépendre du nombre de bits utilisés pour la partie
exposant :
décalage = 2n-1 – 1
 À l’exposant de la représentation normalisée, on rajoute le décalage. On convertit ensuite le nombre obtenu en
binaire sur (n bits).

Exemple : pour une partie exposant stockée sur n=5 bits :


(1011,101101)2 = 1,011101101 × 23 en représentation normalisée, l’exposant vaut 3.
Le décalage vaut 25-1 – 1 = 24 – 1 = 15
On rajoute la valeur du décalage à l’exposant : 3+15=18
On convertit (18)10 en binaire : (18)10 =(10010)2
La partie exposant sera donc 10010 (sur 5 bits)

Obtention de la partie mantisse :


À une exception près (le zéro), tous les nombres ont une représentation normalisée sous la forme : 1,mantisse×2 exposant.
Hubert FOREY / Eric GALAND / Lycée Charles de Gaulle /  : Page 4 sur 5 /  : 704893455.docx

Par conséquent, il n’est pas nécessaire de stocker le 1 situé à gauche de la virgule. On économise ainsi un précieux bit
pouvant être utilisé à meilleur escient.
Si on reprend l’exemple ci-dessus :
(1011,101101)2 = 1,011101101 × 23 en représentation normalisée
Si le nombre complet est stocké sur N=16 bits, la mantisse est stockée sur 16-5-1 = 10 bits
La mantisse vaut 0111011010 (on rajoute le 0 car on stocke sur 10 bits)
Le nombre sera stocké sur 16 bits sous la forme : 0 10010 0111011010

Exemple 2 : coder (2007)10 sur 12 bits repartis de la Exemple 3 : coder (-0,28125)10 sur 12 bits repartis de la
manière suivante : même manière que dans l’exemple 1.
- 1 bit pour le signe ;
- 5 bits pour la partie exposant ;
- 6 bits pour la partie mantisse.
Étape 1 : Le nombre est négatif : le 1er bit vaut 1
1
Étape 1 : Le nombre est positif : le 1er bit vaut 0
0 Étape 2 : convertir le nombre en binaire :
(- 0,28125)10 = (- 0,01001)2 paragraphe III. 2)
Étape 2 : convertir le nombre en binaire :
(2007)10 = (11111010111)2 Étape 3 : obtenir la représentation normalisée :
(- 0,01001)2 = ( - 1,001 × 2-2)2
Étape 3 : obtenir la représentation normalisée :
(11111010111)2 = (1,1111010111 × 210)2 Étape 4 : calcul de la valeur stockée dans la partie
Étape 4 : calculer la valeur stockée dans la partie exposant :
exposant. Tout d’abord, il faut le décalage. Pour cela, il - Décalage (exposant sur 5 bits) = 25-1 - 1 = 15.
faut regarder sur combien de bits est codée la partie - Ajout de l’exposant au décalage : 15 + (-2) = 13
exposant. Ici, elle est codée sur 5 bits, donc le décalage - Traduction en binaire sur 5 bits : (13)10 = (01101)2
vaut 25-1 - 1 = 15. Ensuite, on ajoute au décalage
1 0 1 1 0 1
l’exposant et on obtient la partie stockée dans la partie
exposant : 15+10 = 25.
Ensuite, on traduit en binaire sur 5 bits : (25)10 = (11001)2. Étape 5 : on reporte la mantisse sur 6 bits

0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0

Étape 5 : on reporte la mantisse sur 6 bits dans la partie


correspondante (on ne peut pas toujours reporter
l'intégralité de la mantisse) :
0 1 1 0 0 1 1 1 1 1 0 1

Q7 : Donner la représentation en virgule flottante de (0,9375)10 sur 11 bits repartis de la manière suivante :
- 1 bit pour le signe ;
- 4 bits pour la partie exposant ;
- 6 bits pour la partie mantisse.

Q8 : Donner la représentation en virgule flottante de (- 3,625)10 sur 10 bits repartis de la manière suivante :
- 1 bit pour le signe ;
- 3 bits pour la partie exposant ;
- 6 bits pour la partie mantisse.
Hubert FOREY / Eric GALAND / Lycée Charles de Gaulle /  : Page 5 sur 5 /  : 704893455.docx

4) Norme IEEE 754


Cette norme définit deux types de nombres en virgule flottante : simple précision (32 bits) et double précision (64 bits).
Simple précision (codage sur 32 bits)
 Signe : 1 bit
 Exposant : 8 bits le décalage est de 28-1 – 1 = 127
 Mantisse : 23 bits
Dans de nombreux langages de programmation (Python, C, C++, Java...) le type de donnée associé est nommé float.

Double précision (codage sur 64 bits)


 Signe : 1 bit
 Exposant : 11 bits le décalage est de 211-1 – 1 = 1023
 Mantisse : 52 bits
Dans de nombreux langages de programmation (Python, C, C++, Java...) le type de donnée associé est nommé double.

Valeurs particulières
Dans la norme IEEE 754, le zéro est stocké avec uniquement des 0 pour le signe, l’exposant et la mantisse

Q9 : Soit le nombre flottant au format simple précision : 0100 0100 0001 0100 0000 0000 0000 0000.
Quelle est la valeur de ce nombre dans la base 10 ?

Q10 : Déterminez la représentation au format simple précision d’un tiers (1/3) en binaire et en hexadécimal.

Vous aimerez peut-être aussi