Les champs de bits en C ++




champ de bits avec ++, structures en c ++ pour les débutantsВ языке С++ есть возможность задавать элементам структур определённое количество памяти в битах. 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) такой структуры может быть целочисленное (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:

Мы определили структуру, в которой переменные будут занимать указанное количество бит. 2 + 2 + 4 elle donne 8 bit (Nous nous sommes alignés en octets de taille). Если в эту структуру дописать еще non signé court fifth : 5; – Il sera déjà impliqué 2 octet. Во втором байте естественно будет мусор 8 – 5 = 3 les bits, être non réclamés.

В отличии от associations (syndicat) la taille des champs de bits varie, quel, combien de bits le programmeur a ordonné. Если заказано 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. Поэтому при описании битовых полей следует учитывать такое “alignement” d'octets. à savoir. distribuer en tant que variables, чтоб каждый бит был востребован. Для выравнивания занимаемой памяти можно использовать неименованные битовые поля.

Voici un autre exemple court, в котором битовые поля отводятся под дату и время для демонстрации этой технологии.

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. Занимает эта структура 6 octet, bien qu'il soit assez pour cinq. Et puis il y a des raisons: сам компилятор может выравнивать отводимую память до четного числа байтов. 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: Битовые поля в structures couramment utilisé dans la programmation de bas niveau, когда работа идет со значениями, capable de prendre aucune octets, et les bits individuels (depuis, que les petites valeurs).

date
page
Les champs de bits en C ++
évaluation
5

Laisser un commentaire

Placez le code dans les balises: <pre class="lang:c ++ décodage:true ">VOTRE CODE</pré>