Операції з бітами. Бітові поля
1. Порозрядні логічні операції
Для відстеження стану різних програмних об’єктів можна використовувати біти змінних. Окрім того, бітові операції лежать в основі обробки цифрових сигналів. За допомогою цих операцій можемо з одного чи декількох сигналів на вході одержати новий сигнал.
На базі платформи Intel 1 байт=8 біт інформації. Кожен біт може приймати значення 0 або 1. Таким чином, у кожному байті може бути закодовано будь-яке ціле число від 0 до 255, оскільки 28=256. Біти в байті нумерують від нуля справа наліво (←).
Порозрядні (побітові) операції можна виконувати з будь-якими цілими змінними та константами. Ці дії не застосовують до змінних типу float та double. Результатом побітових операцій завжди є ціле число.
У таблиці наведено побітові логічні операції, що застосовують у мові програмування С.
Таблиця - Порозрядні логічні операції
| Назва операції | Позначення | Приклад використання |
| «І» /AND (логічне множення). Результат дорівнює 1 у випадку, коли обидва біти встановлені в 1 |
& |
Задача: Погасити четвертий та сьомий біти у числа 153. int a = 153; // 10011001 |
| «АБО» / OR (логічне додавання) Результат операції дорівнює 1, якщо хоча б в одному з чисел біт встановлений в 1 |
| |
Задача: У першому та другому біті числа 153 встановити одиниці. int a = 153; // 10011001 |
| Виключне «АБО» / XOR повертає 1 у випадку, коли біти не однакові |
^ |
Задача: У числі 153 погасити нульовий та третій біти і ввімкнути перший та другий. int a = 153; // 10011001 |
| «НІ» / NOT Інвертує біти, тобто змінює їх значення на протилежне |
~ |
Задача: Інвертувати біти числа 153. int a = 153; //000010011001 |
Змінна mask - бітовий шаблон, який використовують для роботи з потрібними бітами. Це може бути будь-яке ціле число, але для того, щоб іншим програмістам було зрозуміло, навіщо потрібне це число, слід записати його двійковий код у коментарях.
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання
Вирівнювання тексту
Ширина абзацу