Livre_silo 30 août 2013 16:32 Page 40
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
40
Informatique pour tous
Plus généralement, avec des mots de n bits, on peut représenter les entiers relatifs compris
entre −2
n−1 et 2
n−1
− 1 : on représente un entier relatif x positif ou nul comme l’entier
naturel x (compris entre 0 et 2
n−1
− 1) et un entier relatif x strictement négatif comme
l’entier naturel x + 2
n (compris entre 2
n−1 et 2
n
− 1).
ATTENTION La mémoire n’a pas de sens a priori.
Rien dans la représentation binaire n’indique comment il faut interpréter un mot mémoire
donné. Le même mot peut donc être lu de plusieurs façons différentes, toutes aussi correctes les unes que les autres.
Il faut donc garder à part une trace des conventions de codage qu’on a décidé d’utiliser pour
les différents mots mémoire que l’on manipule. De nos jours, cette gestion du sens de la
mémoire n’est presque plus à la charge du programmeur : les langages de programmation
évolués proposent pour la plupart un système de types qui permet d’associer facilement à
chaque endroit de la mémoire une signification particulière.
EN PRATIQUE Dans les versions Python 2.x
Le type int désigne en principe des entiers relatifs représentés sur 32 bits (quatre octets),
donc dont les valeurs vont de −2 147 483 648 à 2 147 483 647. Cependant, si l’on travaille sur
une machine 64 bits, la représentation des entiers sera également faite sur 64 bits : on disposera donc des entiers de −9 223 372 036 854 775 808 à 9 223 372 036 854 775 807. L’ensemble
des valeurs de type int dépend donc de la machine sur laquelle Python est exécuté !
SAVOIR-FAIRE Représenter en binaire sur n bits un entier relatif
donné en décimal
Si l’entier relatif x est positif ou nul, on le représente comme l’entier naturel x. S’il est
strictement négatif, on le représente comme l’entier naturel x + 2
n .
Exercice 2.25 Trouver les représentations binaires sur huit bits des entiers relatifs 0 et −128.
L’entier relatif 0 est représenté comme l’entier naturel 0 : 00000000. L’entier relatif −128 est représenté
comme l’entier naturel −128 + 256 = 128 : 10000000.
SAVOIR-FAIRE Représenter en décimal un entier relatif donné en binaire
sur n bits
Si cet entier relatif est donné par le mot m, on commence par calculer l’entier naturel
p représenté par ce mot. Si p est strictement inférieur à 2
n
− 1, c’est l’entier relatif
représenté, s’il est supérieur ou égal à 2
n
− 1, l’entier relatif représenté est p − 2
n .
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
40
Informatique pour tous
Plus généralement, avec des mots de n bits, on peut représenter les entiers relatifs compris
entre −2
n−1 et 2
n−1
− 1 : on représente un entier relatif x positif ou nul comme l’entier
naturel x (compris entre 0 et 2
n−1
− 1) et un entier relatif x strictement négatif comme
l’entier naturel x + 2
n (compris entre 2
n−1 et 2
n
− 1).
ATTENTION La mémoire n’a pas de sens a priori.
Rien dans la représentation binaire n’indique comment il faut interpréter un mot mémoire
donné. Le même mot peut donc être lu de plusieurs façons différentes, toutes aussi correctes les unes que les autres.
Il faut donc garder à part une trace des conventions de codage qu’on a décidé d’utiliser pour
les différents mots mémoire que l’on manipule. De nos jours, cette gestion du sens de la
mémoire n’est presque plus à la charge du programmeur : les langages de programmation
évolués proposent pour la plupart un système de types qui permet d’associer facilement à
chaque endroit de la mémoire une signification particulière.
EN PRATIQUE Dans les versions Python 2.x
Le type int désigne en principe des entiers relatifs représentés sur 32 bits (quatre octets),
donc dont les valeurs vont de −2 147 483 648 à 2 147 483 647. Cependant, si l’on travaille sur
une machine 64 bits, la représentation des entiers sera également faite sur 64 bits : on disposera donc des entiers de −9 223 372 036 854 775 808 à 9 223 372 036 854 775 807. L’ensemble
des valeurs de type int dépend donc de la machine sur laquelle Python est exécuté !
SAVOIR-FAIRE Représenter en binaire sur n bits un entier relatif
donné en décimal
Si l’entier relatif x est positif ou nul, on le représente comme l’entier naturel x. S’il est
strictement négatif, on le représente comme l’entier naturel x + 2
n .
Exercice 2.25 Trouver les représentations binaires sur huit bits des entiers relatifs 0 et −128.
L’entier relatif 0 est représenté comme l’entier naturel 0 : 00000000. L’entier relatif −128 est représenté
comme l’entier naturel −128 + 256 = 128 : 10000000.
SAVOIR-FAIRE Représenter en décimal un entier relatif donné en binaire
sur n bits
Si cet entier relatif est donné par le mot m, on commence par calculer l’entier naturel
p représenté par ce mot. Si p est strictement inférieur à 2
n
− 1, c’est l’entier relatif
représenté, s’il est supérieur ou égal à 2
n
− 1, l’entier relatif représenté est p − 2
n .
