P1-2-entiers_relatifs
P1-2-entiers_relatifs
P1-2-entiers_relatifs
Représentation binaire
types et valeurs de base d’un entier relatif
Avec un mot de 𝑛 bits, on peut écrire 2𝑛 nombres, donc on peut représenter tous les
entiers positifs ou nul de 0 à (2𝑛 − 1).
Le nombre de bits 𝑛 nécessaires à l’écriture d’un entier positif 𝑁 est donné par son
logarithme (en base 2).
Plus précisément, le nombre de bits 𝑛 est l’arrondi entier supérieur du logarithme de 𝑁.
Voici quelques valeurs particulières pour illustrer cela :
𝑁 log2 (𝑁 ) 𝑛 écri-
ture
1 0 1 1
2 1 2 10
3 1.58 2 11
4 2 3 100
5 2.32 3 101
7 2.81 3 111
8 3 4 1000
9 3.17 4 1001
15 3.91 4 1111
16 4 5 10000
17 4.09 5 10001
255 7.99 8 11111111
256 8 9 100000000
257 8.01 9 100000001
! ALERTE ! Cela peut conduire à des erreurs dans un programme si on prévoit de faire des additions
mais qu’on oublie que la machine a un nombre limité de bits pour représenter les entiers : la retenue
peut être perdue !
Exemple en se limitant à 4 bits : Calcul à effectuer (ici en notation décimale) : 10 + 12 = 22
1 0 0 0 (retenues)
1 0 1 0 (10)
+ 1 1 0 0 (12)
1 0 1 1 0 (22)
Il faut donc aussi prévoir dans les programmes de limiter la taille des nombres à manipuler à la moitié
de la taille maxi si on compte faire des multiplications.
Remarque : Python peut manipuler des nombres entiers de taille arbitraire (avec des « artifices »
internes au langage).
1 1 1 1 (retenues)
0 0 0 1 0 1 1 1 (+23)
+ 1 0 0 1 0 1 1 1 (−23)
1 0 1 0 1 1 1 0 (−46)
- 32 8 4 2 (-46)
0 0 0 0 0 2 4 3 (+243)
+ 9 9 9 9 9 7 5 7 (−243)
(1) 0 0 0 0 0 0 0 0 (0)
(1) 1 1 1 1 1 1 (retenues)
0 0 0 0 0 5 2 7 (+527)
+ 9 9 9 9 9 7 5 7 (−243)
(1) 0 0 0 0 0 2 8 4 (+284 : positif, commence par un 0)
1 (retenues)
0 0 0 0 0 1 2 7 (+127)
+ 9 9 9 9 9 7 5 7 (−243)
9 9 9 9 9 8 8 4 (−116 : complément à 108 , négatif, commence par un 9)
2. Le complément à 2 (2𝑛 )
En binaire, on fait exactement la même chose avec le complément à 2𝑛 , abrégé habituellement en
« complément à 2 », (𝑛 est le nombre de bits pour représenter le nombre).
1 (retenues)
1 0 1 0 0 0 1 0 (−94)
+ 0 0 1 0 0 0 0 1 (+33)
1 1 0 0 0 0 1 1 (− ?)