Écriture d’un entier relatif

1) une mauvaise idée pour commencer…

Nous avons déjà vu comment représenter les entiers positifs, nous allons maintenant nous intéresser aux entiers relatifs (négatifs et positifs).

La première idée qui pourrait nous venir à l’esprit est, sur un nombre comportant n bits, d’utiliser 1 bit pour représenter le signe et n-1 bit pour représenter la valeur absolue du nombre à représenter. Le bit de signe étant le bit avec le poids le plus fort (c’est à dire le bit le plus à gauche), ce bit de poids fort serait à 0 dans le cas d’un nombre positif et à 1 dans le cas d’un nombre négatif.

un exemple : on représente l’entier 5 sur 8 bits par 00000101, -5 serait donc représenté par 10000101

Il existe deux inconvénient à cette méthode :

Nous allons donc utiliser une autre méthode : le complément à deux

2) le complément à deux

Avant de représenter un entier relatif, il est nécessaire de définir le nombre de bits qui seront utilisés pour cette représentation (souvent 8, 16 , 32 ou 64 bits). Nous travaillerons avec 8 bits.

Prenons tout de suite un exemple : déterminons la représentation de -12 sur 8 bits

image

les retenues sont notées en rouge La représentation de -12 sur 8 bits est donc : 11110100

Comment peut-on être sûr que 11110100 est bien la représentation de -12 ?

Vérifions que 12 + (-12) est bien égal à 0 dans notre représentation des chiffres en binaire.

image

Dans l’opération ci-dessus, nous avons un 1 pour le 9e bit, mais comme notre représentation se limite à 8 bits, il nous reste bien 00000000.

Il faut noter qu’il est facile de déterminer si une représentation correspond à un entier positif ou un entier négatif : si le bit de poids fort est à 1, nous avons affaire à un entier négatif, si le bit de poids fort est à 0, nous avons affaire à un entier positif.

La plus petite valeur qu’il est possible de coder sur 8 bits est 10000000 (soit -128). La plus grande valeur est 01111111 (soit 127).

Plus généralement, nous pouvons dire que pour une représentation sur n bits, il sera possible de coder des valeurs comprises entre -2n-1 et 2n-1 - 1

Exercice 1

En utilisant le complément à 2, représentez -15 en binaire (représentation sur 8 bits)

Exercice 2

En utilisant le complément à 2, représentez sur 8 bits l’entier 4 puis représentez, toujours sur 8 bits, l’entier -5. Additionnez ces 2 nombres (en utilisant les représentations binaires bien évidemment), vérifiez que vous obtenez bien -1.

Exercice 3

Quel est l’entier relatif codé en complément à 2 sur un octet par le code 11011010 ?

Exercice 4

Quelles sont les bornes inférieure et supérieure d’un entier relatif codé sur 16 bits ?