Comment définir, réinitialiser et basculer un bit individuel en C++ ?
Bonjour à tous ! Je suis un développeur C++ débutant et j'ai rencontré un problème en travaillant avec les bits. Je dois gérer des bits individuels dans un nombre entier, mais je n'arrive pas à comprendre comment faire correctement.
J'ai une variable uint8_t flags = 0b00000000;. Je veux :
- Définir le 3ème bit (le mettre à 1)
- Réinitialiser le 5ème bit (le mettre à 0)
- Basculer le 2ème bit (inverser sa valeur)
J'ai essayé d'écrire ce code :
uint8_t flags = 0b00000000;
// Définir le 3ème bit
flags = flags | 3; // Mais ça ne fonctionne pas
// Réinitialiser le 5ème bit
flags = flags & 5; // Ce n'est pas ça non plus
// Basculer le 2ème bit
flags = flags ^ 2; // Ça semble fonctionner, mais je ne suis pas sûr
Le problème est que je ne comprends pas comment spécifier correctement le numéro du bit. Quand j'écris flags | 3, je pensais que cela définirait le 3ème bit, mais apparemment ça ne fonctionne pas comme ça. J'ai lu sur les masques de bits, mais je me suis embrouillé.
Dites-moi, s'il vous plaît, comment faire ?