Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
К логическим операциям относятся:
&& - логическое "И";
|| - логическое "ИЛИ";
! - логическое отрицание.
Логические операции используются в тех случаях, когда необходимо объединить несколько условных выражений.
Пример 1.12. Пусть нужно подтвердить или опровергнуть принадлежность точек заштрихованной области:
bool b;
b = y < exp(x) && y > 0 && x > 2 && x < 5
bool b;
b = (y < exp(x) && y > 0 && x > 0 && x<2) || (x < 0 && x > -2 && y < 0 && y > -2)
Свойства логических операций представлены в таблице 1.2.
Таблица 1.2.
V1 | V2 | !V2 | V1&&V2 | V1||V2 |
false | false | true | false | false |
false | true | false | false | true |
true | false | false | true | |
true | true | true | true |
Поразрядные операции или операции с разрядами (битами) нельзя применять к переменным типа float и double. К таким операциям относятся:
& - поразрядное "И";
| - поразрядное "ИЛИ";
~ - поразрядная инверсия;
^ - поразрядное "исключающее ИЛИ";
<< - сдвиг влево;
>> - сдвиг вправо.
Поразрядные операции выполняются в соответствии с таблицами истинности (табл.1.3), причем каждый разряд рассматривается независимо от других разрядов.
Таблица 1.3.
x | y | ~ y | x & y | x | y | x ^ y |
Пример 1.13. Обычное (+) и поразрядное (OR) двоичное сложение.
0111001110011010 0111001110011010
+ OR
1100111100100110 1100111100100110
--------------------------- ---------------------------
10100001011000000 1111111110111110
В случае обычного сложения может возникнуть так называемый бит переноса, в случае поразрядного сложения это невозможно.
Пример 1.14. Сдвиги разрядов.
Сдвиг на один бит влево приводит к умножению на 2, на один бит вправо - к целочисленному делению на 2:
00000100 4 (десятичное)
00001000 8 = 4 x 2
00000010 2 = 4 / 2
Пример 1.15. Сменить биты 16-разрядного машинного слова на обратные
XOR
--------------------------
Иногда возникает необходимость анализировать или преобразовывать не все биты слова, а лишь некоторые. Тогда задают маску - слово в котором выделены нужные разряды. Установка битов по маске осуществляется поразрядным сложением (OR), сброс битов по маске - поразрядным умножением (AND).
Пример 1.16. Установить по маске биты в 16-разрядном машинном слове
OR
1100110011001100 - маска
-------------------------
Пример 1.17. Сбросить по маске биты в 16-разрядном машинном слове
AND
1110001110001110 - маска
-------------------------
Пример 1.18. Проверить наличие 0, 3, 5 битов в 16-разрядном слове
AND
-------------------------
Дата публикования: 2015-10-09; Прочитано: 189 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!