Zig Academy · Les

Bitvelden en flags

Pak booleans en kleine velden compact samen

Les 3 van 413 stappen

Bitvelden en flags is een gratis Zig Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Zig Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Zig Academy bevat in totaal 4 lessen.

Veel vlaggen, één byte

Instellingen zijn vaak gewoon schakelaars die aan of uit staan. Door ze als bitvelden te verpakken, sla je veel vlaggen op in één klein geheel getal.

Booleans gebruiken één bit

Binnen een packed struct neemt een bool precies één bit in. Zet er meerdere bij elkaar en ze delen één byte.

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

Booleans en kleine gehele getallen combineren

Een packed struct kan vlaggen combineren met smalle gehele getallen, zodat je een echt register kunt modelleren waarin elke bitgroep een betekenis heeft.

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

Een vlag op naam lezen

Je benadert elke bit via de veldnaam, zodat de code duidelijk leesbaar blijft, ook al zijn de gegevens compact verpakt.

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

Een vlag omschakelen

Stel een vlag in of wis hem door aan het veld toe te wijzen. Je hoeft geen bitmaskers met de hand te gebruiken; Zig handelt de bitberekeningen voor je af.

m.italic = true;

De weergave van de onbewerkte bits

Heb je het onderliggende getal nodig? @bitCast zet de vlaggenstruct om naar het onderliggende gehele getal voor opslag of vergelijking.

const bits: u3 = @bitCast(m);

Binnenkomende bits decoderen

Lees je bits uit een bestand of apparaat? Zet het onbewerkte gehele getal terug om naar je struct en decodeer het naar benoemde vlaggen.

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

Enums als bitvelden

Een veld kan een enum zijn met een klein onderliggend geheel getal. Zo krijg je benoemde keuzes die toch in slechts enkele bits passen.

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

Waarom zou je verpakken

Bitvelden besparen geheugen en sluiten exact aan op hardware. Dat is belangrijk in embedded code, stuurprogramma's en binaire bestandsindelingen.

De layout blijft voorspelbaar

Omdat de struct packed is, verandert de volgorde van de bits nooit. Wat je declareert, is wat hardware en andere programma's zien.

Duidelijke code, compacte gegevens

De grote winst: je schrijft leesbare veldnamen, terwijl de gegevens net zo compact blijven als bij handmatig bitbeheer. 🎛️

Korte controle

Denk na over hoeveel ruimte een bool inneemt binnen een packed struct.

Samenvatting

Je hebt vlaggen in één geheel getal verpakt: booleans gebruiken één bit, je kunt smalle gehele getallen en enums combineren, en @bitCast wisselt tussen struct en onbewerkte bits. 🎉

Gratis beginnen

Leer Zig met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “Bitvelden en flags” gratis?

Ja — de volledige tekst van “Bitvelden en flags” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Zig Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Zig Academy bevat in totaal 4 lessen.

Wat leer ik in “Bitvelden en flags”?

Pak booleans en kleine velden compact samen Je oefent met Zig Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Zig Academy te beginnen?

Ervaring vooraf is niet nodig. Zig Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Bitvelden en flags”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Zig Academy?

Ja. Elke les over Zig Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. packed struct voor exacte layout
  2. Gehele getallen met willekeurige bitbreedte, zoals u3
  3. Bitvelden en flags
  4. extern struct en ABI-layout
← Terug naar Zig Academy