Arithmétique des ordinateurs
Quelle expression calcule correctement la multiplication d'un entier x par 10 au moyen de décalages et d'additions, sans instruction de multiplication ?
- A(x << 3) + (x << 1)
- B(x << 10)
- C(x << 2) + x
Afficher la réponse et l'explication
Réponse : A. (x << 3) + (x << 1)
Un décalage d'un bit vers la gauche multiplie par 2 : x << 3 vaut 8 fois x et x << 1 vaut 2 fois x. Comme 8x + 2x = 10x, (x << 3) + (x << 1) donne la multiplication par 10. Les multiplications par une constante peuvent ainsi être remplacées par des combinaisons de décalages et d'additions, et les compilateurs choisissent la forme la plus rapide. x << 10 multiplie par 2¹⁰ = 1024, et (x << 2) + x donne 4x + x, soit 5 fois x. Il faut éviter de confondre le nombre de bits de décalage avec le facteur 10.
Continuer : 9 autres questions sur Arithmétique des ordinateurs