Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Операции над двоичными числами и поразрядные операции



К логическим операциям относятся:

&& - логическое "И";

|| - логическое "ИЛИ";

! - логическое отрицание.

Логические операции используются в тех случаях, когда необходимо объединить несколько условных выражений.

Пример 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...