REPRÉSENTATION DES NOMBRES EN MACHINE 1 Principe et

Lycée Brizeux – 2015/2016 REPRÉSENTATION DES NOMBRES EN MACHINE Mathématiques – PCSI B
CHAPITRE 2
REPRÉSENTATION DES NOMBRES EN MACHINE
Dans la mémoire d’un ordinateur, les données sont représentées sous forme de séquences de 0
et de 1. Par conséquent, toute information mémorisée par l’ordinateur doit pouvoir être codée en sé-
quences de 0 et de 1, en particulier les nombres. C’est ce que l’on va voir dans ce chapitre.
1 Principe et limites de la représentation binaire des entiers
1.1 Représentation d’un entier naturel
Soit bN{0,1}.
Pour tout NN, il existe n0Net des entiers x0,x1, . .., xn0, compris dans J0;b1Ket unique-
ment déterminés par N, tels que :
N=xn0bn0+ · · · + xkbk+ · · · + x1b+x0.
Cette écriture s’appelle écriture de Nen base b.
Proposition 1.1 (Représentation en base b)
Exemple. Écriture en base 10 du nombre 271 :
L’écriture en base 2 permet la représentation de tout entier naturel sous forme de séquence de bits.
On appelle représentation binaire d’un nombre entier naturel N son écriture en base 2, c’est-à-dire
la donnée d’un entier naturel n0et d’une séquence de bits (x0,x1,· · · ,xn0){0,1}n0+1tels que :
N=xn0×2n0+ · · · + xk×2k+ · · · + x1×2+x0.
On écrit : N=(xn0· · · x1x0)2, ou N=xn0· · · x1x0, voire N=xn0· · · x1x0.
Définition 1.2 (Représentation binaire d’un nombre entier)
Exemples. Représentation décimale de 111012:
Représentation binaire de 271 :
Remarque. Il est utile de connaître les premières puissances de 2 : 20=1, 21=2, 22=4, 23=8, 24=16,
25=32 26=64, 27=128, 28=256 29=512, 210 =1024, 211 =2048,. ..
1
Lycée Brizeux – 2015/2016 REPRÉSENTATION DES NOMBRES EN MACHINE Mathématiques – PCSI B
Addition en binaire
Commençons par quelques considérations simples : 02+02=02+12=
12+02=12+12=
On en déduit rapidement que l’addition en binaire s’effectuera sur le même modèle que l’addition en
écriture décimale, à ceci près que la retenue se produit dès qu’on arrive à 2 (au lieu de 10).
Exemple. Le calcul de 247+53 s’écrit en binaire :
247
+53
1 1 1 1 0 1 1 1
0 0 1 1 0 1 0 1
1.2 Représentation d’un entier relatif
MÉTHODE DU COMPLÉMENT À 2PUISSANCE n
Prenons l’exemple d’une machine fonctionnant avec des mots de n=8 bits.
On peut alors coder 28=256 nombres : si l’on ne codait que des entiers naturels, on pourrait représenter
tous les entiers compris entre 0 et 281.
La méthode du complément à 2 permet de coder tous les entiers compris entre 27et 271 (il y en
a bien 256).
äSi un entier nest compris entre 0 et 271, il est codé par sa représentation binaire "clas-
sique", décrite précédemment.
äSi un entier nest compris entre 27et 1, il est représenté par le codage en binaire de
l’entier positif 28+n. On peut procéder comme suit :
On écrit n(positif) en binaire.
On inverse les bits de n(opération binaire NON) : complément à 1.
On ajoute 1 (si on dépasse 271, c’est étape est ignorée).
Méthode 1.3
Exemples.
Observations :
Le premier bit est 0 si ce nombre est positif, 1 si ce nombre est négatif ;
Les règles d’addition des entiers relatifs prolongent celles des entiers naturels.
1.3 Limites de cette représentation
TAILLE DUN NOMBRE CODÉ EN BINAIRE
On remarque rapidement que la "taille" de la représentation binaire d’un entier est supérieure à
celle de son écriture décimale.
DÉPASSEMENT DE CAPACITÉ
Problème : on ne peut coder qu’un nombre fini d’entiers.
Exemple. Si on travaille avec une machine manipulant des mots codés sur un octet, on peut
coder les nombres entiers allant de 27= −128 à 271=127.
Le calcul de 53 +100 donne 153 ne fait pas partir de cette liste. Puisque 153 =28103, par la
méthode du complément à 2, la machine renvoie 103 !
On parle alors de dépassement de capacité (overflow en anglais).
2
Lycée Brizeux – 2015/2016 REPRÉSENTATION DES NOMBRES EN MACHINE Mathématiques – PCSI B
2 Représentation d’un nombre réel
Pour le codage d’un nombre réel dans un ordinateur, on reprend l’idée d’approximation d’un nombre
réel par un autre nombre. .. mais en utilisant la base 2, et en essayant de contourner certains défauts de
cette représentation.
2.1 Nombres à virgule, virgule flottante
NOMBRES DÉCIMAUX,NOMBRE À VIRGULES EN BINAIRE
On appelle nombre décimal tout réel qui peut s’écrire sous la forme n
10m, où nest un entier relatif,
et mest un entier naturel. Ils ont un nombre fini de décimales.
On peut écrire un nombre à virgule en notation binaire en utilisant les puissances négatives de 2.
Exemple. 11,01012=
PROBLÈMES
,un «très grand » nombre, tel que le nombre d’Avogadro NA, (environ 6,022×1023) va mobiliser
une grande quantité de données pour être écrit : l’écriture décimale d’une approximation de
NAà l’entier près nécessite au moins 24 chiffres ;
,Même problème pour les quantités « très petites » : par exemple, la charge élémentaire d’un
électron, qui vaut, en Coulombs, environ 1,602×1019, se représente, sous forme décimale,
à l’aide d’une approximation nécessitant au moins 20 chiffres.
En décimal, pour pallier ce défaut, on utilise l’écriture scientifique. On va adapter ceci aux nombres
écrits en binaire.
2.2 Virgule flottante en machine
On peut écrire tout nombre décimal xnon nul sous la forme : x=sm 2n, où
sest le signe de x;
mest un réel de [1,2[ (appelé mantisse) ;
nest un entier relatif (appelé exposant).
C’est l’écriture binaire à virgule flottante du nombre x.
Proposition 2.1
Exemple. x=3,3125
3
Lycée Brizeux – 2015/2016 REPRÉSENTATION DES NOMBRES EN MACHINE Mathématiques – PCSI B
Dans le cas où on utilise 64 bits pour représenter les décimaux, cette adaptation de la notation scien-
tifique en base 2 est définie par la norme IEEE 754 (Institute of Electrical and Electronics Engineers). Elle
convient d’utiliser 1 bit pour le signe, 11 bits pour l’exposant et 52 bits pour la mantisse :
le signe +est représenté par 0 et le signe par 1 ;
l’exposant nest un entier relatif compris entre 1022 et 1023, codé en machine par l’entier natu-
rel e=n+1023, qui est compris entre 1 et 2046 ;
la mantisse mest un nombre binaire à virgule dans l’intervalle [1,2[, comprenant 52 chiffres après
la virgule.
Remarque. 1. Comme la mantisse appartient à [1,2[, elle a toujours un seul chiffre avant la virgule
et ce chiffre est toujours un 1 : il est donc inutile de le représenter. De cette façon, on utilise les 52
bits pour représenter les 52 chiffres après la virgule.
La précision réelle de la mantisse est de 53 bits.
2. Les exposants codés par e=0 et e=2047 sont réservés pour des situations exceptionnelles :
Si e=2047 (n=1024 =210), le nombre est assimilé à +∞ ou −∞ ;
Si e=0 et m=0, le nombre est zéro. Le signe n’étant pas fixé, il y a un zéro positif et un zéro
négatif.
Si e=0 et m6= 0, le nombre est dit dénormalisé : cela permet de représenter les nombres
proches de zéro. La règle de calcul devient : x=s(m1)21023.
Exemple. Déterminer le codage du nombre décimal 243,25 dans la norme IEEE 754.
2.3 Limites de la représentation des réels en machine
DÉPASSEMENT DE CAPACITÉ
Un nombre à virgule flottante en base 2 n’est plus représentable sur 64 bits si sa représentation
demande :
un exposant supérieur à 1023 ;
ou un exposant égal à 1023 et une mantisse supérieure à la plus grande mantisse représen-
table sur 52 bits, c’est-à-dire 1 (implicite) suivi de 52 chiffres binaires tous égaux à 1 après la
virgule.
Une situation similaire se produit lorsque l’on veut représenter un nombre à virgule flottante
trop proche de 0. Il peut être arrondi à 0, ou produire une erreur. On parle alors de dépassement
de capacités par valeurs inférieures (underflow).
Certains nombre ne sont pas représentables dans la norme précédente.
Par exemple, le nombre 0,4 admet 0,011001100110011· · ·2pour développement en base 2 : il
s’agit d’un développement infini périodique.
La norme IEEE 754 impose que les nombres à virgule soient arrondis à la valeur représentable la
plus proche. Dans le cas de 0,4, la valeur approchée choisie est :
0,0110011001100110011001100110011001100110011001100110102
0,400000000000000022204460492503.
4
1 / 4 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 !