Essentiellement ca sert a conserver de la memoire. Ca encode plusieurs informations de quelques bits sur une variable de 32 bit.
Imagine que tu as 32 variables du genre :estMort, estEnVol, ...
si tu les fais en int:
int estMort, estEnVol, ... alors chaque variable va consommer 32bits.
si tu les fais avec un champ de bit
int estMort:1;
int estEnVol:1;
... alors au total ca va prendre 32 bits.