4.4: Побітові операції
- Page ID
- 29729
Іноді ви хочете виконувати побітові операції, а не звичайну математику. Наприклад, що робити, якщо ви хочете логічно І дві змінні, потроху? Побітові операції дуже поширені при програмуванні мікроконтролерів як засобу настройки, очищення і тестування конкретних бітів в контрольних регістрах (наприклад, встановлення конкретного штифта на цифровому порту в режим читання замість режиму запису). C має ряд побітових операторів. Ними є:
| & | І |
| | | АБО |
| ^ | XOR |
| ~ | Доповнення |
| >> | Зсув вправо |
| << | Зсув вліво |
Зверніть увагу на подвійне використання & для «адреси» і тепер І. Унарна операція завжди є «адресою», а двійкова операція завжди І, тому a & b не буде означати адресу b. Якщо ви хочете, щоб І x з y, зрушити результат на 2 місця вліво і призначити результат z, ви б використали:
z = (x&y)<<2;
Давайте розглянемо кілька прикладів. Припустимо, змінні X, Y і Z є незнаковим символом s X і Y встановлені на 13 і 134 відповідно. У шістнадцятковому, це 0x0d і 0x86 для бітових шаблонів 00001101 і 10000110.
Z = X<<3; // Z is 01101000 or 0x68 Z = X>>1; // Z is 00000110 or 0x06 Z = ~X; // Z is 11110010 or 0xf2 Z = X|Y; // Z is 10001111 or 0x8f Z = X&Y; // Z is 00000100 or 0x04 Z = X^Y; // Z is 10001011 or 0x8b
