На этом шаге рассмотрим использование полей битов в качестве полей структур.
Полями структур могут быть, в частности, поля битов. Хотя правила языка не имеют ограничений на характер этих полей, кроме требования, чтобы они помещались в объеме машинного слова, в типичных применениях поля битов служат для хранения целых данных (чаще типа unsigned).
Описание поля битов состоит из описания типа поля, его имени и указанного после двоеточия размера поля в битах, например: unsigned status: 6;.
Если имя поля опущено, то создается скрытое поле. Если размер поля битов представлен числом 0, то следующее поле битов начнется с границы машинного слова.
#include <iostream.h> void main() { struct Bits { unsigned bit1: 3; unsigned bit2: 2; unsigned bit3: 3; } Good; void Binary(unsigned); Good.bit1 = 4; Good.bit2 = 3; Good.bit3 = 6; cout << "Контрольный вывод: " << Good.bit1 << " " << Good.bit2 << " " << Good.bit3 << endl; cout << "Сумма: "; Binary (Good.bit1 + Good.bit2 + Good.bit3); } void Binary (unsigned A) // Функция выводит на экран двоичное //представление числа 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 << " "; } }
На следующем шаге мы поговорим об объединениях.