Delphi. Побутові операції та фільтр Блума. Вступ.
Часто зустрічається безліч булевих параметрів, які потрібно зберігати у базі. Щось існує чи не існує. Щось true чи false. І коли таких параметрів кількадесят – складно сприймати базу. Для цього, як я зрозумів, існують бітові операції та фільтр Блума. Суть у тому, що ми зберігаємо дані у вигляді, скажімо 00100000, де 5-й виставлений біт відповідає за щось у логіці програми, ну, скажімо, те, адаптивний це тест чи ні. Таким чином, можна замість 8 полів у базі прийти до 1 поля, яке буде містити в собі 8 boolean полів. Така собі економія сил, мінус якої – втрата читабельності. Якщо проект величезний, то звичайно це нормальний хід. Але десь потрібно зберігати розшифровку, ключ того, який біт відповідає за той чи інший параметр.
Що робимо далі?
Елементарні бітові операції
Освіжимо в пам'яті роботу з бітовими операціями, написавши маленьку програму. Як відомо, надbyte, shortint, word, integer, longint можливі побітові операції. Для простоти будемо працювати з 8 бітами, тобто з байтом. Як у Delphi дізнатися скільки байтів та бітів займає змінна?
SizeOf(byte) = 1, це 8 біт.
SizeOf(integer) =4, це 4*8 біт=32 біта.
На калькуляторі програміста будемо бачити відповідно для 32 розрядів, наприклад…

Виставлятимемо 5 біт, зніматимемо його, перемикатимемо та ін.

Отже, нехай у нас є змінна типу Byte. У ній міститься 8 біт як ми знаємо зі школи)