TP 2 : Vendredi 13 Septembre 2013
Codage des nombres entiers relatifs
Continuons à coder notre monde …
Partie du programme : Représentation de l’information
La mémoire des ordinateurs est constituée d’une multitude de petits circuits électroniques qui, chacun, ne
peuvent être que dans 2 états : hors tension ou sous tension.
Comme il a fallu donner un nom à ces états, on a décidé de les appeler 0 et 1.
Un tel circuit à 2 états s’appelle un circuit mémoire un bit.
Le nombre entier naturel 13, représenté en base 2 par : est donc représenté dans la mémoire d’un
ordinateur par le mot 1101, c’est-à-dire par 4 circuits mémoire un bit respectivement dans les états 1, 0, 1, 1.
Les circuits mémoire un bit sont souvent groupés par huit (octet) et on utilise des nombres exprimés en
langage binaire sur un, deux, quatre ou huit octets soit 8, 16, 32 ou 64 bits.
Sur un octet, on peut représenter les nombres entiers naturels allant de 0 à :
Sur deux octets, on peut représenter les nombres entiers naturels allant de 0 à :
Sur quatre octets, on peut représenter les nombres entiers allant de 0 à
Sur huit octets, i.e. 64 bits : on peut représenter tous les nombres entiers naturels allant de 0 à .
Dans le langage Python, on ne peut manipuler que des nombres entiers relatifs : tous les entiers sont signés.
Il faut étendre aux entiers relatifs la représentation binaire des entiers naturels.
1ère solution naturelle : réserver un bit pour le signe et utiliser les autres pour représenter sa valeur
absolue.
Ainsi, avec des mots de 16 bits, si on utilise 1 bit pour le signe et 15 bits pour la valeur absolue, on pourrait
représenter les entiers relatifs allant de :
- = - = - 32 767 à = = 32 767.
Inconvénient de cette méthode (entre autres) : existence de deux zéros l’un positif et l’autre négatif !
Solution choisie : la notation en complément à 2.
On va représenter un entier relatif par un entier naturel. Si on utilise des mots de 16 bits, on va pouvoir
représenter les entiers relatifs de -32 768 à 32 767 en procédant ainsi :
Représentation binaire :
Un ordinateur est une machine qui manipule
des valeurs numériques représentées sous
forme binaire.
Compétence :
Manipuler à l’aide d’opérations élémentaires
les trois unités de base : bit, octet, mot.
Numérisation :
L’ordinateur manipule uniquement des valeurs
numériques. Une étape de numérisation des
objets du monde physique est donc
indispensable.
Compétence :
Coder un nombre, un caractère au travers d’un
code standard, un texte sous forme d’une liste
de valeurs numériques.
Numériser une image ou un son sous forme d’un
tableau de valeurs numériques.