Décaler les bits☘
Exercice 1☘
On dispose de l'écriture binaire d'un entier d. On ajoute un 0 à la fin (à droite) de cette écriture pour obtenir
un entier f.
Quelle opération permet de passer de l'entier d à l'entier f?
Exemples:
- d = 11deux donne f = 110deux.
- d = 1010deux donne f = 10100deux.
Solution
Cette opération revient à multiplier l'entier par 2: f = 2d.
Pour bien comprendre cela, écrivons le détail sur les exemples donnés.
-
11deux = 1 × 21 + 1 × 20.
On ajoute un 0 en fin d'écriture:
110deux = 1 × 22 + 1 × 21 + 0 × 20
soit 110deux = 2 × (1 × 21 + 1 × 20),
c'est à dire: 110deux = 2 × 11deux. -
1010deux = 1 × 23 + 0 × 22 + 1 × 21 + 0 × 20
et 10100deux = 1 × 24 + 0 × 23 + 1 × 22 + 0 × 21 + 0 × 20
soit 10100deux = 2 × (1 × 23 + 0 × 22 + 1 × 21 + 0 × 20)
c'est à dire 10100deux = 2 × 1010deux.
Exercice 2☘
On dispose de l'écriture binaire d'un entier d. On supprime le chiffre le plus à droite de cette écriture.
Quel lien entre l'entier d de départ et l'entier f obtenu ?
Exemples:
- Pour d = 110deux, on a f = 11deux.
- Pour d = 1101deux, on a f = 110deux.
Solution
f est le quotient de la division euclidienne de d par 2. On a donc f = d//2.
Pour bien comprendre cela, détaillons sur les exemples:
-
d = 110deux, soit d = 1 × 22 + 1 × 21 + 0 × 20, soit d = 2 × ( 1 × 21 + 1 × 20) + 0. On a écrit d sous la forme 2q+0 où q est entier: le 0 final est le reste de la division de d par 2 et q est le quotient.
Barrer le 0 final revient à remplacer d par q (on a q = f). -
d = 1101deux, soit d = 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20.
Soit d = 2 × (1 × 22 + 1 × 21 + 0 × 20) + 1.
Le 1 final est le reste de la division de d par 2 et le nombre f est le quotient.