Les nombres entiers relatifs

15. Les nombres entiers relatifs#

15.1. Rappels sur les opérations#

Dans (le cours sur l’addition)[addition_bin], on a pratiqué l’addition bits à bits avec retenue.

Pour la soustraction, deux options s’offrent généralement à nous, soit en travaillant uniquement avec des nombres positifs et donc avoir une précondition sur le deuxième argument de la soustraction, soit en autorisant les nombres négatifs et en additionnant l’opposé.

Exercise 15.1

Proposer un codage de l’opposé qui soit compatible avec l’addition.

Note

Abus de langage Par abus de langage, on trouve également l’expression complément à deux (car 1+1 = 2)

15.2. Complément à 1 + 1#

On va présenter le complément à un plus un. L’idée est de procéder en deux temps pour trouver l’opposé. On commence par écrire le complément à un, c’est à dire le nombre obtenu en remplaçant tous les 0 par des 1 et réciproquement tous les 1 par des 0.

Avertissement

Le complément à un de \(10001011\) est \(01110100\)

On ajoute ensuite 1 au résultat :

Avertissement

La somme \(01110100 + 00000001\) vaut \(01110101\).

On peut effectuer la somme \(10001011 + 01110101\).

Example 15.1

 1111111
 10001011
+
 01110101
---------
10000000

Exercise 15.2

  1. Écrire les entiers de 1 à 7 écrits sur 3 bits puis écrire leurs opposés

  2. Vérifier que 0 est bien son propre opposé

On s’aperçoit que \(8\) et \(-8\) sont tous deux encodés de la même façon. On choisit de conserver \(-8\).

La plage de nombres représentables de \(-2^{n-1}\) à \(2^{n-1} - 1\) contenant \(2^n\) entiers (comme pour les positifs

Avertissement

Attention, pour la moitié des entiers, les représentations coïncident, ce qui a conduit à explosion d’Ariane 5 par débordement d’entier.

représentation sous la forme d’un cercle des 8 entiers