Écriture d'un entier signé

De la manipulation des entiers positifs à la représentation des entiers relatifs (signés)

Nombre fini de bits ! Est ce un problème ?

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.

Existence et valeur de l’opposé d’un entier

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.

  • Première méthode: résolution de l’équation \(111_2 + m = 10000_2\)

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\).

  • Seconde méthode:

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\).

Réponse du a)
Réponse du b)

Représentation des entiers signés

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.