Définir, effacer et inverser un bit
Modifier un seul bit avec des masques
Définir, effacer et inverser un bit est une leçon Competitive Programming Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Competitive Programming Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Competitive Programming Academy comprend 4 leçons au total.
Modifier un bit à la fois
Vous devez parfois modifier un seul bit sans toucher aux autres. L’astuce consiste à construire un masque qui cible exactement le bit souhaité. 🎯
Construire un masque à bit unique
Décalez 1 jusqu’à la position souhaitée pour obtenir un masque avec un seul bit activé. La position 0 correspond au bit le plus à droite.
mask = 1 << 3 # 0b1000, targets bit 3Activer un bit avec OR
Pour activer un bit, appliquez OR au nombre et au masque. OR force cette position à 1 et laisse tous les autres bits inchangés. Nous appelons cela l’activation d’un bit.
n = 0b0001
n |= (1 << 2) # 0b0101La mise à 1 est idempotente
Si le bit vaut déjà 1, le remettre à 1 ne change rien. OR avec un masque peut être répété sans risque, ce qui le rend fiable dans les boucles. 👍
Le masque inversé
Pour remettre un bit à 0, vous avez besoin d’un masque dont la position correspondante est OFF et toutes les autres sont ON. L’opérateur NOT (~) inverse chaque bit de votre masque simple.
clear = ~(1 << 2) # ...11111011Remettre un bit à 0 avec AND
Appliquez AND au nombre et au masque inversé pour forcer ce bit à 0 tout en conservant les autres. C’est ainsi que vous pouvez effacer un bit unique.
n = 0b0111
n &= ~(1 << 1) # 0b0101Inverser un bit avec XOR
Appliquer XOR à un masque composé d’un seul bit inverse cette position : 0 devient 1 et 1 devient 0. Cette inversion est la plus claire des trois opérations en une seule ligne.
n = 0b0101
n ^= (1 << 0) # 0b0100Vérifier si un bit vaut 1
Appliquez AND au nombre et à un masque composé d’un seul bit. Si le résultat est différent de zéro, ce bit vaut 1 ; s’il vaut zéro, le bit est à 0.
n = 0b0100
on = (n & (1 << 2)) != 0 # TrueLire le bit sous forme de 0 ou 1
Décalez le nombre vers la droite pour placer le bit recherché tout en bas, puis appliquez AND à 1. Vous obtenez exactement la valeur du bit, 0 ou 1.
n = 0b1010
bit = (n >> 1) & 1 # 1Pourquoi les modifications de bits sont importantes
Mettre des bits à 1, les remettre à 0 et les inverser permet de stocker de nombreux indicateurs ON ou OFF dans un seul entier. C’est le principe des états compacts utilisant un masque de bits dans les concours.
Attention au décalage d’une unité
Les positions des bits commencent à 0 : le bit k se trouve donc à la valeur 1 décalée de k positions vers la gauche. Se tromper d’indice est l’erreur de débutant la plus courante ici.
Vérification rapide
Choisissez la bonne opération pour remettre un bit à 0.
Récapitulatif : mettre à 1, remettre à 0, inverser
OR met à 1, AND avec NOT remet à 0 et XOR inverse un bit unique. Maîtrisez ces trois masques et vous pourrez contrôler n’importe quel bit. 🎉
Questions Fréquemment Posées
La leçon « Définir, effacer et inverser un bit » est-elle gratuite ?
Oui — le texte complet de « Définir, effacer et inverser un bit » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Competitive Programming Academy, passe à CoddyKit PRO. Le cours Competitive Programming Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Définir, effacer et inverser un bit » ?
Modifier un seul bit avec des masques Tu pratiques Competitive Programming Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Competitive Programming Academy ?
Aucune expérience préalable n'est requise. Competitive Programming Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Définir, effacer et inverser un bit » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Competitive Programming Academy ?
Oui. Chaque leçon Competitive Programming Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- AND, OR, XOR et décalages
- Définir, effacer et inverser un bit
- Compter les bits et le bit à 1 de plus faible poids
- Masques binaires comme petits ensembles