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

Логические операции с числами



В главе 6.2. мы говорили об использовании логических операций and, or и not в логических выражениях. И имели в виду выражения, принимающие логические значения истина или ложь. Например, логическое выражение (x >= a) and (x <= b) принимает значение истина, если точка x принадлежит отрезку [a, b].

Язык Basic имеет полный набор логических операций:

NOT, AND, OR, XOR, EQV, IMP.

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

Табл.6.2. Значения результатов логических операций.

Левая часть А Правая часть В NOT A A AND B A OR B A XOR B A EQV B A IMP B
Ложь Ложь Истина Ложь Ложь Ложь Истина Истина
Ложь Истина Истина Ложь Истина Истина Ложь Истина
Истина Ложь Ложь Ложь Истина Истина Ложь Ложь
Истина Истина Ложь Истина Истина Ложь Истина Истина

В языке Basic логические константы представляются числами: ложь –нулевое значение, истина – ненулевое. Поэтому логические операции можно применять, если в выражениях участвуют произвольные целые числа.

Допустимы такие выражения, как

10 AND 3

22 OR –5

5 XOR 11

Участвующие в вычислениях числа представляются в двоичной форме записи и операции применяются поразрядно, т.е. к каждому биту. Необходимо учесть, что целые отрицательные числа представляются в компьютере в дополнительном коде. Значения результатов логических операций над числами представлены в таблице 6.3.

Табл.6.3. Значения результатов логических операций над числами.

Разряд А Разряд В NOT A A AND B A OR B A XOR B A EQV B A IMP B
               
               
               
               

Пример 1. Вычислить значение выражения 11 AND 3.

Решение. Переведем заданные числа в двоичную систему счисления и приведем к одной разрядной сетке, в нашем примере достаточно 4 разряда. Буква В означает, что значение является двоичной константой.

11 = 1011В 2 = 10В

Выполним поразрядно операцию AND:

AND

0010

Получили 11 AND 3. = 1011B AND 10B = 10B = 2

Пример 2. Вычислить значение 22 OR -5.

Решение. Переведем заданные числа в двоичную систему счисления. Отрицательное число –5 представим в дополнительном коде. Приведем числа к одной разрядной сетке, в нашем примере достаточно 6 разрядов.

22 = 010110В

-5 доп.код = 111011В

Чтобы получить дополнительный код числа -5 отбросим знак минус и вычтем из числа единицу, получим число 4. Переведем число 4 в двоичную систему счисления, 4 = 000100B. Заменим все единицы на нули, а нули на единицы, получим 111011В.

Выполним поразрядно операцию OR:

OR

111011

В результате получили число в дополнительном коде 111111В. Старший разряд числа знаковый, т.к. он равен единице, значит получили отрицательное число в дополнительном коде. Выполним перевод из дополнительного кода в прямой: заменим все нули на единицы, а единицы на нули, затем прибавим единицу, полученное число переведем в двоичную систему счисления и припишем знак минус.

111111В = 000000В + 1В = 1В = -1

Получили 22 OR –5 = 010110 OR 111011 = 111111В = -1.





Дата публикования: 2015-01-14; Прочитано: 440 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



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