Битовые поля.
В прошлом уроке мы с Вами рассматривали понятие структуры. Полями
структур могут быть не только переменные, но и другие образования, в частности,
поля битов. Хотя правила языка не имеют ограничений на характер
этих полей, кроме требования, чтобы они помещались в объеме машинного слова, в
типичных применениях поля битов служат для хранения целых данных (чаще типа
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";
}
|
|