I. L’ARITHMETIQUE SIGNEE
On appelle arithmétique
non signée l’arithmétique
dans laquelle tous les entiers sont positifs. En arithmétique
signée au contraire, les nombres peuvent être soit positifs,
soit négatifs. Un nombre signé
n’est donc pas forcément négatif.
Les données informatiques se présentent sous la forme d’une
succession de chiffres binaires, les bits. Nous
supposerons que les systèmes de numération binaire et
hexadécimal vous sont déjà familiers.
Il est en revanche fort possible que vous ne connaissiez pas la façon
dont un ordinateur représente les nombres négatifs. Il
existe deux conventions : la notation en signe
et valeur absolue et la notation en complément
à 2.
La première est extrêmement simple : le premier bit
représente le signe, et les autres bits la valeur
absolue du nombre. Le bit de signe vaut 1 si le nombre est strictement négatif,
0 sinon.
Par exemple, le nombre (–14) codé sur 8 bits s’écrit
ainsi :
10001110
Cette convention n’est quasiment jamais utilisée en
informatique. On lui préfère la représentation en
complément à 2 dont le principe est le suivant :
- les nombres positifs sont codés de la même façon
qu’en convention « signe et valeur absolue ».
- les nombres négatifs sont obtenus en inversant tous les bits,
puis en ajoutant 1.
Exemple :
le nombre 14 codé sur 8 bits est représenté ainsi :
00001110
et (–14) ainsi :
Remarque :
le résultat intermédiaire, 11110001, est appelé
« complément à
1 ».
Vous allez immédiatement comprendre l’avantage de cette
représentation. Faisons la somme de 14 et de (–14), de
la même façon que s’il s’agissait d’entiers
positifs :
00001110 + 11110010 = 100000000
Le résultat étant codé sur 8 bits, le 1 situé
à gauche n’est pas pris en compte. On obtient donc 14
+ (–14) = 0.
L’intérêt évident est que la différence
de deux nombres peut se calculer avec le même algorithme que leur somme.
Il suffit de transformer au préalable le nombre retranché en son
opposé. Cette conversion est très simple et très
rapide.
Au contraire, en représentation « signe et valeur
absolue », on aurait eu besoin de nombreux
algorithmes, car plusieurs cas se présentent.
Remarque :
la représentation en complément à 2 revient en
fait à écrire (-1) comme ceci :
11111111
(-2) comme cela :
11111110
(-3) comme cela :
11111101
etc…
Il y a ainsi une symétrie entre les nombres positifs et les nombres négatifs.
Il en résulte que le bit le plus à gauche représente
le signe, de la même façon qu’en notation « signe
et valeur absolue ». Avant tout calcul, nous pouvons
donc affirmer que le nombre 10010101
est négatif.
Sommaire
Suite
|