Aller au contenu

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.