Problématique

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 :

Codage par bit de signe

Définition

Propriétés

Opposé de l'opposé d'un nombre

+42
  inversion
-42
  inversion
+42
content    -(-a) = a
Somme d'un nombre et de son opposé

+42
+ + (-42)
= = -84
triste    a + (-a) != 0
représentation(s) de zéro

    

On a donc 2 représentations possibles de 0.

Commentaires

Codage en complément à 2

Rappel : méthode des compléments

Cette méthode permet d'effectuer une soustraction en utilisant une addition :

Le complément d'un nombre représenté dans une base b s'obtient en remplaçant chaque chiffre Ci du nombre par le résultat de b - 1 - Ci

Par exemple, en base 10 :

complément(48) → 51     (9 - 4 → 5, 9 - 8 → 1)

Pour calculer la différence A - B, on procède à l'addition A + complément(B) + 1 :

75
+51
+1
=127 = 75 - 48 (la retenue finale n'est pas prise en compte)
On peut donc dire que complément(B) + 1 est une représentation de -B

Définition

L'opposé d'un nombre représenté en base 2 est obtenu en 2 étapes :

  1. inverser tous les bits du nombre (opération équivalente au remplacement de chaque bit Ci du nombre par le résultat de 1 - Ci décrite lors du rappel sur la méthode des compléments ci-dessus)
  2. ajouter 1 au résultat

Exemple

+43
inversion
+ + 1
= -› -43
Un nombre (codé en complément à 2) dont le bit de poids fort vaut 1 est forcément négatif : pour connaître sa valeur absolue, il faut calculer son complément à 2.

Propriétés

Opposé de l'opposé d'un nombre

+42
inversion
+ + 1
= -› -42
inversion
+ + 1
= -› +42
content    -(-a) = a
Somme d'un nombre et de son opposé

+42
+ + (-42)
= = 0
 
le "1" produit par le dépassement lors du calcul n'est pas pris en compte
content    a + (-a) = 0
représentation(s) de zéro


une seule représentation de 0

Commentaires

Dépassements lors des calculs

Que se passe-t-il lorsque le résultat d'un calcul est supérieur à la valeur maximale que l'on peut stocker avec le type de donnée utilisé ?

encore une fois, le résultat du calcul est faux

45
+ + 100
= = -110

Exercices sur le codage en complément à 2

Effectuez les conversions demandées ci-dessous sans utiliser de calculatrice.