Structuri cu câmpuri de biți - studopediya

limbajul C permite utilizarea structurilor unui tip special de câmpuri - biți. Utilizarea lor face posibilă pentru a avea acces biți individuale de obiecte mai mari (bytes, cuvinte). câmp de biți (biți sau câmp) pot fi declarate ca și componente de structură în formă de:

denumirea tipului. lățime; unde

Tip - specificator tip întreg (int - semn -bezznakovy unsigned.);

numele - numele câmpului, care pot fi omise;

lățimea - dimensiunea câmpului în biți.

Bit câmpuri în structura sunt descrise prin ordin mic la mare. Câmpul semn de tip int MSB este utilizat pentru a stoca semnul. De exemplu, o astfel de lățime câmp de 1 bit poate cuprinde doar valorile 0 și 1, deoarece orice valoare nenulă este interpretată ca o -1.

Exemplu. Luați în considerare activitatea de câmpuri de biți de prelucrare my_struct structura programului, care descrie cuvântul mașină de doi octeți.

int i. 2; / * Semnificativi biți de cuvinte * /

j unsigned. 2; / * Câmpul nesemnat * /

int. 2; / * Câmpul nedenumit * /

int k. 2; / * Câmp semnat * /

int fictiv. 8; / * MSBs de cuvinte * /

> My_struct; / * Variabila Structura * /

clrscr (); / * Clear ecran * /

my_struct.dummy = 0; / * Se umple structura câmpurilor * /

printf ( "valoare variabilă structurală (16 chnoe) =% x \ n",
my_struct);

printf ( "câmpuri individuale. i =. j =. = k. \ n",

my_struct.i, my_struct.j, my_struct.k);

Semnificație variabilă structurală (16 chnoe) = ed

câmpuri individuale. i = 1 j = 3 k = -1

Primul număr este obținut ca rezultat al tipăririi valorii în notație 16-ary alocat pentru my_struct variabilă structurală. Dacă ne imaginăm acest număr în sistemul binar și să impună un câmp de biți, vom obține locația de câmpuri de biți, prezentate în diagrama de mai jos. Pentru a accesa câmp gol disponibile.

Structura circuitului my_struct variabil: