1-1 Программирование С++ / html / modules / 029 / content / content1
.htmlІнформатика — Теорія — Бітові поля структур Автори
|
Контакти
|
Підсистема допомоги
|
Методичні вказівки
|
Анотація
|
Назад
ІнформатикаБітові поля : Бітові поля структурЗміст курсу
Вступ
Теорія
Бітові поля структур
Висновки
Версія для друку
Бітові поля структур При оголошенні бітового поля вслід за типом елемента ставиться двокрапка (:) і вказується цілочисельна константа, яка задає розмір поля (кількість бітів). Розмір поля повинен бути константою в діапазоні між 0 і заданим загальним числом бітів, яке використовується для зберігання даного типу даних.
Припустимо, необхідно створити структуру, що містить інфоромацію про час і дату деяких подій. Це можна зробити так:
struct DATA
{
unsigned short Year;
unsigned short Month;
unsigned short Date;
unsigned short Hour;
unsigned short Minute;
unsigned short Second;
};.
Таким чином, елемент типу DATA буде займати в пам'яті 6 елементів х 2 байта = 12 байт. В описі такої структури є надмірність, оскільки рік приймає значення від 0 до 99 (задіяно 7 біт), місяць - від 1 до 12 (4 біта), дата - від 1 до 31 (5 біт), години, хвилини, секунди - від 0 до 60 (6 біт).
Використовуючи бітові структури, можна оголосити таку структуру:
struct DATA2
{
unsigned Year:7;
unsigned Month:4;
unsigned Date:5;
unsigned Hour:6;
nsigned Minute:6;
nsigned Second:6;
};
Об'єкт такого типу буде займати 34 біта, що розмістяться в 5 байтах.
Приклад 1.
struct BIT_FIELDS
{
int i:2;
unsigned j:2;
int:2;
int k:2;
int l:8;
} my_struct;
Для полів з пропущеними іменами пам'ять однаково виділиться, але доступ до них неможливий, а до іменованих полів доступ повністю аналогічний "повномірним" полям.
© 2008 ХНУРЭ, Інформатики, Сінельнікова Т.Ф., informatika@kture.Kharkov.uaРозроблено за допомогою LERSUS