Побитовые операции с одним битом...62
Побитовые операторы &, ^, | и ~ выполняют логические операции над отдельными битами числа. Если рассматривать 0 как false и 1 как true ( так принято, хотя можно ввести и другие обозначения ), то для оператора ~ справедливо следующее:
~1( true ) равно 0( false )
~0( false ) равно 1( true )
Оператор & определяется так:
1( true ) & 1 ( true ) равно 1( true )
1( true ) & 0 ( false ) равно 0( false )
0( false ) & 0 ( false ) равно 0( false )
0( false ) & 1 ( true ) равно 0( false )
Для оператора |:
1( true ) | 1 ( true ) равно 1( true )
1( true ) | 0 ( false ) равно 1( true )
0( false ) | 0 ( false ) равно 0( false )
0( false ) | 1 ( true ) равно 1( true )
_________________
62 стр. Часть 1. Первое знакомство с С++
Таблица 4.3. Таблица истинности оператора &
& 1 0
1 1 0
0 0 0
В таблице столбцы соответствуют значению одного аргумента, а строки — второго; результат операции находится на пересечении соответствующих строки и столбца. Так, из таблицы видно, что получить в результате операции & можно только если оба операнда равны 1. Далее в табл. 4.4 приведена таблица истинности оператора | ( ИЛИ ).
Таблица 4.4. Таблица истинности оператора |
| 1 0
1 1 1
0 1 0
Для последнего логического оператора, называемого "исключающее или" ( XOR ), прямой аналог в повседневной жизни найти труднее. Он возвращает значение true, если истинным является какой-то один ( но не оба! ) из его аргументов. Таблица истинности этого оператора представлена ниже ( табл. 4.5 ).
Таблица 4.5. Таблица истинности оператора ^
^ 1 0
1 0 1
0 1 0
Теперь, зная, как работают эти операторы с отдельными битами, рассмотрим их применение к двоичным числам.
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ