Операції з бітами. Бітові поля
2. Операція зсуву
Окрім логічних операцій у мові С існують операції порозрядного зсуву бітів змінної. При зсуві значення бітів копіюються в сусідні біти за напрямом зсуву. Операція зсуву бітів вліво (логічний зсув) визначається знаком << та зсуває біти лівого операнду на крок, визначений правим операндом. Наприклад, у результаті виконання команди
10001010 << 2;
одержимо результат 00101000. Кожен біт зсувається вліво на дві позиції, а пусті біти заповнюються нулями.
Зсув бітів змінної на одну позицію вліво приводить до такого ж результату, як і множення числа на 2. У загальному випадку, якщо виконати зсув бітів на n кроків, то одержимо результат, що дорівнює множенню змінної на 2n.
Операція зсуву вправо >> зсуває біти змінної на крок, указаний у правому операнді. Наприклад, зсув 00101011 >> 2; приводить до результату 00001010. Цю операцію можна використати замість ділення значення змінної на величину 2n.
Типові функції при роботі з бітами наведено у таблиці, де data – те число, з бітами якого виконують дію; bit – номер біта. В усіх функціях mask = 1.
Таблиця - Робота з окремими бітами
| Дія | Функція |
| Перевірка біта |
int Bit_check (int data, int bit) { |
| Обнуління біта | int Bit_reset (int data, int bit) { return (data & ~ (1 << bit)); } |
| Встановлення біта |
int Bit_setting(int data, int bit) { |
| Інверсія біта | int Bit_inversion (int data, int bit) { return (data ^ (1 << bit)); } |
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання
Вирівнювання тексту
Ширина абзацу