0Pricing
Zig Academy · Leçon

Champs de bits et indicateurs

Regroupez étroitement les booléens et petits champs.

Champs de bits et indicateurs est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 3 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 Zig Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Zig Academy comprend 4 leçons au total.

De nombreux indicateurs, un seul octet

Les paramètres sont souvent de simples interrupteurs activés ou désactivés. Les stocker comme des champs de bits permet de conserver de nombreux indicateurs dans un seul petit entier.

Les booléens prennent un bit

Dans une packed struct, un bool occupe exactement un bit. Placez-en plusieurs les uns à la suite des autres et ils partageront un seul octet.

const Mode = packed struct {
    bold: bool,
    italic: bool,
    underline: bool,
};

Mélanger booléens et petits entiers

Une packed struct peut associer des indicateurs à des entiers étroits et représenter un registre réel où chaque groupe de bits a une signification.

const Reg = packed struct {
    enabled: bool,
    speed: u3,
    mode: u2,
};

Lire un indicateur par son nom

Vous accédez à chaque bit par son nom de champ, ce qui rend le code lisible même lorsque les données sont étroitement compactées.

var m = Mode{ .bold = true, .italic = false, .underline = false };
if (m.bold) {}

Inverser un indicateur

Activez ou désactivez un indicateur en affectant une valeur au champ. Aucun masquage manuel des bits : Zig s'occupe pour vous des calculs sur les bits.

m.italic = true;

Afficher les bits bruts

Vous avez besoin du nombre sous-jacent ? @bitCast transforme la structure d'indicateurs en son entier de stockage pour le conserver ou le comparer.

const bits: u3 = @bitCast(m);

Décoder les bits reçus

Vous lisez des bits depuis un fichier ou un appareil ? Reconvertissez l'entier brut en votre structure pour le décoder en indicateurs nommés.

const incoming: u3 = 0b101;
const m: Mode = @bitCast(incoming);

Les énumérations comme champs de bits

Un champ peut être une enum dotée d'un petit entier de stockage, ce qui fournit des choix nommés qui tiennent malgré tout dans quelques bits seulement.

const Speed = enum(u2) { slow, medium, fast };

Pourquoi compacter ?

Les champs de bits économisent de la mémoire et correspondent exactement au matériel, ce qui compte dans le code embarqué, les pilotes et les formats de fichiers binaires.

Une disposition prévisible

Comme la structure est compactée, l'ordre des bits ne change jamais. Ce que vous déclarez est exactement ce que verront le matériel et les autres programmes.

Code clair, données compactes

Le principal avantage : vous écrivez des noms de champs lisibles tout en conservant des données aussi compactes qu'avec une manipulation manuelle des bits. 🎛️

Vérification rapide

Réfléchissez à l'espace occupé par un booléen dans une packed struct.

Récapitulatif

Vous avez compacté des indicateurs dans un seul entier : les booléens prennent un bit, vous pouvez mélanger petits entiers et énumérations, et @bitCast convertit la structure en bits bruts et inversement. 🎉

Questions Fréquemment Posées

La leçon « Champs de bits et indicateurs » est-elle gratuite ?

Oui — le texte complet de « Champs de bits et indicateurs » 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 Zig Academy, passe à CoddyKit PRO. Le cours Zig Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Champs de bits et indicateurs » ?

Regroupez étroitement les booléens et petits champs. Tu pratiques Zig 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 Zig Academy ?

Aucune expérience préalable n'est requise. Zig 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 3 sur 4.

Combien de temps prend la leçon « Champs de bits et indicateurs » ?

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 Zig Academy ?

Oui. Chaque leçon Zig 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. packed struct pour une disposition exacte
  2. Entiers de largeur arbitraire comme u3
  3. Champs de bits et indicateurs
  4. extern struct et disposition ABI
← Retour à Zig Academy