Les champs de bits en C ++




champ de bits avec ++, structures en c ++ pour les débutantsEn C ++, il est possible de demander à un certain nombre d'éléments de la structure de mémoire dans les bits. par exemple, si vous voulez créer une structure de données, taille registre correspondant dans tout dispositif. Le type d'élément (il est appelé un champ de bits) Une telle structure peut être un nombre entier (le plus souvent du type de non signé) ou dénombrable (enum).

Syntaxe champ bits dans la structure est définie comme suit:
champ de bits avec ++, structures en c ++ pour les débutantspar exemple:

Nous avons identifié la structure, dans laquelle les variables occupent un nombre déterminé de bits. 2 + 2 + 4 elle donne 8 bit (Nous nous sommes alignés en octets de taille). Si vous ajoutez à cette structure encore non signé court cinquième : 5; – Il sera déjà impliqué 2 octet. Dans le second octet plantera naturellement 8 – 5 = 3 les bits, être non réclamés.

à la différence de associations (syndicat) la taille des champs de bits varie, quel, combien de bits le programmeur a ordonné. si commandé 7 bit (dire que les deux variables sur 3 les bits, et une – 1 bit), puis C ++ prendra un octet (8 bit) dans ces trois variables. Si le programmateur commande 11 bit, puis C ++ prendra deux octets (16 bit). Et dans le second octet ne sera utilisée que 5 bit, et le reste sont susceptibles d'être, queue comme inutile. Par conséquent, dans la description des champs de bits doivent être considérés comme un “alignement” d'octets. à savoir. distribuer en tant que variables, de sorte que chaque bit a été revendiquée. Pour l'alignement de la mémoire peut être utilisé sans nom bitfields.

Voici un autre exemple court, dans laquelle les champs de bits sont attribués à la date et l'heure pour une démonstration de cette technologie.

résultat:

champ de bits avec ++, structures en c ++ pour les débutants

Comme vous pouvez le voir, bit champs date et l'heure magasin. Cette structure occupe 6 octet, bien qu'il soit assez pour cinq. Et puis il y a des raisons: le compilateur peut aligner la mémoire retirée à un nombre pair d'octets. Par exemple, si nous avions réservé 18 bit, le compilateur nous prendra pas 3 octet, et 4, considérant que la CPU aime travailler avec des octets, et non pas avec des bits. Au moins, la mémoire ou le processeur enregistre ses bits préfère ne pas, à savoir octets. Selon son bit: feed x32 4 octet, x64 a 8 octet. Même si ces octets travail est seulement un d'entre eux, le reste sera encore rattraper.

Petit résultat: Les champs de bits dans structures couramment utilisé dans la programmation de bas niveau, lorsque le travail est avec des valeurs, capable de prendre aucune octets, et les bits individuels (depuis, que les petites valeurs).

Bulletin de nouvelles leçons sur la programmation:

Les champs de bits en C ++
5 (100%) 3 votes

Laisser un commentaire

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *