Chapitre 1010. Représentation des nombres. 1 Représentation des

PTSI1 – 2016/2017 – INFO Lycée La Martinière-Monplaisir – Lyon
Chapitre 1010. Représentation des nombres.
Nous avons vu au chapitre 1, qu’en infor-
matique, les données sont stockées sous
forme de bits (binary digiten anglais).
Nous allons maintenant détailler la façon
dont on traduit les nombres sous cette
forme.
1 Représentation des nombres entiers
1.1 Écriture d’un nombre entier naturel en base k
HL’écriture 1984 exprime un entier naturel formé de 4 unités, 8 dizaines, 9 centaines et 1 millier :
1984 =
Le choix de faire des paquets de 10 est cependant arbitraire : on peut tout aussi bien décider de
faire des paquets de 2, 5, 8, 16, 20 (chez les Mayas), 60 (chez les Babyloniens)... Si on choisit de
faire des paquets de k, on dit qu’on décompose un nombre en base k.
HDécomposons par exemple 45 en base 10, en base 5 et en base 2 :
45 =
=
=
Remarque : Vu l’importance de la base 2, il est bon de connaître les premières puissances de 2:
20212223242526272829210
On adopte parfois les notations suivantes : on écrit la suite des chiffres qui permet d’exprimer le
nombre dans la base ket on met ken indice :
4510 = =
On distingue aussi la représentation binaire (en base 2) en la soulignant : 45 = .
Remarque : Tout comme on peut additionner deux nombres écrits en base 10 en utilisant l’algo-
rithme appris à l’école primaire, on peut effectuer l’addition entre deux nombres écrits avec la
représentation binaire.
Par exemple, 310 + 610 = 910 en décimal.
En binaire,
1
HLorsqu’on veut écrire un nombre dans une base kavec k > 10, il nous "manque" en quelque sorte
des unités. Il faut les inventer ; par exemple, pour la base 16 (ou base hexadécimale, très utilisée
en informatique : elle apparaît dans les clés wifi), les chiffres "hexadécimaux" sont :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (dix), B (onze), C (douze), D (treize), E (quatorze), F (quinze)
On a 45 =
1.2 Algorithme de décomposition
Sur ces exemples assez simples, on peut s’en sortir comme cela, en tâtonnant.
La méthode générale pour décomposer un entier nen base kest la suivante :
On effectue des divisions euclidiennes successives par kjusqu’à avoir un quotient nul ;
On récupère les restes en remontant les calculs.
Illustrons par un exemple avec x= 58 et k= 5.
58 =
=
=
En combinant toutes les lignes :
58 =
=
Exercice : Avec cette méthode, déterminer l’écriture binaire de 22.
2
Il s’agit là d’un algorithme, qu’on peut décrire de la façon suivante :
Entrées: x, k entiers
Sorties: décomposition de l’entier xdans la base k
nx
Emot vide
tantque n > 0faire
qquotient dans la division euclidienne de npar k
rreste dans la division euclidienne de npar k
Ajouter rdevant le mot E
nq
fin tantque
Renvoyer le mot E
1.3 La représentation des entiers naturels
Rappelons que la mémoire des ordinateurs est constituée de circuits ne pouvant être que dans deux
états ; l’un est identifié à 0 et l’autre à 1, les deux chiffres en base deux, ce qui justifie l’appellation bit
(binary digitc’est-à-dire chiffre binaire en anglais).
Il est donc naturel de représenter les entiers naturels dans la mémoire des ordinateurs par des bits
contenant leur décomposition en base 2. Par exemple,
13 =
donc il faut bits pour coder 13, il s’écrira en machine :
Remarque : Avec nbits, on peut représenter tous les entiers de 0à l’entier représenté en base 2par
11 . . . 1
| {z }
nbits
=
1.4 Cas des entiers relatifs
HCodage naïf (non retenu) :
Pour représenter les entiers relatifs, une solution est d’ajouter un bit donnant le signe : par
exemple 0 pour les positifs ou nul et 1 pour les négatifs.
Défauts :
0a deux représentations :
L’addition binaire n’est plus respectée.
3
HCodage utilisé : le complément à deux
Pour n= 8 bits, cette méthode va permettre de coder les entiers entre 27=128 et 271 = 127.
Si l’entier xà coder est positif ou nul :
Si l’entier xà coder est négatif, entre 128 = 27et 1:
Généralisons avec nbits. On pourra représenter les entiers relatifs xentre 2n1et 2n11.
Si x0alors xest représenté par sa notation binaire.
Si x < 0alors xest représenté par la notation binaire de x+ 2n, qui est un entier entre
2n1et 2n1.
0 1
1
2n11
. . .
2n1. . . 2n1
2n1entiers 2n1entiers
2n1entiers
2n1
2nentiers à représenter
2ncodes
+2n
Exemple : donner la représentation de 67, de 31 et de 0avec cette convention (sur 8 bits).
4
Remarque : Le langage Python ne connaît pas le type entier naturel. Ainsi, un entier naturel est
considéré comme un entier relatif.
1.5 Dépassement de capacité et entiers longs
Les langages de programmation se fixent en général un nombre d’octets sur lesquels ils vont coder les
entiers. Par exemple, par défaut, en Python, c’est 4 octets, c’est-à-dire 32 bits, d’où une plage d’entiers
de 2 147 483 648 à2 147 483 647. Si l’on dépasse ces limites, on passe automatiquement, en Python,
à un autre type que le type entier : le type long ("entiers longs").
La représentation des entiers n’est donc en pratique limitée que par la taille de la mémoire disponible
en machine.
2 Représentation des nombres réels
2.1 Approximation binaire d’un réel de l’intervalle [0,1[
HPour écrire un nombre réel xde façon approchée, nous avons l’habitude d’utiliser l’écriture dé-
cimale de xet de la tronquer (ou de faire un arrondi) ; par exemple, une valeur approchée de π
est 3,14 102près).
Ainsi le nombre π3a pour valeur approchée 0,14 = 1
10 +4
102102près), et c’est un réel
de [0,1[.
HGénéralisons : tout réel x[0,1[ aura une valeur approchée (à 10Nprès) de la forme :
b1
101+b2
102+· · · +bN
10N
b1,b2, ... , bNsont des entiers entre 0et 9:x
On peut faire exactement la même chose en remplaçant les "10" par des "2". Tout réel x[0,1[
aura une valeur approchée (à 2Nprès) de la forme :
b1,b2, ... , bNsont des entiers
On écrira : x0, b1b2. . . bN(on souligne pour préciser qu’on est en base 2). On parle de déve-
loppement binaire / en base 2.
HExemple : Calculer le nombre xqui a pour développement binaire : 0,11011.
5
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !