Section 3.2
Représentation des entiers
Dans le chapitre précédent, nous avons vu comment
représenter des entiers en base 2, c'est-à-dire
en utilisant uniquement les chiffres 0
et 1
,
c'est-à-dire les bits.
La représentation des entiers en base 2 est à la base de beaucoup de techniques utilisées pour représenter de l'information. Cependant la base 2 n'est pas à proprement parler un code. Comme nous l'avons vu à la section précédente, un code permet de représenter uniquement un ensemble fini de valeurs. Or, la représentation des entiers en base 2 permet de représenter un nombre infini de valeurs, à savoir tous les entiers positifs.
Dans cette section, nous allons regarder comment représenter des entiers en utilisant des codes, et plus précisément des codes à longueur fixe. Nous allons voir que ces codes sont limités dans le nombre de valeurs qu'ils peuvent représenter. On appelle le domaine de représentation d'un code l'ensemble des valeurs qu'il peut représenter.
Nombres binaires à longueur fixe
Commençons par regarder comment représenter des entiers positifs ou nuls en utilisant un code à longueur fixe. Pour représenter des entiers en utilisant un code à longueur fixe, on doit tout d'abord se décider sur la longueur n des mots de code. La longueur choisie détermine quels entiers peuvent être représentés par le code.
! Remarque
En pratique, les longueurs les plus courantes sont 8, 16, 32 et 64 bits. Ces longueurs sont des multiples de 8 bits, ce qui n'est pas une coïncidence. En effet, l'octet (groupe de 8 bits) est l'unité de base de stockage de l'information dans les ordinateurs.
Une fois la taille n choisie, pour chaque nombre, on calcule sa représentation en base 2 et on complète avec des zéros à gauche jusqu'à obtenir un mot de code de longueur n. On obtient ainsi un code à longueur fixe. Pour être technique, appellera ce code le code binaire naturel de longueur n. Ci-dessous est présenté le code binaire naturel de longueur 4, qui permet de représenter les entiers de 0 à 15.
Nombre | Mot de code |
---|---|
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
… | … |
14 | 1110 |
15 | 1111 |
Le domaine de représentation d'un tel code est l'ensemble des entiers compris entre 0 et 2n - 1. Cela signifie que le code ne peut représenter que les entiers compris dans cet intervalle. Toute valeur en dehors de cet intervalle ne peut pas être représentée par le code. En effet, les nombres plus grands ou égaux à 2n ne peuvent pas être représentés car ils nécessiteraient un mot de code de longueur supérieure à n selon cette méthode.
Comme nous l'avons déjà mentionné, un code est forcément limité dans le nombre de valeur qu'il peut représenter. Dans le cas d'un code binaire de longueur fixe n, le nombre de valeurs représentables est au maximum de 2n.
Complément à 2
Comme nous l'avons vu lors du chapitre précédent sur l'architecture des ordinateurs, la méthode du complément à 2 permet de représenter des entiers négatifs et positifs en utilisant un code à longueur fixe. Ci-dessous est présenté le code à longueur fixe de longueur 4 pour le complément à 2 sous la forme d'un tableau.
Nombre | Mot de code |
---|---|
-8 | 1000 |
-7 | 1001 |
-6 | 1010 |
-5 | 1011 |
-4 | 1100 |
-3 | 1101 |
-2 | 1110 |
-1 | 1111 |
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
Le domaine de représentation du complément à 2 sur n bits
est l'ensemble des entiers relatifs compris entre -2n-1 et 2n-1 - 1,
ce qui correspond à 2n valeurs différentes.
Notez que le code permet de représenter un nombre négatif de plus que de nombre positif.
En effet, la valeur 0 est représentée par le mot de code 000…0
qui commence par un zéro, et
qui donc est donc groupé avec les nombres positifs.
! Remarque
Comme nous l'avons déjà vu, pour obtenir le mot de code qui correspond à un nombre -k, il suffit de prendre le mot de code de k, d'en inverser tous les bits et d'y additionner 1.
Cette méthode fonctionne pour tous les nombres relatifs représentables
par le code, à l'exception de -2n-1, où n est la longueur du code.
Le mot de code de 2n-1 est donc 100…0
.
Si on inverse tous les bits du mot de code puis on ajoute 1,
on retombe sur le même mot de code.
À noter que cela n'est pas surprenant,
car 2n-1 n'est pas représentable dans ce code.
Comme nous l'avons vu dans le chapitre précédent, cette méthode de représentation des nombres relatifs est très pratique pour les ordinateurs. En effet, les opérations arithmétiques sur les nombres relatifs peuvent être réalisées en utilisant les mêmes opérations que pour les nombres positifs.
✎ Auto-évaluation
Un code binaire à longueur fixe de longueur 4 peut représenter au maximum valeurs différentes, alors que pour un code binaire à longueur fixe de longueur 5, le nombre maximum de valeurs différentes est de .
Lorsque la longueur d'un code binaire de longueur fixe augmente de 1, le nombre de valeurs différentes qu'il peut potentiellement représenter .
✎ Auto-évaluation
Étant donné une longueur de code fixée à 4 bits, la méthode du complément à 2 permet de représenter les nombres compris entre et .
Dans la section suivante, nous allons voir comment représenter des caractères comme des lettres, chiffres et autres symboles en utilisant des codes binaires.
! À maîtriser
Avant de poursuivre, assurez-vous de pouvoir :
- Lire et écrire des nombres entiers positifs en binaire naturel de longueur quelconque.
- Lire et écrire des nombres entiers relatifs en binaire sur un nombre fixe de bits avec la méthode du complément à deux.
- Déterminer le domaine de représentation selon le code binaire naturel de longueur donnée.
- Déterminer le domaine de représentation selon la méthode du complément à deux pour un nombre donné de bits.