2. Операція зсуву

Окрім логічних операцій у мові С існують операції порозрядного зсуву бітів змінної. При зсуві значення бітів копіюються в сусідні біти за напрямом зсуву. Операція зсуву бітів вліво (логічний зсув) визначається знаком << та зсуває біти лівого операнду на крок, визначений правим операндом. Наприклад, у результаті виконання команди

10001010 << 2;

одержимо результат 00101000. Кожен біт зсувається вліво на дві позиції, а пусті біти заповнюються нулями.
Зсув бітів змінної на одну позицію вліво приводить до такого ж результату, як і множення числа на 2. У загальному випадку, якщо виконати зсув бітів на n кроків, то одержимо результат, що дорівнює множенню змінної на 2n.

Операція зсуву вправо >> зсуває біти змінної на крок, указаний у правому операнді. Наприклад, зсув 00101011 >> 2; приводить до результату 00001010. Цю операцію можна використати замість ділення значення змінної на величину 2n.
Типові функції при роботі з бітами наведено у таблиці, де data – те число, з бітами якого виконують дію; bit – номер біта. В усіх функціях mask = 1.

Таблиця - Робота з окремими бітами

Дія Функція
Перевірка біта

int Bit_check (int data, int bit) { 
      return (((data >> bit)&1) == 1);
}

Обнуління біта int Bit_reset (int data, int bit) {
       return (data & ~ (1 << bit));
}
Встановлення біта

int Bit_setting(int data, int bit) {
       return (data | (1 << bit)); 
}

Інверсія біта int Bit_inversion (int data, int bit) {
         return (data ^ (1 << bit));
}

Доступність

Шрифти Шрифти

Розмір шрифта Розмір шрифта

1

Колір тексту Колір тексту

Колір тла Колір тла

Кернінг шрифтів Кернінг шрифтів

Видимість картинок Видимість картинок

Інтервал між літерами Інтервал між літерами

0

Висота рядка Висота рядка

1.2

Виділити посилання Виділити посилання

Вирівнювання тексту Вирівнювання тексту

Ширина абзацу Ширина абзацу

0