Before you can read the parent note, you must own every word and symbol it throws at you. This page builds each one from absolute zero, in an order where every idea rests on the one before it. Parent topic: Bit fields in structs.
Picture a light switch on a wall. It is either OFF or ON — never "half". That is exactly one bit. Everything in the parent note is ultimately made of these switches.
You count with ten symbols (0–9). A computer counts with only two. That is binary (base 2).
Why the topic needs this: the parent constantly says things like "9=10012→0012=1". You cannot follow any overflow or truncation line without reading binary.
The tool Data types and sizeof is what tells you a storage unit is 32 bits wide; Memory alignment and padding explains why the compiler rounds up to whole units (giving sizeof == 4, not 1).
Bit fields are just struct members with an extra " : width" tag telling the compiler "give me only this many bits." So you must be comfortable with the plain struct first — the colon-width syntax is the only new thing on top.
struct Flags { // the struct: a labelled box unsigned int level : 3; // member "level", but only 3 bits wide};
The manual, no-bit-field way to poke individual bits uses Bitwise operators (& | ^ << >>); bit fields are the compiler doing that bookkeeping for you. The classic reason to want any of this is Embedded systems / hardware registers.