Bitvelden en flags
Pak booleans en kleine velden compact samen
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. 🎉
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
- packed struct voor exacte layout
- Gehele getallen met willekeurige bitbreedte, zoals u3
- Bitvelden en flags
- extern struct en ABI-layout