➖ 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 :
  • 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 :
  • 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 :
  • 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 :
  1. Convertir le nombre choisi en base 2
  2. Inverser chaque bit : 0 devient 1 et inversement
  3. 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