Revenons à l'exemple donné dans le chapitre concernant les entiers positifs sur l’addition.
On cherchait à calculer \( n + m \) avec \(n = 1110_2 = 14 \) et \(m = 1101_2 = 13 \).
\(n + m = 1110_2 + 1101_2 = 11011_2 \)
Ainsi, \( n + m\) se fait sur 5 bits (1 bit de plus que \(n\) et \(m\) qui s’écrivent chacun sur 4 bits).
Si la machine travaillait seulement sur 4 bits alors le bit de poids fort ne serait simplement pas pris en compte et, dans ce cas, \( n + m = 1\fbox{1011}_2\) serait égal à \(1011_2\) (autrement dit la machine donnerait \(14 + 13 = 11 \)).
C’est ce phénomène qui est utilisé à notre avantage pour représenter les nombres relatifs dans la machine.
En guise d’exemple, cherchons si l’opposé de \(111_2\) sur 4 bits existe et sa valeur en binaire.
Autrement dit: quelle doit être la valeur de \( m \) pour que \(111_2 + m = 0_2\) ? ou encore \(0111_2 + m = 0000_2\) ?
La réponse repose sur le fait qu’en travaillant sur 4 bits, \(10000_2\) (\(2^4\) en décimal) et \(0000_2\) représentent le même nombre dans la machine.
Puisque \(10000_2 > 111_2\), vu la définition de la soustraction, \(10000_2 - 111_2\) a un sens et \(m = 10000_2 - 111_2 = 1001_2\).
Le calcul précédent \(m = 10000_2 - 111_2\) ressemble énormément au calcul de \( \sim 111_2\), inversion des bits de l’entier \(111_2\) sur 4 bits.
Pour rappel, l’inversion sur 4 bits de \(111_2\) s’obtient avec \( \sim 111_2 = 1111_2 - 111_2\).
Comme \(10000_2 = 1111_2 + 1_2\), il vient:
\(m = 1111_2 + 1_2 - 111_2 = 1111_2 - 111_2 + 1_2 = \sim m + 1_2\).
Finalement, \(m = \sim m + 1_2\). Cette méthode appliquée à \(m\) est appelée complément à deux de \(m\).
Bilan de l’exemple:
On vient d’obtenir l’écriture en binaire de l’opposé sur 4 bits de \(111_2\)(7 en décimal), autrement dit l’écriture binaire de \(- 111_2\).
Sur 4 bits, \(-111_2 = 1001_2\), autrement dit, sur 4 bits, \(-7_{10} = 1001_2\).
\(-m = \sim m + 1\)
Exemples: déterminer
a) \(-1101_2\) sur 4 bits.
b) \(-1101_2\) sur 8 bits (1 octet), autrement dit \(-00001101_2\).
L’opposé d’un entier est construit et obtenu par ce qui précède.
On peut remarquer que le poids fort de l’opposé d’un entier en binaire change. Ce poids fort va jouer le rôle de signe dans la représentation des entiers signés en binaire.
Exemple sur 4 bits:
Entier positif | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8=\(\frac{2^{4}}{2}\) | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Binaire | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
Entier signé | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
On peut faire le lien avec le cercle trigonométrique (et les angles en radian) vu en seconde.