Opérateurs bit à bit
AND, OR, XOR, NOT
Opérateurs bit à bit est une leçon C Academy gratuite sur CoddyKit. Ceci est la leçon 1 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 C Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C Academy comprend 4 leçons au total.
Travailler au niveau des bits
Les entiers sont stockés sous forme de suites de bits. Le C vous permet d’agir directement sur ces bits avec les opérateurs bit à bit.
Les quatre opérateurs fondamentaux sont AND &, OR |, XOR ^ et NOT ~.
#include <stdio.h>
int main(void) {
unsigned a = 12;
unsigned b = 10;
printf("a & b = %u\n", a & b);
return 0;
}AND bit à bit
L’opérateur & met un bit du résultat à 1 uniquement lorsque les deux bits d’entrée valent 1.
Pour 12 (1100) et 10 (1010), le résultat est 8 (1000).
#include <stdio.h>
int main(void) {
unsigned a = 12, b = 10;
printf("%u & %u = %u\n", a, b, a & b);
return 0;
}OR bit à bit
L’opérateur | met un bit du résultat à 1 lorsqu’au moins un des bits d’entrée vaut 1.
12 (1100) OR 10 (1010) vaut 14 (1110).
#include <stdio.h>
int main(void) {
unsigned a = 12, b = 10;
printf("%u | %u = %u\n", a, b, a | b);
return 0;
}XOR bit à bit
L’opérateur ^ (OR exclusif) met un bit du résultat à 1 lorsque les bits d’entrée sont différents.
12 (1100) XOR 10 (1010) vaut 6 (0110).
#include <stdio.h>
int main(void) {
unsigned a = 12, b = 10;
printf("%u ^ %u = %u\n", a, b, a ^ b);
return 0;
}NOT bit à bit
L’opérateur ~ inverse chaque bit. Pour les valeurs non signées, ~0 ne contient que des 1 : c’est la valeur maximale.
#include <stdio.h>
int main(void) {
unsigned char x = 0;
printf("~0 as 8-bit = %u\n", (unsigned char)~x);
return 0;
}Afficher les bits
Un utilitaire qui affiche la forme binaire d’un octet facilite la compréhension des résultats bit à bit. Nous testons chaque bit du plus significatif au moins significatif.
#include <stdio.h>
void print_bits(unsigned char v) {
for (int i = 7; i >= 0; i--) {
putchar((v >> i) & 1 ? '1' : '0');
}
putchar('\n');
}
int main(void) {
print_bits(12);
print_bits(10);
return 0;
}Échange avec XOR
XOR possède une propriété intéressante : vous pouvez échanger deux entiers sans variable temporaire.
Appliquez XOR trois fois pour échanger les valeurs.
#include <stdio.h>
int main(void) {
int a = 5, b = 9;
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("a=%d b=%d\n", a, b);
return 0;
}XOR avec lui-même
Toute valeur combinée par XOR avec elle-même donne 0, et toute valeur combinée par XOR avec 0 reste inchangée.
Ces identités sont à la base de l’échange avec XOR et de nombreuses astuces.
#include <stdio.h>
int main(void) {
int x = 42;
printf("x ^ x = %d\n", x ^ x);
printf("x ^ 0 = %d\n", x ^ 0);
return 0;
}Bit à bit ou logique
Ne confondez pas & avec &&, ni | avec ||.
- Les opérateurs bit à bit agissent sur chaque bit des opérandes.
- Les opérateurs logiques évaluent la valeur de vérité et renvoient 0 ou 1.
#include <stdio.h>
int main(void) {
printf("2 & 1 = %d\n", 2 & 1);
printf("2 && 1 = %d\n", 2 && 1);
return 0;
}Combiner les opérateurs
Les opérateurs bit à bit se combinent pour exprimer des conditions complexes. Ici, nous conservons les bits présents dans a mais pas dans b.
#include <stdio.h>
int main(void) {
unsigned a = 0b1111;
unsigned b = 0b0101;
unsigned only_a = a & ~b;
printf("only_a = %u\n", only_a);
return 0;
}Vérifier la parité avec XOR
Combiner tous les bits avec XOR indique la parité, c’est-à-dire si le nombre de bits à 1 est impair. Réduisez progressivement la valeur.
#include <stdio.h>
int main(void) {
unsigned v = 0b1011;
int parity = 0;
while (v) {
parity ^= (v & 1);
v >>= 1;
}
printf("parity = %d\n", parity);
return 0;
}Vérification rapide
Testez vos connaissances sur les opérateurs bit à bit.
Récapitulatif
Vous avez appris les opérateurs bit à bit :
&AND conserve les bits présents dans les deux opérandes.|OR conserve les bits présents dans l’un ou l’autre opérande.^XOR conserve les bits qui diffèrent.~NOT inverse tous les bits.- Les opérateurs bit à bit diffèrent des opérateurs logiques
&&et||.
Questions Fréquemment Posées
La leçon « Opérateurs bit à bit » est-elle gratuite ?
Oui — le texte complet de « Opérateurs bit à 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 C Academy, passe à CoddyKit PRO. Le cours C Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Opérateurs bit à bit » ?
AND, OR, XOR, NOT Tu pratiques C 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 C Academy ?
Aucune expérience préalable n'est requise. C 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 1 sur 4.
Combien de temps prend la leçon « Opérateurs bit à 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 C Academy ?
Oui. Chaque leçon C 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
- Opérateurs bit à bit
- Décalages
- Masques de bits et indicateurs
- Astuces pratiques sur les bits