0Pricing
C Academy · Leçon

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

  1. Opérateurs bit à bit
  2. Décalages
  3. Masques de bits et indicateurs
  4. Astuces pratiques sur les bits
← Retour à C Academy