Pourquoi décaler les bits d'un nombre revient-il à le multiplier ou le diviser par 2 ?
Décaler l'écriture binaire d'un rang vers la gauche multiplie par 2, vers la droite donne le quotient de la division euclidienne par 2. On en déduit une multiplication rapide : 13 × 6 = 13 × 4 + 13 × 2, obtenu par deux décalages et une addition.
Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.
Pourquoi cette question : un modèle d'introduction
Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.
En NSI, j'ai découvert les opérateurs « << » et « >> » de Python. En les essayant, j'ai vu que 5 << 1 donnait 10 et 13 >> 1 donnait 6. J'ai voulu comprendre pourquoi, et j'ai réalisé que c'est l'équivalent binaire d'ajouter un zéro en base 10 : une propriété simple qui permet aux processeurs de multiplier très vite.
L'enjeu et les notions du programme
Démontrer l'effet d'un décalage à partir de l'écriture positionnelle, et en déduire un algorithme de multiplication par additions et décalages.
Mathématiques
- Écriture positionnelle, puissances de 2 (seconde)
- Division euclidienne, quotient et reste (seconde)
- Distributivité, calcul littéral (seconde)
Numérique et sciences informatiques
- Écriture binaire des entiers (première)
- Opérateurs bit à bit, algorithmes sur les entiers (première)
Le plan de l'exposé en 9,5 min
1. Introduction
1 minEn base 10, multiplier par 10 revient à ajouter un zéro à droite. Problématique : quel est l'équivalent en base 2, et comment s'en servir pour calculer vite ?
2. Mathématiques : démontrer l'effet d'un décalage
4 minSi n=aₖ2^(k)+…+a₁2+a₀, décaler d'un rang vers la gauche donne le nombre aₖ2^(k+1)+…+a₁2²+a₀2+0=2n. Exemple : 101₂=5 devient 1010₂=10.
Décaler vers la droite supprime le dernier chiffre a₀ : on obtient aₖ2^(k-1)+…+a₁=(n-a₀)/2. Or n=2q+a₀ avec a₀∈{0;1} : c'est exactement la division euclidienne par 2, de quotient q et de reste a₀. Exemple : 13=1101₂ donne 110₂=6, et 13=2×6+1.
Multiplication : 6=110₂=4+2, donc par distributivité 13×6=13×4+13×2. On décale 13 de deux rangs (52), puis d'un rang (26), et on additionne : 78. On n'a fait que des décalages et une addition, autant d'étapes que de bits à 1 dans le multiplicateur.
3. NSI : opérateurs bit à bit
3 minEn Python, n << k vaut n×2^(k) et n >> k vaut le quotient de n par 2^(k). Le dernier bit s'obtient par n & 1, qui vaut le reste de la division par 2 : c'est un test de parité.
Ces opérations sont parmi les plus rapides d'un processeur. Les compilateurs remplacent automatiquement n×8 par nll3. L'algorithme de multiplication par décalages, appelé parfois « multiplication du paysan russe », se programme en quelques lignes : tant que b>0, si b est impair on ajoute a, puis on double a et on divise b par 2.
4. Conclusion
1,5 minL'écriture positionnelle explique tout : décaler vers la gauche multiplie par la base, vers la droite donne le quotient euclidien. En base 2, cela fournit une multiplication par décalages et additions. J'ouvre sur l'exponentiation rapide, qui applique la même idée aux puissances.
Ce que j'écris au tableau
Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.
13×6=13×(4+2)=52+26=78
Conclusion : la réponse à la question
Les décalages de bits sont la multiplication et la division euclidienne par 2, démontrées par l'écriture en base 2. Ils fondent un algorithme de multiplication dont le nombre d'étapes dépend du nombre de bits, et non de la valeur.
Les questions probables du jury
Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.
Que vaut 7 << 3 ?
7×2³=56.
Que vaut 100 >> 2 ?
Le quotient de 100 par 4 : 25.
Combien d'additions pour multiplier par 255 avec cette méthode ?
255=11111111₂ a 8 bits à 1 : 8 termes, donc 7 additions (ou une soustraction : 256a-a).
Pourquoi le reste de la division par 2 est-il le dernier bit ?
Tous les autres termes aᵢ2ⁱ avec i≥1 sont pairs ; il reste a₀.
Que donne un décalage à droite sur un nombre négatif en complément à deux ?
Le décalage dit arithmétique recopie le bit de signe : on obtient la division arrondie vers le bas.
Les pièges qui coûtent des points
- Croire que le décalage à droite donne une division exacte : il donne le quotient euclidien.
- Confondre le nombre de bits et le nombre de bits à 1.
- Oublier qu'un décalage à gauche peut déborder sur un type de taille fixe.
Revoir les notions
Autres questions : représenter l'information
- Combien de bits faut-il pour écrire un nombre entier, et pourquoi le logarithme répond-il à la question ?
- Comment un ordinateur représente-t-il les nombres négatifs, et pourquoi 127 + 1 peut-il donner −128 ?
- Pourquoi un ordinateur ne peut-il pas représenter tous les nombres réels, et où ses erreurs sont-elles les plus grandes ?
- Combien de couleurs un écran peut-il afficher, et combien pèse une image non compressée ?
Préparer l'oral, pas seulement le contenu
Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.
Méthode : traiter une question de Grand oral →