➖ Entiers négatifs en Binaire
🔢 Les entiers négatifs
📖 Contexte
Le cours précédent a permis d'expliquer comment représenter les nombres entiers positifs en base 2 pour en permettre le traitement par un ordinateur.
Cependant, toutes les grandeurs ne sont pas exclusivement positives :
Pour pouvoir réaliser des simulations ou des traitements, il va falloir pouvoir représenter les nombres négatifs.
Cependant, toutes les grandeurs ne sont pas exclusivement positives :
- Tension alternative
- Accélération d'un freinage
- Température en dessous de zéro
- Coordonnées géographiques
Pour pouvoir réaliser des simulations ou des traitements, il va falloir pouvoir représenter les nombres négatifs.
🎯 Première tentative : le bit de signe
💡 Principe
Une première technique de représentation des nombres négatifs est d'ajouter un bit de poids fort (tout à gauche) qui représente le signe :
- 0 représente un nombre positif
- 1 représente un nombre négatif
💻 Exemples
1001₂ représente sur 4 bits signés le chiffre -1
0100₂ représente sur 4 bits signés le chiffre +4
⚠️ Problèmes identifiés
Cela pourrait sembler être une bonne tentative, cependant deux problèmes majeurs se posent :
❌ Problème 1 : Double représentation du zéro
En effet, 0 n'est ni positif ni négatif. On peut donc en déduire 2 représentations sur 4 bits par exemple :
Avoir 2 représentations pour un même chiffre n'est pas concevable notamment pour les représentations en mémoire ou bien pour les opérations.
- 1000₂ (zéro "négatif")
- 0000₂ (zéro "positif")
Avoir 2 représentations pour un même chiffre n'est pas concevable notamment pour les représentations en mémoire ou bien pour les opérations.
❌ Problème 2 : Opérations incorrectes
Les opérations arithmétiques ne donnent pas les bons résultats.
💻 Test : -13 + 13 sur 5 bits
11101₂ + 01101₂ = 101010₂
Sur 5 bits : 11101₂ + 01101₂ = 01010₂
Résultat attendu : -13 + 13 = 0
Résultat obtenu : 01010₂ = +10₁₀ ❌
🚫 Conclusion : Cette représentation n'est pas utilisable pour les calculs informatiques.
✅ Seconde tentative : le complément à 2
🎯 La solution : le complément à 2
Le complément à 2 est une technique qui a été proposée pour représenter les nombres négatifs de manière efficace et sans ambiguïté.
🚗 Analogie : le compteur kilométrique
On peut illustrer cela comme un compteur kilométrique de vieille voiture :
Cela a donné l'idée pour représenter les nombres négatifs en binaire !
- Sur les compteurs des vieilles voitures, faire une marche arrière permettait de réduire le nombre de kilomètres affichés
- Si on recule au kilomètre 000000, le compteur étant circulaire, en reculant d'un kilomètre de plus, ce compteur va afficher : 999999
- Cette valeur 999999 peut donc représenter le kilomètre -1
Cela a donné l'idée pour représenter les nombres négatifs en binaire !
💻 Principe de représentation
1₁₀ = 0001₂ → 0₁₀ = 0000₂ → -1₁₀ = 1111₂ → -2₁₀ = 1110₂ → ...
🔧 Méthode de conversion
Étapes pour convertir un nombre négatif :
- Convertir le nombre choisi en base 2
- Inverser chaque bit : 0 devient 1 et inversement
- Ajouter 1 à la représentation binaire du nombre inversé
💻 Exemple : Représenter -14 en base 2
Étape 1 : 14₁₀ = 1110₂
Étape 2 : 1110₂ → 0001₂ (inversion)
Étape 3 : 0001₂ + 1₂ = 0010₂ = -14₁₀
✅ Vérification des opérations
Testons si cette méthode résout le problème des opérations.
💻 Test : 14 + (-4) sur 4 bits
-4₁₀ = 1100₂ (complément à 2)
14₁₀ = 1110₂
Calcul : 1110₂ + 1100₂ = 11010₂
Sur 4 bits : on garde les 4 derniers bits : 1010₂
Résultat : 1010₂ = 10₁₀ ✅
Vérification : 14 + (-4) = 10 ✅
✅ Succès ! Le complément à 2 permet de réaliser toutes les opérations possibles sans erreur. C'est la méthode utilisée dans tous les ordinateurs modernes.
📊 Comparaison des méthodes
Critère | Bit de signe | Complément à 2 |
---|---|---|
Représentation unique du zéro | ❌ Non (deux représentations) | ✅ Oui (une seule) |
Opérations arithmétiques correctes | ❌ Non | ✅ Oui |
Simplicité d'implémentation | ⚠️ Complexe | ✅ Simple |
Utilisation actuelle | ❌ Abandonnée | ✅ Standard universel |