Conversions décimal–binaire et représentation IEEE
754 (pas à pas, avec exemples)
1 Décimal vers binaire (partie entière)
1.1 Principe
Pour convertir la partie entière d’un nombre décimal en binaire, on utilise la division répétée
par 2 :
1. Diviser le nombre par 2, noter le reste (0 ou 1).
2. Remplacer le nombre par le quotient entier et recommencer.
3. Les bits du binaire sont les restes lus de bas en haut (du dernier au premier).
1.2 Exemple simple : 4510
45 ÷ 2 = 22 reste 1
22 ÷ 2 = 11 reste 0
11 ÷ 2 = 5 reste 1
5 ÷ 2 = 2 reste 1
2 ÷ 2 = 1 reste 0
1 ÷ 2 = 0 reste 1
Lecture des restes de bas en haut : 1011012 . Ainsi, 4510 = 1011012 .
2 Décimal vers binaire (partie fractionnaire)
2.1 Principe
Pour la partie fractionnaire (0 ≤ f < 1), on utilise la multiplication répétée par 2 :
1. Multiplier f par 2.
2. Le bit obtenu est la partie entière du résultat (0 ou 1).
3. Remplacer f par la nouvelle fraction (résultat − partie entière) et recommencer.
4. Arrêter quand la fraction devient 0 ou quand on atteint la précision souhaitée.
2.2 Exemple : 0,62510
0,625 × 2 = 1,25 ⇒ bit 1, f ← 0,25
0,25 × 2 = 0,5 ⇒ bit 0, f ← 0,5
0,5 × 2 = 1,0 ⇒ bit 1, f ← 0
On obtient 0,62510 = 0,1012 .
1
2.3 Exemple complet : 45,62510
Partie entière 45 ⇒ 1011012 . Partie fractionnaire 0,625 ⇒ 0,1012 .
Donc 45,62510 = 101101,1012 .
3 Binaire vers décimal
3.1 Principe
On somme les puissances de 2 pondérées par les bits :
n−1 m
b−k 2−k .
X X
bn−1 bn−2 · · · b1 b0 ,b−1 b−2 · · · ⇒ bk 2k +
k=0 k=1
3.2 Exemple : 101101,1012
Partie entière : 1 · 25 + 0 · 24 + 1 · 23 + 1 · 22 + 0 · 21 + 1 · 20
= 32 + 0 + 8 + 4 + 0 + 1 = 45
Partie fractionnaire : 1 · 2−1 + 0 · 2−2 + 1 · 2−3 = 1
2 +0+ 1
8 = 0,625
Ainsi, 101101,1012 = 45,62510 .
4 Représentation IEEE 754 (simple précision, 32 bits)
4.1 Format
Un nombre flottant simple précision (32 bits) se décompose en :
s |{z}
|{z} e m
|{z}
1 bit 8 bits 23 bits
— Signe s : 0 pour positif, 1 pour négatif.
— Exposant e ∈ [0, 255] avec bias 127. L’exposant réel est E = e − 127.
— Mantisse m : fraction binaire sur 23 bits. Pour les valeurs normales, on suppose un 1
implicite : 1,m.
La valeur (cas normal) est :
x = (−1)s × 2E × (1,m).
4.2 Procédure de conversion décimal → IEEE 754
1. Signe : déterminer s (0 si x ≥ 0, sinon 1).
2. Binaire normalisé : écrire x en binaire sous la forme 1,fraction × 2E .
3. Exposant : calculer e = E + 127 et coder e sur 8 bits.
4. Mantisse : prendre les 23 premiers bits de la fraction (arrondir au besoin).
5. Assembler : s | e | m.
4.3 Exemple complet : x = 13,2510
Étape 1 (signe) : x > 0 ⇒ s = 0.
Étape 2 (binaire) : 13,2510 = 1101,012 . Normalisation :
1101,012 = 1,101012 × 23 .
2
Étape 3 (exposant) : E = 3 ⇒ e = 3 + 127 = 130. En binaire : 130 = 100000102 .
Étape 4 (mantisse) : fraction = 10101 puis compléter avec des zéros à droite pour atteindre 23
bits :
m = 10101 00000000000000000000.
Assemblage (32 bits) :
s = 0 | e = 10000010 | m = 10101000000000000000000
Écriture hexadécimale (groupes de 4 bits) :
0 1000 0010 1010 1000 0000 0000 0000 ⇒ 0x 414A8000.
4.4 Décodage IEEE 754 → décimal (cas normal)
Soit un mot de 32 bits s|e|m.
1. Lire s, e et m.
2. Calculer E = e − 127.
3. Reconstituer la mantisse 1,m.
4. Calculer x = (−1)s × 2E × (1,m).
4.5 Cas particuliers
— Zéro : e = 0 et m = 0. Signe selon s.
— Dé-normaux : e = 0 et m ̸= 0. Valeur x = (−1)s × 21−127 × (0,m) (pas de 1 implicite).
— Infini : e = 255 et m = 0.
— NaN : e = 255 et m ̸= 0.
5 Exemples supplémentaires et astuces
5.1 Fraction qui ne se termine pas en binaire
Certaines fractions décimales (ex. 0,1) ont une expansion binaire infinie périodique. On
tronque ou arrondit selon la précision visée (ex. sur 8 bits : 0,1 ≈ 0,000110012 ).
5.2 Vérification rapide binaire ↔ décimal
— Puissances clés : 210 = 1024, 25 = 32, 2−1 = 0,5, 2−3 = 0,125.
— Regrouper en nibbles (4 bits) pour passer en hexadécimal, utile avec IEEE 754.
5.3 Petit exercice d’entraînement
Convertir x = −23,37510 en IEEE 754 (simple précision).
1. Signe : s = 1.
2. −23,375 ⇒ 23,375 = 10111,0112 = 1,01110112 × 24 .
3. Exposant : E = 4 ⇒ e = 131 = 100000112 .
4. Mantisse : m = 0111011 00000000000000000.
5. Mot final : 1|10000011|01110110000000000000000.
Conseil : entraînez-vous avec quelques nombres entiers (37, 128, 255) et des fractions simples
(0,75, 0,2), puis vérifiez vos conversions en revenant à la base décimale.