Мы с Вами рассматривали понятие структуры. Полями структур, в языке программирования С++, могут быть не только переменные, но и другие образования, в частности, поля битов. Хотя правила языка не имеют ограничений на характер этих полей, кроме требования, чтобы они помещались в объеме машинного слова, в типичных применениях поля битов служат для хранения целых данных (чаще типа unsigned).
Описание поля битов состоит из описания типа поля, его имени и указанного после двоеточия размера поля в битах, например: unsigned status: 6;.
Если имя поля опущено, то создается скрытое поле. Если размер поля битов представлен числом 0, то следующее поле битов начнется с границы машинного слова.
Пример - листинг использования битового поля в CPP.
#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"; }
Читайте также: