_________________
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 ), прямой аналог в повседневной жизни найти труднее. Он возвращает значение
Таблица 4.5. Таблица истинности оператора ^
^ 1 0
1 0 1
0 1 0
Теперь, зная, как работают эти операторы с отдельными битами, рассмотрим их применение к двоичным числам.
Побитовые операторы работают отдельно с каждым битом.
Побитовые операторы выполняются подобно любым другим арифметическим операторам. Самым лёгким для понимания является оператор ~ . Выполнить операцию ~ над числом означает выполнить её над каждым битом числа.
Таким образом получаем, что
&
Вычисляем, начиная со старших битов: 0 & 0 равно 0. В следующем бите 1 & 0 равно 0. В третьем бите 1 & 1 даёт 1, а в последнем бите 0 & 1 даёт 0.
_________________
63 стр. Глава 4. Выполнение логических операций
Те же вычисления могут быть выполнены в шестнадцатеричной системе. Для этого нужно преобразовать числа в двоичное представление, выполнить операцию и преобразовать результат обратно.
& &
Расписав числа таким образом, мы получили, что
Следующая программа иллюстрирует работу побитовых операторов. В ней инициируются две переменные, к которым применяются операции &, |, ~, ^. Результаты вычислений выводятся на экран.