Logo de kxs.frCours d'informatique pour le lycée et la prépa

Écriture d’un entier relatif

Nous avons vu comment écrire un entier dans différentes bases. Nous allons nous concentrer sur la base 2 qui est utilisée dans les systèmes informatiques.

Addition en binaire

Une addition en binaire se fait de la même façon qu’en décimal.

1) Additionnons les deux nombres binaires suivants : 11001011 et 01011100

100100111

2) Convertissez puis additionnez 12 et 43 en binaire.

1210 = 11002
4310 = 1010112
1100 + 101011 = 1101112 = 5510

Le binaire signé

Définition

Pour représenter un entier relatif, la solution qui peut paraître la plus simple serait de garder le premier bit pour le signe (1 pour négatif et 0 pour positif) et les suivants pour la valeur absolue.

3) Essayons d’écrire -11 sur 8 bits de cette façon.

-1110 = 100010112

4) Quel est alors l’intervalle qu’il est possible d’écrire sur 8 bits ? Comparer à l’intervalle du binaire non-signé sur 8 bits également.

-127 à 127

Problèmes

5) Pour se rendre compte des problèmes de cette représentation, ajoutons 11 et -11 en binaire signé sur 8 bits. Que remarquez-vous ?

-1110 = 100010112
1110 = 000010112
1110 - 1110 = 000010112 + 000010112 = 100101102 = -2210

La somme ne fait pas zéro !

6) Donner les deux façons d’écrire le zéro :

010 = 000000002 = 100000002

Pour ces raisons, le binaire signé n’a presque jamais été utilisé. On utilise le complément à 2.

Complément à 2

Pour écrire un entier négatif en complément à 2, il faut suivre trois étapes :

Ainsi, un entier négatif commence aussi par un 1.

Pour trouver la valeur d'un entier négatif en complément à 2, il faut suivre trois étapes :

7) Prenons l’exemple de -11 sur 8 bits :

11 = 00001011
     11110100  # On inverse les 1 et les 0
	 11110101  # On ajoute 1

1110 - 1110 = 0

8) Ajoutons 11 à -11 :

 00001011  # 11
+11110101  # -11
 --------
100000000
 00000000  # 0 car le 9e bits n'existe pas

1110 - 1110 = 0
Tout va bien !

9) Quel est le plus grand entier positif que l’on peut écrire sur 8 bits ?

011111112 = 12710

10) Que vaut 10000000 ?

10000000
01111111  # On inverse les 1 et les 0
10000000  # On ajoute 1, on obtient 128

Donc 100000002 = -12810

11) On complète alors le tableau récapitulatif ci-dessous :

Base 10 Complément à 2 sur 8 bits
127
126
2
1
0
-1
-2
-127
-128
Base 10 Complément à 2 sur 8 bits
127 01111111
126 01111110
2 00000010
1 00000001
0 00000000
-1 11111111
-2 11111110
-127 10000001
-128 10000000

12) Donner l’écriture en complément à 2 sur 8 bits de -38.

38 = 00100110
     11011001  # On inverse les 1 et les 0
	 11011010  # On ajoute 1

-3810 = 110110102

13) Ajouter 89 à -38 en complément à 2 et vérifier le résultat.

 01011001  # 89
+11011010  # -38
 --------
100110011
 00110011  # 51 car le 9e bits n'existe pas

8910 - 3810 = 5110
Tout va bien !

14) Quels sont le plus grand entier positif et le plus petit entier négatif que l’on peut écrire en complément à 2 sur 16 bits ?

32767 et -32768