Des entiers naturels aux entiers relatifs

Nous savons maintenant représenter un entier naturel par une suite de bits.

Par exemple, sur 8 bits :

1310 = 0000 11012

Mais cette représentation ne prévoit aucun symbole pour écrire un signe + ou -.

Comment représenter alors -13 si la machine ne manipule toujours que des 0 et des 1 ?

Une première idée

Une solution paraît assez naturelle : réserver l’un des bits pour indiquer le signe du nombre.

Par exemple, on pourrait décider que :

  • 0 signifie « positif » ;
  • 1 signifie « négatif ».

Cette idée permet bien de distinguer des nombres positifs et négatifs.

Mais une représentation informatique ne doit pas seulement permettre de mémoriser une valeur.

Elle doit également permettre à la machine de calculer avec cette valeur.

Représenter ne suffit pas

Un ordinateur doit pouvoir effectuer des opérations faisant intervenir des nombres positifs et négatifs.

Par exemple :

8 - 3     12 + (-5)     -7 + 4

La convention choisie pour représenter les nombres négatifs doit donc être compatible avec les opérations effectuées par la machine.

Le problème

Comment représenter les entiers négatifs avec des bits tout en permettant à la machine de calculer simplement avec eux ?

Il faut choisir une convention

Une même suite de bits peut être interprétée de plusieurs manières.

Par exemple :

1111 0011

ne signifie rien à elle seule.

Pour lui donner une valeur, il faut connaître :

  • le nombre de bits utilisés ;
  • le type de donnée représenté ;
  • la convention choisie pour interpréter ces bits.
Idée essentielle

Les bits ne portent pas eux-mêmes leur signification.

C’est la convention de représentation qui permet de les interpréter.

Notre parcours

Nous allons résoudre ce problème en deux étapes.

1. Pourquoi le complément à deux ?

Nous commencerons par étudier une idée simple : réserver un bit pour représenter le signe.

Cette représentation semble naturelle, mais nous découvrirons qu’elle présente plusieurs difficultés, notamment lorsqu’il faut effectuer des calculs.

1. Pourquoi le complément à deux ?

2. Utiliser le complément à deux

Nous découvrirons ensuite comment le complément à deux permet de représenter les entiers négatifs.

Nous apprendrons à encoder et décoder des entiers, à déterminer les valeurs représentables, puis à effectuer des calculs avec leurs représentations binaires.

2. Utiliser le complément à deux

Une question pour commencer

Supposons que nous disposions de 8 bits.

Nous savons déjà écrire :

+13 → 0000 1101

Une première idée consisterait à utiliser le bit de gauche pour indiquer le signe.

On pourrait alors imaginer :

-13 → 1000 1101

À examiner

Cette représentation fonctionne-t-elle réellement lorsque nous voulons effectuer des calculs ?