Порозрядні операції (побітові операції)
Порозрядні операції застосовуються тільки до цілочисельних операндів і "працюють" з їх двійковими представленнями. Ці операції неможливо використовувати із змінними типу double, float, long double.
Таблиця 7- Порозрядні операції
Операція | Значення |
~ | порозрядне заперечення |
& | побітова кон'юнкція (побітове І) |
| | побітова диз'юнкція (побітове АБО) |
^ | побітове додавання за МОД2 |
<< | зсув вліво |
>> | зсув вправо |
Таблиця 8 - Таблиця істинності логічних порозрядних операцій
E1 | E2 | E1&E2 | E1^E2 | E1|E2 |
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 1 |
Порозрядне заперечення ! змінює кожну 1 на 0, а 0 на 1.
~ (10011010) == (01100101)
Порозрядна кон'юнкція & (порозрядне І) порівнює послідовно розряд за розрядом два операнди. Для кожного розряду результат рівний 1, якщо тільки два відповідних розряди операндів рівні 1, в інших випадках результат 0.
(10010011) & (00111101) == (00010001)
Порозрядна диз'юнкція | (порозрядне АБО) порівнює послідовно розряд за розрядом два операнди. Для кожного розряду результат рівний 1, якщо хоча б один з відповідних розрядів рівний 1.
(10010011) | (00111101) == (10111111)
Побітове додавання за МОД 2 ^ порівнює послідовно розряд за розрядом два операнди. Для кожного розряду результат рівний 1, якщо один з двох (але не обидва) відповідних розряди рівні 1.
(10010011) ^ (00111101) == (10101110)
На операції побітового додавання за МОД 2 грунтується
- метод обміну значень двох цілочисельних змінних
a^=b^=a^=b;
- метод занулення
а=а^a; (а приймає значення 0).
Операція зсуву вліво (вправо) <<,>> переміщує розряди першого операнду вліво (вправо) на число позицій, яке задане другим операндом. Позиції, що звільняються, заповнюються нулями, а розряди, що зсуваються за ліву (праву) границю, втрачаються.
(10001010) << 2 == (00101000)
(10001010) >> 2 == (00100010)