Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

bitovye_polja

Битовые поля

Мы с Вами рассматривали понятие структуры. Полями структур могут быть не только переменные, но и другие образования, в частности, поля битов. Хотя правила языка не имеют ограничений на характер этих полей, кроме требования, чтобы они помещались в объеме машинного слова, в типичных применениях поля битов служат для хранения целых данных (чаще типа unsigned).

Описание поля битов состоит из описания типа поля, его имени и указанного после двоеточия размера поля в битах, например: unsigned status: 6;.

Если имя поля опущено, то создается скрытое поле. Если размер поля битов представлен числом 0, то следующее поле битов начнется с границы машинного слова.

Пример.

#include <iostream>
using namespace std;
void Binary(unsigned);
void main()
{
   struct Bits
   { 
     unsigned bit1: 3;
     unsigned bit2: 2;
     unsigned bit3: 3;
   } Good;
   
   Good.bit1 = 4;
   Good.bit2 = 3;
   Good.bit3 = 6;
   cout<<"Show: "<<Good.bit1<<" ";
   cout<<Good.bit2<<" ";
   cout<<Good.bit3<<"\n\n";
   cout << "Sum: ";
   Binary(Good.bit1 + Good.bit2 + Good.bit3);
} 
// Функция выводит на экран двоичное представление числа A.
void Binary (unsigned A) 
{
    int i,N;
    if(A>255)
		N = 15;
    else
		N = 7;
    for (i=N; i >= 0; i--)
    { 
	cout<<((A>>i)&1);
        	if(i==8)
		cout<<" ";
    }
    cout<<"\n\n";
}



bitovye_polja.txt · Последние изменения: 2010/10/19 18:37 (внешнее изменение)